header($title); $this->title($title); } /** * Determine internal method names. * * @param $method * Method name. * * @return * Method name. */ static function methodName($method) { if (php_sapi_name() == "cli") { return 'cli'. ucfirst($method); } else { return 'web'. ucfirst($method); } } /** * Dispatcher, dynamic version. * * @param $method * Method name. * * @param $arguments * Argument list. * * @return * Callback result. */ public function __call($method, $arguments) { $method = $this->methodName($method); if (method_exists($this, $method)) { return call_user_func_array(array($this, $method), $arguments); } } /** * Dispatcher, static version. * * @param $method * Method name. * * @param $arguments * Argument list. * * @return * Callback result. */ public static function __callStatic($method, $arguments) { $method = self::methodName($method); if (is_callable('self', $method)) { return call_user_func_array(array('self', $method), $arguments); } } /** * Draws a page title. * * @param $title * Page title; */ protected static function webTitle($title) { if (php_sapi_name() == "cli") { echo "$title\n"; } else { echo "

$title

\n"; } } /** * Draws title, CLI version. * * @param $title * Page title; */ protected static function cliTitle($title) { echo "$title\n"; } /** * Draws the page header. * * @param $title * Page title; */ protected static function webHeader($title) { echo ''; echo ''; echo ''; echo ''; echo ''. $title .''; echo ''; echo ''; } /** * Draws the page footer. */ protected static function webFooter() { echo ''; } /** * Draws a form. * * @param $content * Form inner content. * * @param $action * Form action. * * @param $method * Form method. */ protected static function webForm($content, $action = 'index.php', $method = 'get') { echo '
'; echo $content; echo ''; echo '
'; echo '
'; } /** * Draws a form text input. * * @param $name * Input name. * * @param $default * Default value. * * @return * Rendered text input. */ protected static function webFormInputText($name, $default = null) { if ($default) { $default = 'value="'. $default .'"'; } return ucfirst($name) .': '; } /** * Draws a navigation bar. * * @param $entry * Current entry. * * @param $entries * Total number of entries. * * @param $action * Page action. * * @param $extra * Extra parameters. */ protected static function webNavbar($entry, $entries, $action = 'index.php', $extra = NULL) { // First / prev links. if ($entry != 1) { $prev = $entry - 1; echo 'first '; echo '< prev '; } // Next / last links. if ($entry < $entries) { $next = $entry + 1; echo 'next > '; echo 'last'; } } /** * Format a link. * * @param $action * Link action. * * @param $args * Action arguments. * * @param $title * Link title. * * @return * Formatted link. */ protected static function webLink($action, $args, $title) { return ''. $title .''; } /** * Format an entry link. * * @param $entry * Entry number. * * @return * Formatted link. */ protected static function webEntryLink($entry) { return self::link('index.php', '?entry='. $entry, $entry); } /** * Draws tags for opening a table. */ protected static function webOpenTable() { echo ''; } /** * Draws tags for closing a table. */ protected static function webCloseTable() { echo '
'; } /** * Draws a h2 element. * * @param $text * Inner text. */ protected static function webH2($text) { echo "

$text

"; } /** * Draws a h2 element, CLI version. * * @param $text * Inner text. */ protected static function cliH2($text) { echo "$text\n"; } /** * Draws a h3 element. * * @param $text * Inner text. */ protected static function webH3($text) { echo "

$text

"; } /** * Draws a h3 element, CLI version. * * @param $text * Inner text. */ protected static function cliH3($text) { echo "$text\n"; } /** * Draws a line break element. */ protected static function webBr() { echo "
"; } /** * Draws a line break element, CLI version. */ protected static function cliBr() { echo "\n"; } /** * Draws a pre format block element. * * @param $text * Inner text. */ protected static function webPre($text) { echo "
\n$text
"; } /** * Draws a pre format block element. * * @param $text * Inner text. */ protected static function cliPre($text) { echo "$text\n"; } }