X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;ds=sidebyside;f=htdocs%2Findex.php;h=f9ad7f978bf10ee270445f73dc6fd8b9aee7c268;hb=c99ef281118de7ab4b45de299701925ad5ebb26c;hp=881a2232f6e2cbc59f8604196041f38fd2ad7422;hpb=86f0a6af68bfec7f19d65b86f549689a2b33a53f;p=platal.git diff --git a/htdocs/index.php b/htdocs/index.php index 881a223..f9ad7f9 100644 --- a/htdocs/index.php +++ b/htdocs/index.php @@ -19,14 +19,105 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************/ +// $GLOBALS['IS_XNET_SITE'] = true; + require_once 'xorg.inc.php'; require_once dirname(__FILE__).'/../classes/Platal.php'; require_once dirname(__FILE__).'/../classes/PLModule.php'; -$platal = new Platal('auth', 'banana', 'carnet', 'email', 'events', 'geoloc', - 'lists', 'marketing', 'payment', 'platal', 'profile', - 'register', 'search', 'stats', 'trezo', 'admin'); -$platal->run(); +if (!($path = Env::v('n')) || ($path{0} < 'A' || $path{0} > 'Z')) { + + $platal = new Platal('auth', 'banana', 'carnet', 'email', 'events', + 'geoloc', 'lists', 'marketing', 'payment', 'platal', + 'profile', 'register', 'search', 'stats', 'admin'); + $platal->run(); + + exit; +} + +/*** WIKI CODE ***/ + +require_once 'wiki.inc.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($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 { + $wikiAll = file_get_contents($wiki_cache); + } +} + +$page->assign('perms', $perms); +$page->assign('perms_opts', wiki_perms_options()); + +$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('wiki.css'); +$page->addJsLink('wiki.js'); + +$page->run(); ?>