====== Словари элементов 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 использует так называемые **аннотации** - некоторые мета-описания, указывающие, например, название тега, какие аттрибуты являются обязательными т.д. Например, файл тега [[.tags:list_tags:list_empty_tag| {{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 - указывает, что данный тег не может иметь отдельный завершающий тег. Набор аннотаций достаточно велик и отличается для фильтров и тегов см. разделы [[how_to_create_new_tag|"Создание своих тегов"]], [[how_to_create_new_filter|"Создание своих фильтров"]].