Словари элементов MACRO-шаблона
MACRO шаблонизатор поддерживает те теги и фильтры, которые находятся в так называемых словарях:
- словарь тегов,
- словарь фильтров
По-умолчанию, MACRO ищет теги в папке /limb/macro/src/tags, а также в папках limb/*/src/macro и в папке src/macro приложения, если используется пакет VIEW.
По-умолчанию, MACRO ищет фильтры в папке /limb/macro/src/filters, а также в папках limb/*/src/macro и в папке src/macro приложения, если используется пакет VIEW.
MACRO ищет файлы тегов и других элементов на основе определенных шаблонов:
- .tag.php - для файлов тегов.
- .filter.php - для файлов фильтров.
То есть остальные файлы в этих папках пропускаются.
Словари обычно кешируются и собираются только 1 один раз. Обычно кеш словарей лежит в папке /var/compiled вашего приложения. Если вам необходимо пересоздать словари, например, вы создаете новый тег - просто удалите файлы словарей и MACRO проведет процедуру сканирования заново.
При сканировании MACRO использует так называемые аннотации - некоторые мета-описания, указывающие, например, название тега, какие аттрибуты являются обязательными т.д. Например, файл тега {{list:empty}}
/** * Empty List tag for a list which failed to have any contents * @tag list:empty * @aliases list:default * @parent_tag_class lmbMacroListTag * @package macro * @version $Id$ */ class lmbMacroListEmptyTag extends lmbMacroTag { } ?>
@tag, @req_attributes, @forbig_end_tag - это аннотации:
- @tag - указывает на название тега, как он будет использоваться в шаблоне (регист не имеет значения).
- @req_attributes - указывает, какие обязательные атрибуты есть у тега.
- @aliases - указывает на алиасы названия тега.
- @parent_tag_class- указывает на класс тега, внутри которого должен находиться тег для формирования правильной иерархической структуры шаблона.
- @forbig_end_tag - указывает, что данный тег не может иметь отдельный завершающий тег.
Набор аннотаций достаточно велик и отличается для фильтров и тегов см. разделы "Создание своих тегов", "Создание своих фильтров".

Обсуждение