Artifact 44d976285c439cf8832ac2401d8fe73af28c9e93:


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 5f 69 6e 63 2e 70 68 70 27 3b 0a 0a  . '/_inc.php';..
0040: 24 65 72 72 6f 72 20 3d 20 66 61 6c 73 65 3b 0a  $error = false;.
0050: 0a 69 66 20 28 69 73 73 65 74 28 24 5f 47 45 54  .if (isset($_GET
0060: 5b 27 6f 6b 27 5d 29 29 0a 7b 0a 20 20 20 20 24  ['ok'])).{.    $
0070: 65 72 72 6f 72 20 3d 20 27 4f 4b 27 3b 0a 7d 0a  error = 'OK';.}.
0080: 0a 69 66 20 28 21 65 6d 70 74 79 28 24 5f 50 4f  .if (!empty($_PO
0090: 53 54 5b 27 73 61 76 65 27 5d 29 29 0a 7b 0a 20  ST['save'])).{. 
00a0: 20 20 20 69 66 20 28 21 55 74 69 6c 73 3a 3a 43     if (!Utils::C
00b0: 53 52 46 5f 63 68 65 63 6b 28 27 63 6f 6e 66 69  SRF_check('confi
00c0: 67 5f 73 69 74 65 27 29 29 0a 20 20 20 20 7b 0a  g_site')).    {.
00d0: 20 20 20 20 20 20 20 20 24 65 72 72 6f 72 20 3d          $error =
00e0: 20 27 55 6e 65 20 65 72 72 65 75 72 20 65 73 74   'Une erreur est
00f0: 20 73 75 72 76 65 6e 75 65 2c 20 6d 65 72 63 69   survenue, merci
0100: 20 64 65 20 72 65 6e 76 6f 79 65 72 20 6c 65 20   de renvoyer le 
0110: 66 6f 72 6d 75 6c 61 69 72 65 2e 27 3b 0a 20 20  formulaire.';.  
0120: 20 20 7d 0a 20 20 20 20 65 6c 73 65 0a 20 20 20    }.    else.   
0130: 20 7b 0a 20 20 20 20 20 20 20 20 74 72 79 20 7b   {.        try {
0140: 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 63 6f  .            $co
0150: 6e 66 69 67 2d 3e 73 65 74 28 27 63 68 61 6d 70  nfig->set('champ
0160: 73 5f 6f 62 6c 69 67 61 74 6f 69 72 65 73 27 2c  s_obligatoires',
0170: 20 55 74 69 6c 73 3a 3a 70 6f 73 74 28 27 63 68   Utils::post('ch
0180: 61 6d 70 73 5f 6f 62 6c 69 67 61 74 6f 69 72 65  amps_obligatoire
0190: 73 27 29 29 3b 0a 20 20 20 20 20 20 20 20 20 20  s'));.          
01a0: 20 20 24 63 6f 6e 66 69 67 2d 3e 73 65 74 28 27    $config->set('
01b0: 63 68 61 6d 70 73 5f 6d 6f 64 69 66 69 61 62 6c  champs_modifiabl
01c0: 65 73 5f 6d 65 6d 62 72 65 27 2c 20 55 74 69 6c  es_membre', Util
01d0: 73 3a 3a 70 6f 73 74 28 27 63 68 61 6d 70 73 5f  s::post('champs_
01e0: 6d 6f 64 69 66 69 61 62 6c 65 73 5f 6d 65 6d 62  modifiables_memb
01f0: 72 65 27 29 29 3b 0a 20 20 20 20 20 20 20 20 20  re'));.         
0200: 20 20 20 24 63 6f 6e 66 69 67 2d 3e 73 65 74 28     $config->set(
0210: 27 63 61 74 65 67 6f 72 69 65 5f 6d 65 6d 62 72  'categorie_membr
0220: 65 73 27 2c 20 55 74 69 6c 73 3a 3a 70 6f 73 74  es', Utils::post
0230: 28 27 63 61 74 65 67 6f 72 69 65 5f 6d 65 6d 62  ('categorie_memb
0240: 72 65 73 27 29 29 3b 0a 20 20 20 20 20 20 20 20  res'));.        
0250: 20 20 20 20 24 63 6f 6e 66 69 67 2d 3e 73 61 76      $config->sav
0260: 65 28 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20  e();..          
0270: 20 20 55 74 69 6c 73 3a 3a 72 65 64 69 72 65 63    Utils::redirec
0280: 74 28 27 2f 61 64 6d 69 6e 2f 63 6f 6e 66 69 67  t('/admin/config
0290: 2f 73 69 74 65 2e 70 68 70 3f 6f 6b 27 29 3b 0a  /site.php?ok');.
02a0: 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20          }.      
02b0: 20 20 63 61 74 63 68 20 28 55 73 65 72 45 78 63    catch (UserExc
02c0: 65 70 74 69 6f 6e 20 24 65 29 0a 20 20 20 20 20  eption $e).     
02d0: 20 20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20     {.           
02e0: 20 24 65 72 72 6f 72 20 3d 20 24 65 2d 3e 67 65   $error = $e->ge
02f0: 74 4d 65 73 73 61 67 65 28 29 3b 0a 20 20 20 20  tMessage();.    
0300: 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 69      }.    }.}..i
0310: 66 20 28 55 74 69 6c 73 3a 3a 67 65 74 28 27 65  f (Utils::get('e
0320: 64 69 74 27 29 29 0a 7b 0a 20 20 20 20 24 73 6f  dit')).{.    $so
0330: 75 72 63 65 20 3d 20 53 71 75 65 6c 65 74 74 65  urce = Squelette
0340: 3a 3a 67 65 74 53 6f 75 72 63 65 28 55 74 69 6c  ::getSource(Util
0350: 73 3a 3a 67 65 74 28 27 65 64 69 74 27 29 29 3b  s::get('edit'));
0360: 0a 0a 20 20 20 20 69 66 20 28 21 24 73 6f 75 72  ..    if (!$sour
0370: 63 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20  ce).    {.      
0380: 20 20 74 68 72 6f 77 20 6e 65 77 20 55 73 65 72    throw new User
0390: 45 78 63 65 70 74 69 6f 6e 28 22 43 65 20 73 71  Exception("Ce sq
03a0: 75 65 6c 65 74 74 65 20 6e 27 65 78 69 73 74 65  uelette n'existe
03b0: 20 70 61 73 2e 22 29 3b 0a 20 20 20 20 7d 0a 0a   pas.");.    }..
03c0: 20 20 20 20 24 63 73 72 66 5f 6b 65 79 20 3d 20      $csrf_key = 
03d0: 27 65 64 69 74 5f 73 6b 65 6c 5f 27 2e 6d 64 35  'edit_skel_'.md5
03e0: 28 55 74 69 6c 73 3a 3a 67 65 74 28 27 65 64 69  (Utils::get('edi
03f0: 74 27 29 29 3b 0a 0a 20 20 20 20 69 66 20 28 55  t'));..    if (U
0400: 74 69 6c 73 3a 3a 70 6f 73 74 28 27 73 61 76 65  tils::post('save
0410: 27 29 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20  ')).    {.      
0420: 20 20 69 66 20 28 21 55 74 69 6c 73 3a 3a 43 53    if (!Utils::CS
0430: 52 46 5f 63 68 65 63 6b 28 24 63 73 72 66 5f 6b  RF_check($csrf_k
0440: 65 79 29 29 0a 20 20 20 20 20 20 20 20 7b 0a 20  ey)).        {. 
0450: 20 20 20 20 20 20 20 20 20 20 20 24 65 72 72 6f             $erro
0460: 72 20 3d 20 27 55 6e 65 20 65 72 72 65 75 72 20  r = 'Une erreur 
0470: 65 73 74 20 73 75 72 76 65 6e 75 65 2c 20 6d 65  est survenue, me
0480: 72 63 69 20 64 65 20 72 65 6e 76 6f 79 65 72 20  rci de renvoyer 
0490: 6c 65 20 66 6f 72 6d 75 6c 61 69 72 65 2e 27 3b  le formulaire.';
04a0: 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20  .        }.     
04b0: 20 20 20 65 6c 73 65 0a 20 20 20 20 20 20 20 20     else.        
04c0: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66  {.            if
04d0: 20 28 53 71 75 65 6c 65 74 74 65 3a 3a 65 64 69   (Squelette::edi
04e0: 74 53 6f 75 72 63 65 28 55 74 69 6c 73 3a 3a 67  tSource(Utils::g
04f0: 65 74 28 27 65 64 69 74 27 29 2c 20 55 74 69 6c  et('edit'), Util
0500: 73 3a 3a 70 6f 73 74 28 27 63 6f 6e 74 65 6e 74  s::post('content
0510: 27 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20  '))).           
0520: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   {.             
0530: 20 20 20 24 66 75 6c 6c 73 63 72 65 65 6e 20 3d     $fullscreen =
0540: 20 69 73 73 65 74 28 24 5f 47 45 54 5b 27 66 75   isset($_GET['fu
0550: 6c 6c 73 63 72 65 65 6e 27 5d 29 20 3f 20 27 23  llscreen']) ? '#
0560: 66 75 6c 6c 73 63 72 65 65 6e 27 20 3a 20 27 27  fullscreen' : ''
0570: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ;.              
0580: 20 20 55 74 69 6c 73 3a 3a 72 65 64 69 72 65 63    Utils::redirec
0590: 74 28 27 2f 61 64 6d 69 6e 2f 63 6f 6e 66 69 67  t('/admin/config
05a0: 2f 73 69 74 65 2e 70 68 70 3f 65 64 69 74 3d 27  /site.php?edit='
05b0: 2e 72 61 77 75 72 6c 65 6e 63 6f 64 65 28 55 74  .rawurlencode(Ut
05c0: 69 6c 73 3a 3a 67 65 74 28 27 65 64 69 74 27 29  ils::get('edit')
05d0: 29 2e 27 26 6f 6b 27 2e 24 66 75 6c 6c 73 63 72  ).'&ok'.$fullscr
05e0: 65 65 6e 29 3b 0a 20 20 20 20 20 20 20 20 20 20  een);.          
05f0: 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20    }.            
0600: 65 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20  else.           
0610: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   {.             
0620: 20 20 20 24 65 72 72 6f 72 20 3d 20 22 49 6d 70     $error = "Imp
0630: 6f 73 73 69 62 6c 65 20 64 27 65 6e 72 65 67 69  ossible d'enregi
0640: 73 74 72 65 72 20 6c 65 20 73 71 75 65 6c 65 74  strer le squelet
0650: 74 65 2e 22 3b 0a 20 20 20 20 20 20 20 20 20 20  te.";.          
0660: 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20    }.        }.  
0670: 20 20 7d 0a 0a 20 20 20 20 24 74 70 6c 2d 3e 61    }..    $tpl->a
0680: 73 73 69 67 6e 28 27 65 64 69 74 27 2c 20 5b 27  ssign('edit', ['
0690: 66 69 6c 65 27 20 3d 3e 20 74 72 69 6d 28 55 74  file' => trim(Ut
06a0: 69 6c 73 3a 3a 67 65 74 28 27 65 64 69 74 27 29  ils::get('edit')
06b0: 29 2c 20 27 63 6f 6e 74 65 6e 74 27 20 3d 3e 20  ), 'content' => 
06c0: 24 73 6f 75 72 63 65 5d 29 3b 0a 20 20 20 20 24  $source]);.    $
06d0: 74 70 6c 2d 3e 61 73 73 69 67 6e 28 27 63 73 72  tpl->assign('csr
06e0: 66 5f 6b 65 79 27 2c 20 24 63 73 72 66 5f 6b 65  f_key', $csrf_ke
06f0: 79 29 3b 0a 20 20 20 20 24 74 70 6c 2d 3e 61 73  y);.    $tpl->as
0700: 73 69 67 6e 28 27 73 6f 75 72 63 65 73 5f 6a 73  sign('sources_js
0710: 6f 6e 27 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65  on', json_encode
0720: 28 53 71 75 65 6c 65 74 74 65 3a 3a 6c 69 73 74  (Squelette::list
0730: 53 6f 75 72 63 65 73 28 29 29 29 3b 0a 7d 0a 65  Sources()));.}.e
0740: 6c 73 65 0a 7b 0a 20 20 20 20 24 74 70 6c 2d 3e  lse.{.    $tpl->
0750: 61 73 73 69 67 6e 28 27 73 6f 75 72 63 65 73 27  assign('sources'
0760: 2c 20 53 71 75 65 6c 65 74 74 65 3a 3a 6c 69 73  , Squelette::lis
0770: 74 53 6f 75 72 63 65 73 28 29 29 3b 0a 7d 0a 0a  tSources());.}..
0780: 24 74 70 6c 2d 3e 61 73 73 69 67 6e 28 27 65 72  $tpl->assign('er
0790: 72 6f 72 27 2c 20 24 65 72 72 6f 72 29 3b 0a 24  ror', $error);.$
07a0: 74 70 6c 2d 3e 64 69 73 70 6c 61 79 28 27 61 64  tpl->display('ad
07b0: 6d 69 6e 2f 63 6f 6e 66 69 67 2f 73 69 74 65 2e  min/config/site.
07c0: 74 70 6c 27 29 3b 0a 0a 3f 3e                    tpl');..?>