<?php
/***************************************************************************
- * Copyright (C) 2003-2006 Polytechnique.org *
+ * Copyright (C) 2003-2007 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
***************************************************************************/
-function wiki_pagename() {
+function wiki_pagename()
+{
if (!Get::v('n')) {
return null;
}
pl_redirect($a.'/'.$b);
}
-function wiki_work_dir() {
+function wiki_filename($s)
+{
+ if (@iconv('utf-8', 'utf-8', $s) == $s) {
+ return $s;
+ }
+ return utf8_encode($s);
+}
+
+function wiki_work_dir()
+{
global $globals;
return $globals->spoolroot.'/spool/wiki.d';
}
}
function wiki_perms_options() {
- return array('public' => 'Public', 'logged' => 'Connecté',
- 'mdp' => 'Authentifié', 'admin' => 'Admin');
+ return array('public' => 'Public', 'logged' => 'Connecté',
+ 'mdp' => 'Authentifié', 'admin' => 'Admin');
}
function wiki_get_perms($n)
{
- $file = wiki_work_dir().'/'.str_replace('/', '.', $n);
+ $file = wiki_work_dir().'/'.wiki_filename(str_replace('/', '.', $n));
$lines = explode("\n", @file_get_contents($file));
foreach ($lines as $line) {
- list($k, $v) = explode('=', $line, 2);
+ @list($k, $v) = explode('=', $line, 2);
if ($k == 'platal_perms') {
return explode(':', $v);
}
function wiki_set_perms($n, $pr, $pw)
{
- $file = wiki_work_dir().'/'.str_replace('/', '.', $n);
- if (!file_exists($file))
+ $file = wiki_work_dir().'/'.wiki_filename(str_replace('/', '.', $n));
+ if (!file_exists($file)) {
return false;
+ }
$p = $pr . ':' . $pw;
case 'logged':
if (!call_user_func(array($globals->session, 'doAuthCookie'))) {
- $platal = new Platal();
+ $platal = empty($GLOBALS['IS_XNET_SITE']) ? new Platal() : new Xnet();
$platal->force_login($page);
}
return;
}
}
+function wiki_require_page($pagename)
+{
+ global $globals;
+ $pagename_slashes = str_replace('.','/',$pagename);
+ $pagename_dots = str_replace('/','.',$pagename);
+ if (is_file(wiki_work_dir().'/cache_'.$pagename_dots.'.tpl')) return;
+ system('wget '.$globals->baseurl.'/'.$pagename_slashes.' -O /dev/null');
+}
+
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
?>