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 '
';
}
/**
* 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";
}
}