Artifact 9157bcf69175f1980101727857b857d1730b1ae6:


0000: 3c 3f 70 68 70 0a 6e 61 6d 65 73 70 61 63 65 20  <?php.namespace 
0010: 47 61 72 72 61 64 69 6e 3b 0a 0a 72 65 71 75 69  Garradin;..requi
0020: 72 65 5f 6f 6e 63 65 20 5f 5f 44 49 52 5f 5f 20  re_once __DIR__ 
0030: 2e 20 27 2f 2e 2e 2f 5f 69 6e 63 2e 70 68 70 27  . '/../_inc.php'
0040: 3b 0a 0a 69 66 20 28 24 75 73 65 72 5b 27 64 72  ;..if ($user['dr
0050: 6f 69 74 73 27 5d 5b 27 6d 65 6d 62 72 65 73 27  oits']['membres'
0060: 5d 20 3c 20 4d 65 6d 62 72 65 73 3a 3a 44 52 4f  ] < Membres::DRO
0070: 49 54 5f 41 44 4d 49 4e 29 0a 7b 0a 20 20 20 20  IT_ADMIN).{.    
0080: 74 68 72 6f 77 20 6e 65 77 20 55 73 65 72 45 78  throw new UserEx
0090: 63 65 70 74 69 6f 6e 28 22 56 6f 75 73 20 6e 27  ception("Vous n'
00a0: 61 76 65 7a 20 70 61 73 20 6c 65 20 64 72 6f 69  avez pas le droi
00b0: 74 20 64 27 61 63 63 c3 a9 64 65 72 20 c3 a0 20  t d'acc..der .. 
00c0: 63 65 74 74 65 20 70 61 67 65 2e 22 29 3b 0a 7d  cette page.");.}
00d0: 0a 0a 24 69 6d 70 6f 72 74 20 3d 20 6e 65 77 20  ..$import = new 
00e0: 4d 65 6d 62 72 65 73 5f 49 6d 70 6f 72 74 3b 0a  Membres_Import;.
00f0: 0a 69 66 20 28 69 73 73 65 74 28 24 5f 47 45 54  .if (isset($_GET
0100: 5b 27 65 78 70 6f 72 74 27 5d 29 29 0a 7b 0a 20  ['export'])).{. 
0110: 20 20 20 68 65 61 64 65 72 28 27 43 6f 6e 74 65     header('Conte
0120: 6e 74 2d 74 79 70 65 3a 20 61 70 70 6c 69 63 61  nt-type: applica
0130: 74 69 6f 6e 2f 63 73 76 27 29 3b 0a 20 20 20 20  tion/csv');.    
0140: 68 65 61 64 65 72 28 27 43 6f 6e 74 65 6e 74 2d  header('Content-
0150: 44 69 73 70 6f 73 69 74 69 6f 6e 3a 20 61 74 74  Disposition: att
0160: 61 63 68 6d 65 6e 74 3b 20 66 69 6c 65 6e 61 6d  achment; filenam
0170: 65 3d 22 45 78 70 6f 72 74 20 6d 65 6d 62 72 65  e="Export membre
0180: 73 20 2d 20 27 20 2e 20 24 63 6f 6e 66 69 67 2d  s - ' . $config-
0190: 3e 67 65 74 28 27 6e 6f 6d 5f 61 73 73 6f 27 29  >get('nom_asso')
01a0: 20 2e 20 27 20 2d 20 27 20 2e 20 64 61 74 65 28   . ' - ' . date(
01b0: 27 59 2d 6d 2d 64 27 29 20 2e 20 27 2e 63 73 76  'Y-m-d') . '.csv
01c0: 22 27 29 3b 0a 20 20 20 20 24 69 6d 70 6f 72 74  "');.    $import
01d0: 2d 3e 74 6f 43 53 56 28 29 3b 0a 20 20 20 20 65  ->toCSV();.    e
01e0: 78 69 74 3b 0a 7d 0a 0a 24 65 72 72 6f 72 20 3d  xit;.}..$error =
01f0: 20 66 61 6c 73 65 3b 0a 24 63 68 61 6d 70 73 20   false;.$champs 
0200: 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27  = $config->get('
0210: 63 68 61 6d 70 73 5f 6d 65 6d 62 72 65 73 27 29  champs_membres')
0220: 2d 3e 67 65 74 41 6c 6c 28 29 3b 0a 24 63 68 61  ->getAll();.$cha
0230: 6d 70 73 5b 27 64 61 74 65 5f 69 6e 73 63 72 69  mps['date_inscri
0240: 70 74 69 6f 6e 27 5d 20 3d 20 5b 27 74 69 74 6c  ption'] = ['titl
0250: 65 27 20 3d 3e 20 27 44 61 74 65 20 69 6e 73 63  e' => 'Date insc
0260: 72 69 70 74 69 6f 6e 27 2c 20 27 74 79 70 65 27  ription', 'type'
0270: 20 3d 3e 20 27 64 61 74 65 27 5d 3b 0a 0a 69 66   => 'date'];..if
0280: 20 28 75 74 69 6c 73 3a 3a 70 6f 73 74 28 27 69   (utils::post('i
0290: 6d 70 6f 72 74 27 29 29 0a 7b 0a 20 20 20 20 69  mport')).{.    i
02a0: 66 20 28 21 75 74 69 6c 73 3a 3a 43 53 52 46 5f  f (!utils::CSRF_
02b0: 63 68 65 63 6b 28 27 6d 65 6d 62 72 65 73 5f 69  check('membres_i
02c0: 6d 70 6f 72 74 27 29 29 0a 20 20 20 20 7b 0a 20  mport')).    {. 
02d0: 20 20 20 20 20 20 20 24 65 72 72 6f 72 20 3d 20         $error = 
02e0: 27 55 6e 65 20 65 72 72 65 75 72 20 65 73 74 20  'Une erreur est 
02f0: 73 75 72 76 65 6e 75 65 2c 20 6d 65 72 63 69 20  survenue, merci 
0300: 64 65 20 72 65 6e 76 6f 79 65 72 20 6c 65 20 66  de renvoyer le f
0310: 6f 72 6d 75 6c 61 69 72 65 2e 27 3b 0a 20 20 20  ormulaire.';.   
0320: 20 7d 0a 20 20 20 20 65 6c 73 65 69 66 20 28 65   }.    elseif (e
0330: 6d 70 74 79 28 24 5f 46 49 4c 45 53 5b 27 75 70  mpty($_FILES['up
0340: 6c 6f 61 64 27 5d 5b 27 74 6d 70 5f 6e 61 6d 65  load']['tmp_name
0350: 27 5d 29 29 0a 20 20 20 20 7b 0a 20 20 20 20 20  '])).    {.     
0360: 20 20 20 24 65 72 72 6f 72 20 3d 20 27 41 75 63     $error = 'Auc
0370: 75 6e 20 66 69 63 68 69 65 72 20 66 6f 75 72 6e  un fichier fourn
0380: 69 2e 27 3b 0a 20 20 20 20 7d 0a 20 20 20 20 65  i.';.    }.    e
0390: 6c 73 65 0a 20 20 20 20 7b 0a 20 20 20 20 20 20  lse.    {.      
03a0: 20 20 74 72 79 0a 20 20 20 20 20 20 20 20 7b 0a    try.        {.
03b0: 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28              if (
03c0: 75 74 69 6c 73 3a 3a 70 6f 73 74 28 27 74 79 70  utils::post('typ
03d0: 65 27 29 20 3d 3d 20 27 67 61 6c 65 74 74 65 27  e') == 'galette'
03e0: 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 7b 0a  ).            {.
03f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0400: 24 69 6d 70 6f 72 74 2d 3e 66 72 6f 6d 47 61 6c  $import->fromGal
0410: 65 74 74 65 28 24 5f 46 49 4c 45 53 5b 27 75 70  ette($_FILES['up
0420: 6c 6f 61 64 27 5d 5b 27 74 6d 70 5f 6e 61 6d 65  load']['tmp_name
0430: 27 5d 2c 20 75 74 69 6c 73 3a 3a 70 6f 73 74 28  '], utils::post(
0440: 27 67 61 6c 65 74 74 65 5f 74 72 61 6e 73 6c 61  'galette_transla
0450: 74 65 27 29 29 3b 0a 20 20 20 20 20 20 20 20 20  te'));.         
0460: 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20     }.           
0470: 20 65 6c 73 65 69 66 20 28 75 74 69 6c 73 3a 3a   elseif (utils::
0480: 70 6f 73 74 28 27 74 79 70 65 27 29 20 3d 3d 20  post('type') == 
0490: 27 67 61 72 72 61 64 69 6e 27 29 0a 20 20 20 20  'garradin').    
04a0: 20 20 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20          {.      
04b0: 20 20 20 20 20 20 20 20 20 20 24 69 6d 70 6f 72            $impor
04c0: 74 2d 3e 66 72 6f 6d 43 53 56 28 24 5f 46 49 4c  t->fromCSV($_FIL
04d0: 45 53 5b 27 75 70 6c 6f 61 64 27 5d 5b 27 74 6d  ES['upload']['tm
04e0: 70 5f 6e 61 6d 65 27 5d 29 3b 0a 20 20 20 20 20  p_name']);.     
04f0: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20         }.       
0500: 20 20 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20       else.      
0510: 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20        {.        
0520: 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65          throw ne
0530: 77 20 55 73 65 72 45 78 63 65 70 74 69 6f 6e 28  w UserException(
0540: 27 49 6d 70 6f 72 74 20 69 6e 63 6f 6e 6e 75 2e  'Import inconnu.
0550: 27 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  ');.            
0560: 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 75  }..            u
0570: 74 69 6c 73 3a 3a 72 65 64 69 72 65 63 74 28 27  tils::redirect('
0580: 2f 61 64 6d 69 6e 2f 6d 65 6d 62 72 65 73 2f 69  /admin/membres/i
0590: 6d 70 6f 72 74 2e 70 68 70 3f 6f 6b 27 29 3b 0a  mport.php?ok');.
05a0: 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20          }.      
05b0: 20 20 63 61 74 63 68 20 28 55 73 65 72 45 78 63    catch (UserExc
05c0: 65 70 74 69 6f 6e 20 24 65 29 0a 20 20 20 20 20  eption $e).     
05d0: 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20     {.           
05e0: 20 24 65 72 72 6f 72 20 3d 20 24 65 2d 3e 67 65   $error = $e->ge
05f0: 74 4d 65 73 73 61 67 65 28 29 3b 0a 20 20 20 20  tMessage();.    
0600: 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 24      }.    }.}..$
0610: 74 70 6c 2d 3e 61 73 73 69 67 6e 28 27 65 72 72  tpl->assign('err
0620: 6f 72 27 2c 20 24 65 72 72 6f 72 29 3b 0a 24 74  or', $error);.$t
0630: 70 6c 2d 3e 61 73 73 69 67 6e 28 27 6f 6b 27 2c  pl->assign('ok',
0640: 20 69 73 73 65 74 28 24 5f 47 45 54 5b 27 6f 6b   isset($_GET['ok
0650: 27 5d 29 20 3f 20 74 72 75 65 20 3a 20 66 61 6c  ']) ? true : fal
0660: 73 65 29 3b 0a 0a 24 74 70 6c 2d 3e 61 73 73 69  se);..$tpl->assi
0670: 67 6e 28 27 67 61 72 72 61 64 69 6e 5f 63 68 61  gn('garradin_cha
0680: 6d 70 73 27 2c 20 24 63 68 61 6d 70 73 29 3b 0a  mps', $champs);.
0690: 24 74 70 6c 2d 3e 61 73 73 69 67 6e 28 27 67 61  $tpl->assign('ga
06a0: 6c 65 74 74 65 5f 63 68 61 6d 70 73 27 2c 20 24  lette_champs', $
06b0: 69 6d 70 6f 72 74 2d 3e 67 61 6c 65 74 74 65 5f  import->galette_
06c0: 66 69 65 6c 64 73 29 3b 0a 24 74 70 6c 2d 3e 61  fields);.$tpl->a
06d0: 73 73 69 67 6e 28 27 74 72 61 6e 73 6c 61 74 65  ssign('translate
06e0: 27 2c 20 75 74 69 6c 73 3a 3a 70 6f 73 74 28 27  ', utils::post('
06f0: 67 61 6c 65 74 74 65 5f 74 72 61 6e 73 6c 61 74  galette_translat
0700: 65 27 29 29 3b 0a 0a 24 74 70 6c 2d 3e 64 69 73  e'));..$tpl->dis
0710: 70 6c 61 79 28 27 61 64 6d 69 6e 2f 6d 65 6d 62  play('admin/memb
0720: 72 65 73 2f 69 6d 70 6f 72 74 2e 74 70 6c 27 29  res/import.tpl')
0730: 3b 0a 0a 3f 3e                                   ;..?>