Что такое макрос?
Макрос — программный алгоритм, записанный пользователем для выполнения рутинных операций. В контексте шаблонизаторов, макрос — символьное имя, заменяемое при обработке на последовательность символов (фрагмент HTML-кода, элемент страницы или слово из словаря синонимов). В UMI.CMS макросы позволяют встраивать информацию на сайт, например, URL текущей страницы. Более подробная информация содержится в официальной документации UMI.CMS.
Преимущества PHP-шаблонизатора UMI.CMS
PHP-шаблонизатор UMI.CMS обладает следующими преимуществами:
- Высокая скорость: сайты загружаются быстрее, чем с другими шаблонизаторами.
- Доступность специалистов: найти разработчиков проще, чем для других технологий.
- Быстрая разработка: разработка сайтов занимает меньше времени (по сравнению, например, с XSLT).
- Гибкая кастомизация: обеспечивает большую гибкость настройки шаблонов.
Необходимо учитывать безопасность, поскольку данные могут поступать от пользователей, включая потенциально опасный код (HTML-теги, SQL-запросы и т.д.).
Начало работы с PHP-шаблонизатором UMI.CMS
Базовый шаблон содержит два блока кода, подключающие массив $variables и объект $this. Массив $variables используется для вывода данных (например, заголовка страницы <title>). Объект $this предоставляет доступ к методам шаблонизатора, таким как render(), используемая для рендеринга шаблонов и вывода значений. Иерархическая структура шаблонов организуется с помощью специальных конструкций. Файлы шаблонов хранятся в директории templates/ (вложенные папки допустимы). Главный шаблон часто называется default.php.
Пример структуры файлов шаблонов:
templates/ └── default.php
Шаблон содержит стандартные HTML-теги, вызовы макросов и функции PHP-шаблонизатора. Удаление кода, подключающего массив $variables и объект $this, сделает шаблон неработоспособным.
Схема работы:
- Пользовательский запрос.
- Генерация страницы.
- Шаблонизация с помощью PHP.
- Вывод в браузер.
В отличие от XSLT, PHP-шаблонизатор не требует преобразования данных в XML, что ускоряет генерацию страницы.
Встроенные хелперы (макросы)
UMI.CMS предоставляет следующие встроенные хелперы (макросы):
- macro(): вызов макроса.
- get_page(): возвращает страницу по URL.
- get_page_by_id(): возвращает страницу по ID.
- translate(): возвращает перевод языковой метки.
- get_object(): возвращает объект по ID.
- user(): выполняет команду, связанную с пользователем.
- get_request(): возвращает необработанный параметр запроса.
- set_var(): устанавливает общую переменную.
- get_var(): возвращает запрошенную общую переменную.
- isset_var(): проверяет существование общей переменной.
- parse_macros(): выполняет макросы.
Пример использования set_var() и get_var():
<?php set_var('user', array('login' => 'admin')); ?>
<?php echo get_var('user')['login']; // Выведет 'admin' ?>
Функция print_r() позволяет вывести содержимое массива (например, полученного из get_var()).
Расширение PHP-шаблонизатора
Для создания расширений, внесите изменения в config.ini, добавив секцию umi.template.extends с путем к файлу расширения. Имя файла должно совпадать с именем класса, реализующего интерфейс iUmiTemplateExtension.
Переход с XSLT-шаблонизатора
Переход с XSLT осуществляется заменой вызовов XSLT-функций на соответствующие функции PHP-шаблонизатора.
Работа с макросами в PHP-шаблонизаторе UMI.CMS основана на встроенных хелперах и возможности создания собственных расширений. Это обеспечивает гибкость и высокую производительность. Понимание принципов работы с макросами важно для освоения UMI.CMS.