Логотип

Документация по макросам и шаблонам UMI.CMS

Расширения PHP-шаблонизатора

Расширения

При необходимости можно расширить список 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);