Расширения
При необходимости можно расширить список helper’ов своими custom’ными. Для этого в config.ini необходимо в секции php-templater указать директиву extensions[] со значением пути до класса расширения для шаблонизатора.
Например:
[php-templater]
extensions[] = '/templates/demodizzy/extensions/MyExtension'
Имя файла должно совпадать с именем класса, таким образом приведённое выше в примере расширение будет располагаться в файле MyExtension.php.
Класс MyExtension должен реализовывать интерфейс IPhpExtension. Рассмотрим пример класса с расширением, принимающим идентификатор типа и возвращающим объект, описывающий запрошенный тип:
<?php
class MyExtension implements IPhpExtension
{
/**
* {@inheritdoc}
*/
public function getName()
{
return __CLASS__;
}
/**
* {@inheritdoc}
*/
public function getFunctions()
{
return array(
'getType' => $this->getType()
);
}
/**
* Расширение возвращает информацию о типе.
*/
protected function getType()
{
return function($id) {
return umiObjectTypesCollection::getInstance()->getType($id);
};
}
}
Из шаблона вызов будет выглядеть следующим образом:
$this->getType($id);