From: Florent Bruneau Date: Sat, 20 Mar 2010 13:51:12 +0000 (+0100) Subject: Add possibility to declare wiki hooks. X-Git-Tag: core/1.1.0~38 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=bfb9093b94f6403150200e3081c895cf5e48f563;p=platal.git Add possibility to declare wiki hooks. Signed-off-by: Florent Bruneau --- diff --git a/classes/platal.php b/classes/platal.php index 6d32374..f0569d6 100644 --- a/classes/platal.php +++ b/classes/platal.php @@ -22,6 +22,8 @@ define('PL_DO_AUTH', 300); define('PL_FORBIDDEN', 403); define('PL_NOT_FOUND', 404); +define('PL_WIKI', 500); +define('PL_WIKI_HOOK', '@@WIKI@@'); abstract class Platal { @@ -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); diff --git a/classes/plmodule.php b/classes/plmodule.php index 1dbdaff..33de370 100644 --- a/classes/plmodule.php +++ b/classes/plmodule.php @@ -56,6 +56,13 @@ abstract class PLModule 'type' => $type); } + /** Register a hook that points to a wiki page. + */ + public function make_wiki_hook($auth = AUTH_PUBLIC, $perms = 'user', $type = DO_AUTH) + { + return Platal::wiki_hook($auth, $perms, $type); + } + /** Include a 'module-specific' file. * Module specific includes must be in the in the path modules/{modulename}. */ diff --git a/include/run.inc.php b/include/run.inc.php new file mode 100644 index 0000000..728e13f --- /dev/null +++ b/include/run.inc.php @@ -0,0 +1,33 @@ +run() != PL_WIKI) { + exit; +} + +/*** WIKI CODE ***/ + +include pl_core_include('wiki.engine.inc.php'); + +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: +?>