Специальные теги MODX Evolution

Теги MODX

PDF

Перейти

Разновидности тегов

В шаблоне 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-параметров

Виджеты

DataGrid - таблица

Floater - плавающий блок

Marquee - бегущая строка

RichText - создает поле с текстовым редактором

Ticker - ротация элементов

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 будет отображаться псевдоним страницы.

На каждом сайте, в каждой программе, есть свои особенности, некоторыми я могу поделиться ЗДЕСЬ