X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=htdocs%2Fwiki.php;h=33697b14fa797556d1509ecd56dff83de0816f16;hb=2faf884e279839dc8316ad56dd20acd0cb438c62;hp=bca07b3b6f31f2d15be8bacf6b56ee4c856af976;hpb=d575b75cff2a418992a54bfa311c888cab19bd8b;p=platal.git diff --git a/htdocs/wiki.php b/htdocs/wiki.php index bca07b3..33697b1 100644 --- a/htdocs/wiki.php +++ b/htdocs/wiki.php @@ -1,6 +1,6 @@ wiki->wikidir) { +require_once dirname(__FILE__).'/../classes/Platal.php'; +require_once dirname(__FILE__).'/../classes/PLModule.php'; + +$n = wiki_pagename(); +if (!$n) { + pl_redirect(''); +} + +new_skinned_page('wiki.tpl'); +$perms = wiki_get_perms($n); + +switch (Env::v('action')) { + case '': + wiki_apply_perms($perms[0]); + break; + + case 'edit': + wiki_apply_perms($perms[1]); + break; + + default: + wiki_apply_perms('admin'); + break; +} + +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'); + } +} + +$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(dirname(dirname(__FILE__)).'/'.$globals->wiki->wikidir.'/pmwiki.php'); + 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)); - $page->assign('menu-pmwiki', substr($wikiAll, $i, $j-$i)); - $page->assign('pmwiki', substr($wikiAll, $j)); + $wikiAll = substr($wikiAll, $j); +} else { + if (!$cache_exists) { + $wikiAll = substr($wikiAll, $j); + wiki_putfile($wiki_cache, $wikiAll); + } else { + $wikiAll = file_get_contents($wiki_cache); + } } +$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(); ?>