X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Faction.php;h=8f72b542b05214c2e68429d2326727749c8b185f;hb=74291968c4b4f1fca29cb79caad695a1e2360734;hp=ed25ac9d82c66c153e8111ca349973c3ed189efd;hpb=1c5d1c45864b86a178e10886e50c99132b4821c4;p=quix0rs-gnu-social.git diff --git a/lib/action.php b/lib/action.php index ed25ac9d82..8f72b542b0 100644 --- a/lib/action.php +++ b/lib/action.php @@ -1,23 +1,94 @@ . + */ -if (!defined('MICROBLOG')) { exit(1) } +if (!defined('LACONICA')) { exit(1); } class Action { // lawsuit var $args; - + function Action() { } - - function arg($key) { - if (array_has_key($this->args, $key)) { + + function is_readonly() { + return false; + } + + function arg($key, $def=NULL) { + if (array_key_exists($key, $this->args)) { return $this->args[$key]; } else { - return NULL; + return $def; } } - - function handle($args) { - $this->args = copy($argarray); + + function trimmed($key, $def=NULL) { + $arg = $this->arg($key, $def); + return (is_string($arg)) ? trim($arg) : $arg; + } + + function handle($argarray) { + $this->args =& common_copy_args($argarray); + } + + function boolean($key, $def=false) { + $arg = strtolower($this->trimmed($key)); + + if (is_null($arg)) { + return $def; + } else if (in_array($arg, array('true', 'yes', '1'))) { + return true; + } else if (in_array($arg, array('false', 'no', '0'))) { + return false; + } else { + return $def; + } + } + + function server_error($msg, $code=500) { + $action = $this->trimmed('action'); + common_debug("Server error '$code' on '$action': $msg", __FILE__); + common_server_error($msg, $code); + } + + function client_error($msg, $code=400) { + $action = $this->trimmed('action'); + common_debug("User error '$code' on '$action': $msg", __FILE__); + common_user_error($msg, $code); + } + + function self_url() { + $action = $this->trimmed('action'); + $args = $this->args; + unset($args['action']); + return common_local_url($action, $args); + } + + function nav_menu($menu) { + $action = $this->trimmed('action'); + common_element_start('ul', array('id' => 'nav_views')); + foreach ($menu as $menuaction => $menudesc) { + common_menu_item(common_local_url($menuaction, isset($menudesc[2]) ? $menudesc[2] : NULL), + $menudesc[0], + $menudesc[1], + $action == $menuaction); + } + common_element_end('ul'); } }