====== Пакет MACRO ( шаблонная система {{macro}} )====== Первоначальная идея MACRO(или **%%{{macro}}%%**, что равнозначно) возникла из нашей практики использования шаблонной системы [[http://phpwact.org|WACT-а]]. Первоначально WACT строился исходя из следующих принципов: * XML-подобный синтаксис. * Наличие контекстов, из которых выводятся данные. Эти два обстоятельства значительно усложняют использование WACT-а в случаях, когда вы имеете дело со сложной логикой отображения. Более трети документации на WACT посвящено контекстам. Кроме этого контексты и XML-подобный синтаксис значительно усложняют внутренную архитектуру WACT-а, которую становится все сложнее поддерживать. В результате дискусий родился MACRO как более простая, но не менее мощная альтернатива WACT-у: * [[http://forum.limb-project.com/viewtopic.php?t=1918|первоначальная идея MACRO]] * [[http://forum.limb-project.com/viewtopic.php?t=2030|промежуточные соглашения перед началом разработки MACRO]] * [[http://forum.limb-project.com/viewtopic.php?t=2281|ход разработки MACRO]] WACT еще какое-то время будет нами поддержваться, но в целом приоритет разработки теперь будет отдан MACRO. Для тех, кто ранее работал с WACT-ом, проблем с переходом на MACRO быть не должно. Отличительной особенностью MACRO от WACT-а является и то, что MACRO не является полностью независимым пакетом. Пакет MACRO имеет зависимости от CORE и FS пакетов, что позволяет использовать проверенные временем решения и не "изобретать колесо". Если вы только начинаете разбираться с MACRO, мы рекомендуем читать страницы секции "Информация по использованию MACRO" подряд, сверху вниз. ===== Справочная информация по MACRO ===== * [[.macro:tags|Словарь тегов]] * [[.macro:filters|Словарь фильтров]] ===== Информация по использованию MACRO===== * **Базовые знания** * [[.macro:pros_and_cons|Плюсы и минусы MACRO шаблонизатора]] * [[.macro:diffs_from_wact|Отличия MACRO от WACT-а]] * [[.macro:intro|Введение в шаблонную систему MACRO. Основные элементы шаблонов]] * [[.macro:important_details|Компиляция и выполнение шаблона. Пример рендеринга MACRO-шаблона]] * [[.macro:data_sources|Как MACRO-шаблон получает данные для вывода?]] * **Основные элементы шаблона** * [[.macro:expressions|Выражения. Вывод значений переменных в шаблоне]] * [[.macro:filters_intro|Фильтры. Модификация значений при выводе]] * [[.macro:php_code_in_templates|Использование php-кода в шаблонах]] * **Базовые средства шаблонизации MACRO** * [[.macro:list_tags|Вывод списков]] * [[.macro:pagination|Постраничный вывод списков]] * [[.macro:form_tags|Теги форм и элементов форм]] * [[.macro:template_composition|Композиция шаблонов (включение, обворачивание и переиспользование шаблонов)]] * **Механизм шаблонизатора MACRO** * [[.macro:dictionaries|Словари элементов MACRO-шаблона]] (Какие элементы шаблона распознает MACRO? Словари тегов и фильтров) * [[.macro:template_file_name_resolving|Механизм поиска шаблонов]](Как MACRO ищет шаблоны) * [[.macro:errors_and_debug|Сообщения об ошибках и отладка шаблонов]] ===== Информация для расширения MACRO ===== * [[.macro:compiler|Как работает компилятор MACRO-шаблонов]] * [[.macro:how_to_create_new_tag|Создание своих тегов]] * [[.macro:how_to_create_new_filter|Создание своих фильтров]] * Расширение механизма поиска шаблонов. Поддержка скинов, языкозависимых шаблонов и т.д