function handler_wiki($page, $action = 'list', $wikipage = null, $wikipage2 = null) { if (S::hasAuthToken()) { $page->setRssLink('Changement Récents', '/Site/AllRecentChanges?action=rss&user='******'hruid') . '&hash=' . S::user()->token); } // update wiki perms if ($action == 'update') { S::assert_xsrf_token(); $perms_read = Post::v('read'); $perms_edit = Post::v('edit'); if ($perms_read || $perms_edit) { foreach ($_POST as $wiki_page => $val) { if ($val == 'on') { $wp = new PlWikiPage(str_replace(array('_', '/'), '.', $wiki_page)); if ($wp->setPerms($perms_read ? $perms_read : $wp->readPerms(), $perms_edit ? $perms_edit : $wp->writePerms())) { $page->trigSuccess("Permission de la page {$wiki_page} mises à jour"); } else { $page->trigError("Impossible de mettre les permissions de la page {$wiki_page} à jour"); } } } } } else { if ($action != 'list' && !empty($wikipage)) { $wp = new PlWikiPage($wikipage); S::assert_xsrf_token(); if ($action == 'delete') { if ($wp->delete()) { $page->trigSuccess("La page " . $wikipage . " a été supprimée."); } else { $page->trigError("Impossible de supprimer la page " . $wikipage . "."); } } else { if ($action == 'rename' && !empty($wikipage2) && $wikipage != $wikipage2) { if ($changedLinks = $wp->rename($wikipage2)) { $s = 'La page <em>' . $wikipage . '</em> a été déplacée en <em>' . $wikipage2 . '</em>.'; if (is_numeric($changedLinks)) { $s .= $changedLinks . ' lien' . ($changedLinks > 1 ? 's ont été modifiés.' : ' a été modifié.'); } $page->trigSuccess($s); } else { $page->trigError("Impossible de déplacer la page " . $wikipage); } } } } } $perms = PlWikiPage::permOptions(); // list wiki pages and their perms $wiki_pages = PlWikiPage::listPages(); ksort($wiki_pages); $wiki_tree = array(); foreach ($wiki_pages as $file => $desc) { list($cat, $name) = explode('.', $file); if (!isset($wiki_tree[$cat])) { $wiki_tree[$cat] = array(); } $wiki_tree[$cat][$name] = $desc; } $page->changeTpl('admin/wiki.tpl'); $page->assign('wiki_pages', $wiki_tree); $page->assign('perms_opts', $perms); }