X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=classes%2Fplatal.php;h=f0569d6d84d93edd65ed2e9bf36fd70071ccd475;hb=bfb9093b94f6403150200e3081c895cf5e48f563;hp=1c8718d13c50afd15de801cedcb71f5acbf9b72b;hpb=31ac496f284cd21164e05d1472ad1ceca9fe1095;p=platal.git diff --git a/classes/platal.php b/classes/platal.php index 1c8718d..f0569d6 100644 --- a/classes/platal.php +++ b/classes/platal.php @@ -1,6 +1,6 @@ startAvailableAuth()) { - Platal::page()->trigError('Données d\'authentification invalide.'); + Platal::page()->trigError("Données d'authentification invalides."); } $modules = func_get_args(); @@ -84,6 +86,14 @@ abstract class Platal return join('/', array_slice($this->argv, 0, $n)); } + public static function wiki_hook($auth = AUTH_PUBLIC, $perms = 'user', $type = DO_AUTH) + { + return array('hook' => PL_WIKI_HOOK, + 'auth' => $auth, + 'perms' => $perms, + 'type' => $type); + } + protected function find_hook() { $p = $this->path; @@ -272,6 +282,9 @@ abstract class Platal } } + if ($hook['hook'] == PL_WIKI_HOOK) { + return PL_WIKI; + } $val = call_user_func_array($hook['hook'], $args); if ($val == PL_DO_AUTH) { // The handler need a better auth with the current args @@ -304,6 +317,9 @@ abstract class Platal case PL_NOT_FOUND: $this->__mods['core']->handler_404($page); break; + + case PL_WIKI: + return PL_WIKI; } $page->assign('platal', $this); @@ -356,6 +372,20 @@ abstract class Platal } } + public static function assert($cond, $error, $userfriendly) + { + global $globals; + if ($cond === false) { + header($_SERVER['SERVER_PROTOCOL'] . ' 500 Internal Server Error'); + $file = fopen($globals->spoolroot . '/spool/tmp/assert_erros', 'a'); + fwrite($file, '
' . pl_entities($error) . '
\n'); + fclose($file); + + Platal::page()->kill($userfriendly); + } + } + + static public function &page() { global $platal;