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');..?>