2006 => 2007 Happy New Year\!
[platal.git] / include / wiki.inc.php
index 2c7aa48..838693e 100644 (file)
@@ -1,6 +1,6 @@
 <?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   *
@@ -56,7 +56,7 @@ function wiki_get_perms($n)
     $file  = wiki_work_dir().'/'.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);
         }
@@ -104,24 +104,22 @@ function wiki_may_have_perms($perm) {
 }
 
 function wiki_apply_perms($perm) {
-    global $page, $platal;
+    global $page, $platal, $globals;
 
     switch ($perm) {
       case 'public':
         return;
 
       case 'logged':
-        if ((empty($GLOBALS['IS_XNET_SITE']) && !XorgSession::doAuthCookie()) ||
-          ($GLOBALS['IS_XNET_SITE'] && !XnetSession::doAuth())) {
+        if (!call_user_func(array($globals->session, 'doAuthCookie'))) {
             $platal = new Platal();
             $platal->force_login($page);
         }
         return;
 
       default:
-        if ((empty($GLOBALS['IS_XNET_SITE']) && !XorgSession::doAuthe()) ||
-          ($GLOBALS['IS_XNET_SITE'] && !XnetSession::doAuth())) {
-            $platal = new Platal();
+        if (!call_user_func(array($globals->session, 'doAuth'))) {
+            $platal = empty($GLOBALS['IS_XNET_SITE']) ? new Platal() : new Xnet();
             $platal->force_login($page);
         }
         if ($perm == 'admin') {
@@ -131,4 +129,13 @@ function wiki_apply_perms($perm) {
     }
 }
 
+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');
+}
+
 ?>