X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;ds=sidebyside;f=htdocs%2Fwiki.php;h=33697b14fa797556d1509ecd56dff83de0816f16;hb=5e2307dcebc38ebb0ffe469967a377eb3baed571;hp=c702d7a2138b324be4996d1bfa68ec674caf5c1e;hpb=d7a8b04cfd6812be3c0deb9418f373331f9805f7;p=platal.git diff --git a/htdocs/wiki.php b/htdocs/wiki.php index c702d7a..33697b1 100644 --- a/htdocs/wiki.php +++ b/htdocs/wiki.php @@ -20,51 +20,90 @@ ***************************************************************************/ require_once 'xorg.inc.php'; +require_once 'wiki.inc.php'; -new_skinned_page('wiki.tpl'); -if (!S::identified()) { - XorgSession::doAuth(); +require_once dirname(__FILE__).'/../classes/Platal.php'; +require_once dirname(__FILE__).'/../classes/PLModule.php'; + +$n = wiki_pagename(); +if (!$n) { + pl_redirect(''); } -require_once 'wiki.inc.php'; +new_skinned_page('wiki.tpl'); +$perms = wiki_get_perms($n); -if ($n = wiki_pagename()) { - $wiki_cache = wiki_work_dir().'/cache_'.$n.'.tpl'; - $cache_exists = file_exists($wiki_cache); +switch (Env::v('action')) { + case '': + wiki_apply_perms($perms[0]); + break; - if (Env::get('action') || !$cache_exists) { - @unlink($wiki_cache); + case 'edit': + wiki_apply_perms($perms[1]); + break; - // we leave pmwiki do whatever it wants and store everything - ob_start(); - require_once($globals->spoolroot.'/wiki/pmwiki.php'); + default: + wiki_apply_perms('admin'); + break; +} - $wikiAll = ob_get_clean(); - // the pmwiki skin we are using (almost empty) has these keywords: - $i = strpos($wikiAll, ""); - $j = strpos($wikiAll, "", $i); +if ($p = Post::v('setrperms')) { + wiki_apply_perms('admin'); + if (wiki_set_perms($n, $p, $perms[1])) { + $perms = wiki_get_perms($n); + $page->trig('Permissions mises à jour'); } +} + +if ($p = Post::v('setwperms')) { + wiki_apply_perms('admin'); + if (wiki_set_perms($n, $perms[0], $p)) { + $perms = wiki_get_perms($n); + $page->trig('Permissions mises à jour'); + } +} - if (Env::get('action')) { - $page->assign('xorg_extra_header', substr($wikiAll, 0, $i)); +$wiki_cache = wiki_work_dir().'/cache_'.$n.'.tpl'; +$cache_exists = file_exists($wiki_cache); + +if (Env::v('action') || !$cache_exists) { + @unlink($wiki_cache); + + // we leave pmwiki do whatever it wants and store everything + ob_start(); + require_once($globals->spoolroot.'/wiki/pmwiki.php'); + + $wikiAll = ob_get_clean(); + // the pmwiki skin we are using (almost empty) has these keywords: + $i = strpos($wikiAll, ""); + $j = strpos($wikiAll, "", $i); +} + +if (Env::v('action')) { + $page->assign('xorg_extra_header', substr($wikiAll, 0, $i)); + $wikiAll = substr($wikiAll, $j); +} else { + if (!$cache_exists) { $wikiAll = substr($wikiAll, $j); + wiki_putfile($wiki_cache, $wikiAll); } else { - if (!$cache_exists) { - $f = fopen($wiki_cache, 'w'); - $wikiAll = substr($wikiAll, $j); - fputs($f, $wikiAll); - fclose($f); - } else { - $wikiAll = file_get_contents($wiki_cache); - } + $wikiAll = file_get_contents($wiki_cache); } - - $page->assign('wikipage', str_replace('.', '/', $n)); } -$page->assign('pmwiki', $wikiAll); -$page->assign('has_perms', S::has_perms()); +$page->assign('perms', $perms); +$page->assign('perms_opts', + array('public' => 'Public', 'logged' => 'Connecté', + 'mdp' => 'Authentifié', 'admin' => 'Admin')); + +$page->assign('canedit', wiki_may_have_perms($perms[1])); +$page->assign('has_perms', wiki_may_have_perms('admin')); + +$page->assign('wikipage', str_replace('.', '/', $n)); +$page->assign('pmwiki', $wikiAll); + $page->addCssLink('css/wiki.css'); +$page->addJsLink('javascript/wiki.js'); $page->run(); ?>