- Главная
- Документация
- Теги MODX Evolution
- 88886
- Август 2020
Tags Специальные теги MODX Evolution
В шаблоне MODX Evolution используются различные теги или иначе - переменные шаблона, которые служат для формирования контента. Теги MODX дают простой но эффективный способ включать в контент веб-страницы различные данные. При использовании тегов MODX в шаблонах, теги будут заменены на соответсвующий контент. Можно создавать собственные переменные шаблона. Эти переменные могут содержать обычный текст, html или php код.
Виды используемых тегов в MODx.
Параметр | Описание |
---|---|
[[snippet]] |
Вставляет кэшируемый вызов сниппета |
[!snippet!] |
Вставляет некэшируемый вызов сниппета |
[(setting)] |
Вставляет значения системных параметров |
[*resourceField/TV*] |
Вставляет значение переменной шаблона или TV-параметра |
[^timing^] |
Вставляет системную информацию |
[~link~] |
Формирует ссылку на другой документ MODx |
{{chunk}} |
Вставляет в документ содержимое чанка |
[+placeholder+] |
Используется для вывода какого-либо параметра в шаблонах сниппетов/модулей или для вывода результатов работы сниппета. |
Системные параметры выводят соответствующие системные настройки, которые можно изменить или настроить в конфигурации MODX. Например, параметр [(site_name)]
отобразит название сайта. Этот параметр часто используется в заголовке страниц. Список системных параметров можно найти в таблице "(PREFIX)system_settings" где (PREFIX) - префикс базы данных.
Параметр | Описание |
---|---|
[(allow_duplicate_alias)] | разрешены или нет повторяющиеся псевдонимы при использовании дружественных URL |
[(automatic_alias)] | генерируются ли псевдонимы документов на основе заголовков страниц автоматически |
[(base_url)] или [(site_url)] | адрес сайта |
[(cache_default)] | документ 'кэшируемый' по умолчанию |
[(captcha_words)] | слова, используемые для настройки Captcha |
[(custom_contenttype)] | разделенный запятыми список типов содержимого, обслуживаемых MODx |
[(default_template)] | идентификатор шаблона используемого по умолчанию для новых документов |
[(editor_css_path)] | путь к CSS-файлу используемого визуальным редактором |
[(emailsender)] | основной адрес электронной почты на сайте |
[(emailsubject)] | тема письма подтверждения регистрации веб-пользователей |
[(error_page)] | идентификатор страницы ошибки '404' |
[(etomite_charset)] или [(modx_charset)] | кодировка сайта |
[(fck_editor_autolang)] | указывает, установлен ли FCKeditor для автоматического определения языка |
[(fck_editor_style)] | указывает стиль используемый в FCKeditor |
[(fck_editor_toolbar)] | указывает на пользовательскую панель инструментов, добавленную в FCKeditor |
[(filemanager_path)] | корневая папка для доступа файлового менеджера MODx |
[(friendly_alias_urls)] | используются ли псевдонимы в дружественных URL |
[(friendly_urls)] | используются ли дружественные URL |
[(friendly_url_prefix)] | префикс для дружественных URL |
[(friendly_url_suffix)] | суффикс для дружественных URL |
[(manager_language)] | язык системы управления |
[(manager_layout)] | layout for the MODx Content Manager. |
[(manager_theme)] | шаблон системы управления |
[(number_of_logs)] | количество записей протокола на одной странице |
[(number_of_messages)] | количество сообщений на одной странице |
[(number_of_results)] | количество элементов, отображаемых в списках и результатах поиска |
[(publish_default)] | публикация новых ресурсов после создания по умолчанию |
[(rb_base_dir)] | физический путь к папке файлов |
[(rb_base_url)] | адрес (URL) папки файлов |
[(reset_template)] | indicates if all templates or just documents assigned the current default_template are reset when the default template is changed in the manager. |
[(resolve_hostnames)] | indicates if MODx will try to resolve visitors' hostnames when they visit the site (applies to MODx internal logs). |
[(search_default)] | новые ресурсы после создания доступны для поиска по умолчанию |
[(server_offset_time)] | поправка (количество часов) между временем на месте вашего пребывания и на месте нахождения сервера |
[(server_protocol)] | HTTP или HTTPS (SSL) соединение |
[(settings_version)] | версия MODx |
[(show_preview)] | determines if preview is shown when viewing documents in MODx Content Manager. |
[(signupemail_message)] | сообщение, которое будет отсылаться менеджерам, когда создается учетная запись нового менеджера |
[(site_id)] | (replaceThisText) |
[(site_name)] | название сайта |
[(site_start)] | идентификатор стартовой страницы |
[(site_status)] | статус сайта online (1) или offline (0) |
[(site_unavailable_message)] | сообщение, выводимое в случае недоступности сайта (когда выбран статус 'Оффлайн') или в случае возникновения ошибки. Это сообщение выводится только в том случае, когда не выбрана страница 'Сайт недоступен' |
[(site_unavailable_page)] | идентификатор ресурса, который должны будут увидеть посетители, если попытаются зайти на сайт, когда он недоступен |
[(strip_image_paths)] | используются абсолютные или относительные ссылки для изображений, файлов, анимации и т.д. |
[(top_howmany)] | количество лучших показателей в отчетах статистики |
[(track_visitors)] | регистрировать посещения |
[(udperms_allowroot)] | разрешено ли пользователям создавать ресурсы в корневой папке |
[(unauthorized_page)] | ID ресурса, который должны будут увидеть посетители, если попытаются зайти на закрытую страницу (403 – доступ запрещен) |
[(upload_files)] | разделенный запятыми список расширений файлов, которые могут быть загружены через файловый менеджер |
[(upload_maxsize)] | максимальный размер загружаемых файлов в байтах |
[(use_alias_path)] | используются вложенные URL |
[(use_captcha)] | использовать код CAPTCHA при авторизации |
[(use_editor)] | использовать HTML-редактор |
[(use_udperms)] | indicates if user permissions are enabled for the site. |
[(webpwdreminder_message)] | сообщение, которое будет отсылаться веб-пользователям, когда они запрашивают напоминание пароля |
[(websignupemail_message)] | сообщение, которое будет отсылаться веб-пользователям, когда создается учетная запись нового веб-пользователя |
[(which_editor)] | используемый HTML-редактор |
Существует возможность добавлять собственные системные параметры, плагин customSettings.
Следующие теги используются для отображения различной системной информации при генерации страниц сайта.
Параметр | Описание |
---|---|
[^qt^] |
время на запросы к базе данных |
[^q^] |
запросов к базе данных |
[^p^] |
время на работу PHP скриптов |
[^t^] |
общее время на генерацию страницы |
[^s^] |
источник содержимого (база или кэш) |
[^m^] |
размер кэша (опционально) |
Например, если вставить в код шаблона такую строку, можно получить системную информацию о размере кэша, времени запросов к базе MySQL, количестве запросов в базу, общее время генерации страницы и откуда загрузилась страница, из кэша или базы:
Mem : 5 mb, MySQL: 0.0032 s, 1 request(s), PHP: 0.0259 s, total: 0.0291 s, document from cache
Mem : [^m^], MySQL: [^qt^], [^q^] request(s), PHP: [^p^], total: [^t^], document from [^s^]
Ниже представлен список всех существующих на данный момент переменных. Эти переменные содержат определенные поля документа, которые можно использовать в шаблонах или в качестве значения параметров сниппетов.
Параметр | Описание |
---|---|
[*pagetitle*] | заголовок документа |
[*longtitle*] | расширенный заголовок документа |
[*description*] | описание документа |
[*introtext*] | аннотация документа |
[*content*] | содержимое документа |
[*alias*] | псевдоним документа |
[*link_attributes*] | атрибуты ссылки |
[*id*] | идентификатор (номер) документа |
[*pub_date*] | дата публикации документа |
[*unpub_date*] | дата завершения публикации |
[*createdby*] | Идентификатор пользователя создавшего документ |
[*createdon*] | Дата создания документа |
[*editedby*] | Идентификатор пользователя редактировавшего документ |
[*editedon*] | Дата редактирования документа |
[*type*] | вариант (документ, папка или ссылка) |
[*contentType*] | тип содержимого (например, text/html) |
[*published*] | публикован ли документ (1|0) |
[*parent*] | номер (ID) родительского документа |
[*isfolder*] | является ли документа папкой (1|0) |
[*richtext*] | используется ли при редактировании документа визуальный редактор |
[*template*] | номер (ID) используемого шаблона для документа |
[*menuindex*] | порядковый номер отображения в меню |
[*searchable*] | доступен ли документ для поиска (1|0) |
[*cacheable*] | Кэшируется ли документ (1|0) |
[*deleted*] | Документ удален (1|0) |
[*deletedon*] | Возвращает дату удаления документа (в секундах с 1 января 1970 г.) |
[*deletedby*] | Идентификатор пользователя удалившего документ |
[*menutitle*] | Заголовок меню. Если не используется, то заголовок документа |
[*donthit*] | Слежение за количеством посещений отключено (1|0) |
[*haskeywords*] | Документ содержит ключевые слова (1|0) |
[*hasmetatags*] | Документ имеет метатеги (1|0) |
[*privateweb*] | Документ входит в частную группу пользовательских документов (1|0) |
[*privatemgr*] | Документ входит в частную группу менеджерских документов (1|0) |
[*content_dispo*] | Вариант выдачи содержимого (1 - для отображения | 0 - для скачивания) |
[*hidemenu*] | Документ не отображается в меню (1|0) |
[*alias_visible*] | Документ участвует в URL (1|0) |
API: $modx->documentIdentifier;
API: $modx->getDocument(10);
TV-параметры - это дополнительные переменные шаблона. Если недостаточно существующих переменных, можно создать свои собственные. Например, переменную price
, которая будет содержать стоимость товара. Укажите шаблоны, которые будут использовать данную переменную. Использование TV-параметров в шаблонах аналогично основным переменным шаблона.
Пример: [*НазваниеПараметраTV*]
- выводит значение параметра в документе.
API: $modx->getTemplateVar('МойПараметр');
API: $modx->getTemplateVarOutput(array('МойПараметр','ЕщеПараметр'));
API: $modx->getTemplateVars(array('МойПараметр','ЕщеПараметр'), '*', 11);
Тип ввода и визуальные компоненты TV-параметров
Тип ввода | Описание |
---|---|
Text | текстовое поле |
Textarea | текстовое поле в несколько строк |
Textarea (Mini) | |
RichText | текстовое поле с редактором |
DropDown List Menu | раскрывающийся список |
Listbox (Single-Select) | |
Listbox (Multi-Select) | Список множественного выбора |
Radio Options | Переключатели |
Check Box | Флажки |
Image | Поле добавления изображения |
File | Поле для добавления файла |
URL | Поле для добавления url |
Number | Ввод чисел |
Date | Ввод даты |
Custom Input | Пользовательский тип ввода |
Виджеты | Описание |
---|---|
Data Grid |
Таблица |
Floater | Плавающий блок |
Marquee | Бегущая строка |
RichText | Поле с текстовым редактором |
Ticker | Поочередная смена элементов |
View Port | Интеграция любого контента через iframe |
Custom Widget | Пользовательский виджет |
Форматы | Описание |
---|---|
HTML Entities | Преобразует символы в соответствующие HTML сущности |
Date Formatter | Формат даты |
Unixtime | UNIX-время (количество секунд, прошедших с полуночи 1 января 1970 года) |
Delimited List | Вывод значений параметра через заданный разделитель |
HTML Generic Tag | Обернуть параметр тегом с заданными атрибутами |
Hyperlink | Создает гиперссылку |
Image | Выводит изображение. Применяется с Типом ввода Image |
String Formatter | Формат строки. Upper Case - все символы становятся прописными, Lower Case - все символы становятся строчными, Sentence Case - первый символ будет заглавным, Capitalize - первый символ каждого слова в предложении будет заглавным |
Виджеты
Отображает таблицу в соответствии с заданными параметрами. Возможна пагинация.
Атрибуты | Описание |
---|---|
Column Names | Заголовки столбцов |
Field Names | Имена полей, которые необходимо выбрать из таблицы |
Column Widths | Разделенный запятыми список ширин каждого столбца |
Column Allignments | Разделенный запятыми список выравнивания для каждого столбца. Возможные значения: left, center, right |
Column Colors | Разделенный запятыми список цветов для каждого столбца |
Column Types | Разделенный запятыми список типов столбцов для каждого столбца. Поддерживаемые типы Столбцов: Integer, Float, Currency, Date, Text, Image, Hyperlink, Checkbox and Radio |
Cell Padding | Устанавливает у таблици параметр cellpadding |
Cell Spacing | Устанавливает у таблици параметр cellspacing |
Page Size | Сколько записей отображать на странице. Установите 0, чтобы показать все записи. |
Pager Location | Место расположения пагинации, если количество записей превышает параметр Page Size |
Header Text Footer Text |
Текст, помещенный выше и ниже таблицы; может содержать HTML |
Grid Class Row Class Alt Row Class Header Class Row Group Class |
CSS класс для всей таблицы, строк, чередующихся строк, заголовков столбцов |
Grid Style Row Style Alt Row Style Header Style Row Group Style |
Встроенные CSS для всей сетки, строк, чередующихся строк, заголовков столбцов |
Пример:
Создайте TV-параметр grid, в Значении по умоланию укажите примерно такой запрос: @SELECT alias, pagetitle FROM [+PREFIX+]site_content WHERE parent=0
, заполните поля следующим образом: Column Name: alias, pagetitle
и Field Names alias, pagetitle
Важно: переменная [+PREFIX+]
содержит префикс таблиц базы данных. При необходимости скройте параметр с помощью плагина ManagerManager, чтобы его не могли редактировать.
Отображает элемент в окне браузера в заданной позиции и возвращает его с указанной скоростью в это же положение относительно окна браузера или родительского блока, при прокрутке страницы.
Атрибуты | Описание |
Offset X | Правый или левый отступ от края окна браузера или содержащего элемент блока |
Offset Y | Вверх или вниз отступ от края браузера или блока |
Width | Ширина поля. Значение пот умолчаниюю: 200px. |
Height | Высота поля. Значение по умолчанию: 30px. |
Position | Положение относительно окна браузера или блочного элемента |
Glide Speed | Как быстро блок прокручивается обратно в положение после того, как страница прокручивается вниз |
Пример:
Задай размер, положение и скорость.
Виджет предназначен для прокручивания текста, изображений или другого контента по вертикали или горизонтали. Он принимает только значения вводимых строк, в том числе стандартных HTML-элементов и форматирование.
Атрибуты | Описание |
Width | Ширина поля. Значение пот умолчаниюю: 200px. |
Height | Высота поля. Значение по умолчанию: 30px. |
Speed (1-20) | Скорость прокрутки элементов. Значение по умолчанию: 3. |
Mouse Pause | Включает/Отключает режим прокрутки при наведении курсора мыши на область. |
Transition | Устанавливает направление прокрутки по Вертикали или горизонтали. |
Пример:
Задайте размер, направление прокрутки и скорость.
Виджет предназначен для создания текстового поля с редактором. Может использоваться в форме обратной связи.
Атрибуты | Описание |
Width | Ширина поля. Значение пот умолчаниюю: 100%. |
Height | Высота поля. Значение по умолчанию: 300px. |
Editor | Текстовый Редактор для использования в поле Rich Text. Значение по умолчанию: TinyMCE |
Пример:
Создайте параметр, укажите ширину и высоту, выберите подключаемый редактор. При необходимости скройте параметр с помощью плагина ManagerManager.
Виджет предназначен для ротации элементов.
Атрибуты | Описание |
Width | Ширина поля. Значение пот умолчаниюю: 200px. |
Height | Высота поля. Значение по умолчанию: 30px. |
Delay (ms) | Количество миллисекунд до отображения следующего элемента. Значение по умолчанию: 3000. |
Message Delimiter | Символ, служащий разделителем между элементами. Значение по умолчанию: ||. |
Пример:
Создайте параметр, укажите ширину, высоту и время смены элементов. Значением параметра могут быть элементы (текст, HTML-теги), идущие через специальный разделитель: Слайд1||Слайд2||Слайд3
Атрибуты | Описание |
ID/Name | Стилевой идентификатор тега iframe |
Width | Ширина поля. Значение пот умолчаниюю: 200px. |
Height | Высота поля. Значение по умолчанию: 30px. |
Border Size | Ширина бордюра. Значение по умолчанию: 0. |
Scrollbars | Управление полосами прокрутки. |
Auto Size | Управление размером содержимого. |
Auto height | Автоматический подбор высоты. |
Auto width | Автоматический подбор ширины. |
Stretch to Fit | Автоматический подбор ширины и высоты. width = 100% и height = 100% |
Attributes | Устанавливает дополнительные атрибуты, например, onclick и т.д. |
@-привязки
Источником данных для TV-парметров могут быть:
Эти источники данных могут переданы или «привязаны» к TV-пареметру в качестве Возможных значений или Значения по умолчанию. Осуществляется это с помощью следующих типов @-привязок:
@FILE | file_path | file_path - это абсолютный путь от корня сервера или конкретной установки включающий имя файла. Возвращаемое значение - строка с содержимым файла. В файле используются разделители || и == , а также символ \n - новая строка. |
@DOCUMENT | document_id | document_id - идентификатор документа в дереве документов. Возвращаемое значение - строка с содержимым документа. |
@CHUNK | chunk_name | chunk_name - имя чанка. Возвращаемое значение - строка с содержимым чанка. |
@SELECT | sql_query | sql_query - запрос в базу данных. При использовании таблиц базы данных, вы можете добавить тег [+PREFIX+] перед именем таблицы или указать префикс самостоятельно, если он вам известен. Например, modx_site_content , где modx_ является префиксом, используемым в этом примере. |
@EVAL | php_code | php_code - PHP скрипт. Возвращаемое значение - строка или массив. |
@DIRECTORY | _path_to_folder | _path_to_folder - путь к папке. Возвращает список файлов в указанной папке. |
@CODE | html_code | html_code - HTML код. Используется в параметрах некоторых сниппетов, для размещения кода непосредственно в параметре. Например:[[Ditto? &tpl=`@CODE <li>[+pagetitle+]</li>` ...]] |
Пример:
@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();
Чанки могут содержать простой текст или HTML-код, который можно многократно использовать в шаблонах, других чанках или сниппетах. Как правило, шаблоны в MODX разбиваются на несколько основных чанков, содержащих общий код. Например шапка сайта, футер, основное меню. Если потребуется внести изменения, например, в футер сайта, тебе не надо будет вносить правки во все шаблоны, а достаточно изменить лишь код в чанке.
Чанки могут использоваться в качестве шаблонов для сниппетов. Таким образом разделяется управляющий PHP-код сниппета от HTML-кода, служащего для оформления результатов работы сниппетов. Для этого в этих чанках применяются различные плейсхолдеры, в которые сниппет и поместит результат своей работы. Информацию о шаблонах и плейсхолдерах сниппетов смотриnt в документации к сниппетам.
Чанки не могут содержать PHP-код. Но чанки могут содержать сниппеты.
Пример: {{news}}
API: modx‐>getChunk('news');
Для формирования URL ссылки на другой документ MODX, достаточно разместить в теге ссылки идентификатор документа:
[~123~]
- где 123 идентификатор страницы, на которую необходимо создать ссылку
Можно совместить эту конструкцию с другими тегами, например:
[~[(site_start)]~]
- создаст URL ссылки на стартовую страницу.
[~[*parent*]~]
- создаст ссылку на родительский документ.
Тег ссылки формирует только URL, а не саму ссылку. При использовании дружественных URL будет отображаться псевдоним страницы.