Специальные теги MODX Evolution
Теги MODX
Разновидности тегов
В шаблоне MODX Evolution используются различные теги или иначе - переменные шаблона, которые служат для формирования контента. Теги MODX дают простой но эффективный способ включать в контент веб-страницы различные данные. При использовании тегов MODX в шаблонах, теги будут заменены на соответсвующий контент. Можно создавать собственные переменные шаблона. Эти переменные могут содержать обычный текст, html или php код.
Виды используемых тегов в MODx.
Системные параметры
Системные параметры выводят соответствующие системные настройки, которые можно изменить или настроить в конфигурации MODX. Например, параметр [(site_name)] отобразит название сайта. Этот параметр часто используется в заголовке страниц. Список системных параметров можно найти в таблице "(PREFIX)system_settings" где (PREFIX) - префикс базы данных.
Существует возможность добавлять собственные системные параметры, плагин customSettings.
Системная информация
Следующие теги используются для отображения различной системной информации при генерации страниц сайта.
Например, если вставить в код шаблона такую строку, можно получить системную информацию о размере кэша, времени запросов к базе MySQL, количестве запросов в базу, общее время генерации страницы и откуда загрузилась страница, из кэша или базы:
Mem : 14 mb, MySQL: 0.0040 s, 1 request(s), PHP: 0.1358 s, total: 0.1398 s, document from cache
1. Mem : [^m^], MySQL: [^qt^], [^q^] request(s), PHP: [^p^], total: [^t^], document from [^s^]
Переменные шаблона
Ниже представлен список всех существующих на данный момент переменных. Эти переменные содержат определенные поля документа, которые можно использовать в шаблонах или в качестве значения параметров сниппетов.
API: $modx->documentIdentifier;
API: $modx->getDocument(10);
TV-параметры
TV-параметры - это дополнительные переменные шаблона. Если недостаточно существующих переменных, можно создать свои собственные. Например, переменную price, которая будет содержать стоимость товара. Укажите шаблоны, которые будут использовать данную переменную. Использование TV-параметров в шаблонах аналогично основным переменным шаблона.
Пример: [*НазваниеПараметраTV*] - выводит значение параметра в документе.
API: $modx->getTemplateVar('МойПараметр');
API: $modx->getTemplateVarOutput(array('МойПараметр','ЕщеПараметр'));
API: $modx->getTemplateVars(array('МойПараметр','ЕщеПараметр'), '*', 11);
Тип ввода и визуальные компоненты TV-параметров
Виджеты
RichText - создает поле с текстовым редактором
Viewport - интеграция любого контента через iframe
@-привязки
Источником данных для TV-парметров могут быть:
1. Внешний файл
2. Таблица базы данных MODX
3. Документ в дереве документов
4. Чанк
5. Результат работы PHP скрипта
Эти источники данных могут переданы или «привязаны» к TV-пареметру в качестве Возможных значений или Значения по умолчанию. Осуществляется это с помощью следующих типов @-привязок:
Пример:
@SELECT pagetitle, id FROM [+PREFIX+]site_content WHERE parent=10 and published=1 and deleted=0
Где: [+PREFIX+] - это плейсхолдер, который подставит префикс таблицы. Если префикс известен, можно вписать этот префикс: modx_site_content.
Данный запрос вернет строку вида pagetitle1==id1||pagetitle2==id2 всех опубликованных и неудаленных документов из папки 10.
Сниппеты
Сниппет - это программа, написанная на языке PHP, которая выводит результат своей работы в том месте шаблона, где размещен вызов этого сниппета, либо в месте расположения внешнего плейсхолдера. Сниппеты могут принимать различные параметры для обработки. Примеры сниппетов: Ditto, Wayfinder, eForm, AjaxSearch и т.д.
[[кэшируемый_сниппет]]
[!некэширеумый_сниппет!]
Пример: [[Ditto? &parents=`6` &tpl=`news`]]. Допустима сокращенная форма: [[Ditto?parents=6 &tpl=`news`]]
API: $modx‐>runSnippet();
Плейсхолдеры
Плейсхолдеры используются для вывода какого-либо параметра в шаблонах сниппетов/модулей или для вывода результатов работы сниппета.
[+placeholder_name+]
Пример: [+id+]
Подробно о плейсхолдерах читай в документации к сниппетам.
Чанки
Чанки могут содержать простой текст или HTML-код, который можно многократно использовать в шаблонах, других чанках или сниппетах. Как правило, шаблоны в MODX разбиваются на несколько основных чанков, содержащих общий код. Например шапка сайта, футер, основное меню. Если потребуется внести изменения, например, в футер сайта, тебе не надо будет вносить правки во все шаблоны, а достаточно изменить лишь код в чанке.
Чанки могут использоваться в качестве шаблонов для сниппетов. Таким образом разделяется управляющий PHP-код сниппета от HTML-кода, служащего для оформления результатов работы сниппетов. Для этого в этих чанках применяются различные плейсхолдеры, в которые сниппет и поместит результат своей работы. Информацию о шаблонах и плейсхолдерах сниппетов смотриnt в документации к сниппетам.
Чанки не могут содержать PHP-код. Но чанки могут содержать сниппеты.
Пример: {{news}}
API: modx‐>getChunk('news');
Ссылки
Для формирования URL ссылки на другой документ MODX, достаточно разместить в теге ссылки идентификатор документа:
[~123~] - где 123 идентификатор страницы, на которую необходимо создать ссылку
Можно совместить эту конструкцию с другими тегами, например:
[~[(site_start)]~] - создаст URL ссылки на стартовую страницу.
[~[*parent*]~] - создаст ссылку на родительский документ.
Тег ссылки формирует только URL, а не саму ссылку. При использовании дружественных URL будет отображаться псевдоним страницы.
На каждом сайте, в каждой программе, есть свои особенности, некоторыми я могу поделиться ЗДЕСЬ