4 require_once __DIR__
. '/_inc.php';
6 if ($user['droits']['wiki'] < Membres
::DROIT_ECRITURE
)
8 throw new UserException("Vous n'avez pas le droit d'accéder à cette page.");
11 if (!utils
::get('id') ||
!is_numeric(utils
::get('id')))
13 throw new UserException('Numéro de page invalide.');
16 $page = $wiki->getById(utils
::get('id'));
21 throw new UserException('Page introuvable.');
24 if (!empty($page['contenu']))
26 $page['chiffrement'] = $page['contenu']['chiffrement'];
27 $page['contenu'] = $page['contenu']['contenu'];
30 if (utils
::post('date'))
32 $date = strtotime(utils
::post('date') . ' ' . utils
::post('date_h') . ':' . utils
::post('date_min'));
39 if (!empty($_POST['save']))
41 if (!utils
::CSRF_check('wiki_edit_'.$page['id']))
43 $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
45 elseif ($page['date_modification'] > (int) utils
::post('debut_edition'))
47 $error = 'La page a été modifiée par quelqu\'un d\'autre depuis que vous avez commencé l\'édition.';
52 $wiki->edit($page['id'], [
53 'titre' => utils
::post('titre'),
54 'uri' => utils
::post('uri'),
55 'parent' => utils
::post('parent'),
56 'droit_lecture' => utils
::post('droit_lecture'),
57 'droit_ecriture'=> utils
::post('droit_ecriture'),
58 'date_creation' => $date,
61 $wiki->editRevision($page['id'], (int) utils
::post('revision_edition'), [
62 'contenu' => utils
::post('contenu'),
63 'modification' => utils
::post('modification'),
64 'id_auteur' => $user['id'],
65 'chiffrement' => utils
::post('chiffrement'),
68 $page = $wiki->getById($page['id']);
70 utils
::redirect('/admin/wiki/?'.$page['uri']);
72 catch (UserException
$e)
74 $error = $e->getMessage();
79 $parent = (int) utils
::post('parent') ?
: (int) $page['parent'];
80 $tpl->assign('parent', $parent ?
$wiki->getTitle($parent) : 0);
82 $tpl->assign('error', $error);
83 $tpl->assign('page', $page);
85 $tpl->assign('time', time());
86 $tpl->assign('date', $date ?
$date : $page['date_creation']);
88 $tpl->assign('custom_js', ['wikitoolbar.js', 'wiki-encryption.js']);
90 $tpl->display('admin/wiki/editer.tpl');