Tags
MODX Docs
Перейти
Теги MODX
PDF
Перейти

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

В шаблоне 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.0029 s, 1 request(s), PHP: 0.0258 s, total: 0.0287 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-параметры

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
Email Email
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-парметров могут быть:

1. Внешний файл
2. Таблица базы данных MODX
3. Документ в дереве документов
4. Чанк
5. Результат работы PHP скрипта

 

Эти источники данных могут переданы или «привязаны» к 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();

Плейсхолдеры

Плейсхолдеры используются для вывода какого-либо параметра в шаблонах сниппетов/модулей или для вывода результатов работы сниппета.

[+placeholder_name+]

Пример: [+id+]

Подробно о плейсхолдерах читай в документации к сниппетам.

Чанки

Чанки могут содержать простой текст или HTML-код, который можно многократно использовать в шаблонах, других чанках или сниппетах. Как правило, шаблоны в MODX разбиваются на несколько основных чанков, содержащих общий код. Например шапка сайта, футер, основное меню. Если потребуется внести изменения, например, в футер сайта, тебе не надо будет вносить правки во все шаблоны, а достаточно изменить лишь код в чанке.

Чанки могут использоваться в качестве шаблонов для сниппетов. Таким образом разделяется управляющий PHP-код сниппета от HTML-кода, служащего для оформления результатов работы сниппетов. Для этого в этих чанках применяются различные плейсхолдеры, в которые сниппет и поместит результат своей работы. Информацию о шаблонах и плейсхолдерах сниппетов смотриnt в документации к сниппетам.

Чанки не могут содержать PHP-код. Но чанки могут содержать сниппеты.

Пример: {{news}}

API: modx‐>getChunk('news');

Ссылки

Для формирования URL ссылки на другой документ MODX, достаточно разместить в теге ссылки идентификатор документа:

[~123~] - где 123 идентификатор страницы, на которую необходимо создать ссылку

Можно совместить эту конструкцию с другими тегами, например:

[~[(site_start)]~] - создаст URL ссылки на стартовую страницу.

[~[*parent*]~] - создаст ссылку на родительский документ.

Тег ссылки формирует только URL, а не саму ссылку. При использовании дружественных URL будет отображаться псевдоним страницы.

Поделитесь ссылкой

Статистика

Яндекс цитирования
© 2011 - 2023 Школа MODX
Напишите нам в Telegram