From 82d40e32363c4e96996eca7ee44ade879589aa0e Mon Sep 17 00:00:00 2001 From: Laria Carolin Chabowski Date: Sun, 26 Apr 2020 16:33:36 +0200 Subject: Expand tabs and remove trailing whitespace --- ratatoeskr/sys/urlprocess.php | 226 +++++++++++++++++++++--------------------- 1 file changed, 113 insertions(+), 113 deletions(-) (limited to 'ratatoeskr/sys/urlprocess.php') diff --git a/ratatoeskr/sys/urlprocess.php b/ratatoeskr/sys/urlprocess.php index d3c5edb..841ac67 100644 --- a/ratatoeskr/sys/urlprocess.php +++ b/ratatoeskr/sys/urlprocess.php @@ -1,9 +1,9 @@ Exception. - * + * $function - A callback that gets the $data var as an input and returns the new $data var. Can throw an Exception. + * * Returns: - * A callback that can be used as an url action. + * A callback that can be used as an url action. */ function url_action_simple($function) { - return function(&$data, $url_now, &$url_next) use ($function) - { - try - { - $data = call_user_func($function, $data); - $url_next = array(); - } - catch(Redirect $e) - { - $url_next = $e->nextpath; - } - }; + return function(&$data, $url_now, &$url_next) use ($function) + { + try + { + $data = call_user_func($function, $data); + $url_next = array(); + } + catch(Redirect $e) + { + $url_next = $e->nextpath; + } + }; } /* * Function: url_action_subactions * Generate an action that contains subactions. Subactions can redirect to ".." to go to the level above. - * + * * Parameters: - * $actions - Associative array of actions. - * + * $actions - Associative array of actions. + * * Returns: - * A callback that can be used as an url action. + * A callback that can be used as an url action. */ function url_action_subactions($actions) { - return function(&$data, $url_now, &$url_next) use ($actions) - { - $result = url_process($url_next, $actions, $data); - if($result !== NULL) - $url_next = $result; - else - $url_next = array(); - }; + return function(&$data, $url_now, &$url_next) use ($actions) + { + $result = url_process($url_next, $actions, $data); + if($result !== NULL) + $url_next = $result; + else + $url_next = array(); + }; } /* * Function: url_action_alias * Generate an action that is an alias for another one (i.e. redirects). - * + * * Parameters: - * $for - Path (array) of the action this one should be an alias of. + * $for - Path (array) of the action this one should be an alias of. * * Returns: - * A callback that can be used as an url action. + * A callback that can be used as an url action. */ function url_action_alias($for) { - return function(&$data, $url_now, &$url_next) use($for) - { - $url_next = array_merge($for, $url_next); - }; + return function(&$data, $url_now, &$url_next) use($for) + { + $url_next = array_merge($for, $url_next); + }; } /* * Function: url_process * Choose an appropiate action for the given URL. - * + * * Parameters: - * $url - Either an array containing the URL components or the URL (both relative). - * $actions - Associative array of actions. - * Key is the name (anything alphanumeric, should usually not start with '_', reserved for special URL names, see beneath). - * Value is a callback of the form: function(&$data, $url_now, &$url_next). $data can be used for shared data between subactions. $url_next can be modified in order to redirect to another action / stop the routing. - * + * $url - Either an array containing the URL components or the URL (both relative). + * $actions - Associative array of actions. + * Key is the name (anything alphanumeric, should usually not start with '_', reserved for special URL names, see beneath). + * Value is a callback of the form: function(&$data, $url_now, &$url_next). $data can be used for shared data between subactions. $url_next can be modified in order to redirect to another action / stop the routing. + * * Special actions: - * _index - If name is empty, the index will be called. - * _default - If nothing was found, this is the default. - * _notfound - If not even _default exists or NotFoundError was thrown. - * _prelude - If existant, will be executed before everything else. - * _epilog - If existant, will be executed after evrything else. + * _index - If name is empty, the index will be called. + * _default - If nothing was found, this is the default. + * _notfound - If not even _default exists or NotFoundError was thrown. + * _prelude - If existant, will be executed before everything else. + * _epilog - If existant, will be executed after evrything else. */ function url_process($url, $actions, &$data) { - $epilog_running = 0; - if(is_string($url)) - $url = explode("/", $url); - $url = array_filter($url, function($x) { return !empty($x); }); - if(count($url) == 0) - $url = array("_index"); - - if(isset($actions["_prelude"])) - $url = array_merge(array("_prelude"), $url); - - $url_now = $url[0]; - $url_next = array_slice($url, 1); - - while(is_string($url_now) and ($url_now != "") and ($url_now != "..")) - { - $cb = NULL; - if(empty($url_now)) - $url_now = "_index"; - if(isset($actions[$url_now])) - $cb = $actions[$url_now]; - else if(isset($actions["_default"])) - $cb = $actions["_default"]; - else if(isset($actions["_notfound"])) - $cb = $actions["_notfound"]; - else - throw new NotFoundError(); - - try - { - call_user_func_array($cb, array(&$data, $url_now, &$url_next)); - } - catch(NotFoundError $e) - { - if(isset($actions["_notfound"])) - $url_next = array("_notfound"); - else - throw $e; - } - - if(count($url_next) > 0) - { - $url_now = $url_next[0]; - $url_next = array_slice($url_next, 1); - } - else if(isset($actions["_epilog"]) and ($epilog_running <= 0)) - { - $epilog_running = 2; - $url_now = "_epilog"; - } - else - $url_now = ""; - - --$epilog_running; - } - - if($url_now == "..") - return $url_next; - else - return NULL; + $epilog_running = 0; + if(is_string($url)) + $url = explode("/", $url); + $url = array_filter($url, function($x) { return !empty($x); }); + if(count($url) == 0) + $url = array("_index"); + + if(isset($actions["_prelude"])) + $url = array_merge(array("_prelude"), $url); + + $url_now = $url[0]; + $url_next = array_slice($url, 1); + + while(is_string($url_now) and ($url_now != "") and ($url_now != "..")) + { + $cb = NULL; + if(empty($url_now)) + $url_now = "_index"; + if(isset($actions[$url_now])) + $cb = $actions[$url_now]; + else if(isset($actions["_default"])) + $cb = $actions["_default"]; + else if(isset($actions["_notfound"])) + $cb = $actions["_notfound"]; + else + throw new NotFoundError(); + + try + { + call_user_func_array($cb, array(&$data, $url_now, &$url_next)); + } + catch(NotFoundError $e) + { + if(isset($actions["_notfound"])) + $url_next = array("_notfound"); + else + throw $e; + } + + if(count($url_next) > 0) + { + $url_now = $url_next[0]; + $url_next = array_slice($url_next, 1); + } + else if(isset($actions["_epilog"]) and ($epilog_running <= 0)) + { + $epilog_running = 2; + $url_now = "_epilog"; + } + else + $url_now = ""; + + --$epilog_running; + } + + if($url_now == "..") + return $url_next; + else + return NULL; } /* @@ -163,12 +163,12 @@ function url_process($url, $actions, &$data) */ class Redirect extends Exception { - public $nextpath; - public function __construct($nextpath) - { - $this->nextpath = $nextpath; - parent::__construct(); - } + public $nextpath; + public function __construct($nextpath) + { + $this->nextpath = $nextpath; + parent::__construct(); + } } /* * Class: NotFoundError -- cgit v1.2.3-54-g00ecf