X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=htdocs%2Fwiki.php;h=39bb47a20d7e923faaf458304404098124ae89f5;hb=89232034976e2987f136d6afe75b4038aa66f987;hp=08fe9a9fe4577efe8fc78332664be95f8363a104;hpb=f64e3566b8596251d1c983eeb8b2c88743bec210;p=platal.git diff --git a/htdocs/wiki.php b/htdocs/wiki.php index 08fe9a9..39bb47a 100644 --- a/htdocs/wiki.php +++ b/htdocs/wiki.php @@ -1,6 +1,6 @@ assign('xorg_extra_header', substr($wikiAll, 0, $i)); - $page->assign('menu-pmwiki', $wikiMenu); - $page->assign('pmwiki', $wikiTxt); +require_once 'xorg.inc.php'; +require_once 'wiki.inc.php'; + +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::get('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::get('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::get('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::get('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::get('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 { + $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->run(); ?>