70 lines
1.9 KiB
PHP
70 lines
1.9 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Расширения для PHPTAL для отображения времени и даты
|
|
*/
|
|
class DateTime_Tales implements PHPTAL_Tales
|
|
{
|
|
static public function date($expression, $nothrow = false)
|
|
{
|
|
return "phptal_date(".PHPTAL_Php_TalesInternal::path ($expression).")";
|
|
}
|
|
|
|
static public function time($expression, $nothrow = false)
|
|
{
|
|
return "phptal_time(".PHPTAL_Php_TalesInternal::path ($expression).")";
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* TALES для подключения компонентов
|
|
* component:name?param1=value1¶m2=value2
|
|
*/
|
|
class Component_Tales implements PHPTAL_Tales
|
|
{
|
|
static public function component($expression, $nothrow = false)
|
|
{
|
|
$s = PHPTAL_Php_TalesInternal::string($expression);
|
|
return "phptal_component(" . $s . ")";
|
|
}
|
|
}
|
|
|
|
|
|
function phptal_date ($e)
|
|
{
|
|
return date("d.m.Y", $e);
|
|
}
|
|
|
|
function phptal_time ($e)
|
|
{
|
|
return date("H:i", $e);
|
|
}
|
|
|
|
/**
|
|
* Функция подключения компонента
|
|
*/
|
|
function phptal_component ($expression) {
|
|
$begin = microtime(true);
|
|
|
|
if(class_exists("Controller_Site")){ //Если мы в CMS2
|
|
$component = Controller_Site::loadComponent($match);
|
|
}else{
|
|
global $db, $registry; // Иначе обращаемся к глобальным переменным
|
|
$component = Controller_Component::loadComponent($expression, $db, $registry);
|
|
}
|
|
$req = new HttpRequest();
|
|
|
|
$result = $component->execute($req);
|
|
|
|
echo "<!-- ", $expression, ", ", round(microtime(true) - $begin, 4), "sec -->";
|
|
return $result;
|
|
}
|
|
|
|
|
|
/* Регистрация нового префикса для подключения компонента */
|
|
$tales = PHPTAL_TalesRegistry::getInstance();
|
|
$tales->registerPrefix('component', array('Component_Tales', 'component'));
|
|
$tales->registerPrefix('date', array('DateTime_Tales', 'date'));
|
|
$tales->registerPrefix('time', array('DateTime_Tales', 'time'));
|
|
|