Содержание

Tags — Школа MODX

[(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-редактор

i—gu.ru

Синтаксис тегов в MODX Revolution MODX

Для упрощения логики парсинга, ускорения и избежания путаницы, все таги в MODX Revolution сделаны в едином формате, отличаются лишь токеном или набором токенов перед строкой, которая идентифицирует Элемент контента или Контент тег для его обработки; например [[tokenIdenticator]].

Формат тегов в MODX Revolution

Элементы контента Evolution (Старый)   Revolution (Новый) Примеры для Revolution
Шаблоны нет представления тегом   нет представления тегом  
Поля ресурса [*field*]   [[*field]] [[*pagetitle]]
Переменные шаблона [*templatevar*]   [[*templatevar]] [[*tags]]
Чанки {{chunk }}   [[$chunk]] [[$header]]
Сниппеты [[snippet]]   [[snippet]] [[getResources]]
Плагины нет представления тегом   нет представления тегом  
Модули нет представления тегом   не существует в Revolution, используйте ПСМ  
Контент теги        
Заполнители [+placeholder+]   [[+placeholder]] [[+modx.user.id]]
Ссылки [~link~]   [[~link]] [[~[[*id]]? &scheme=`full`]]
Системные настройки [(system_setting)]   [[++system_setting]] [[++site_start]]
Языки нет представления тегом   [[%language_string_key]]  
Комментарий (см. ниже))     [[-это комментарий]]  

Принятие нового формата в Revolution позволило новому парсеру быть полностью рекурсивным, использующем механизм, который не зависит от регулярных выражений.

Ранее какждый таг парсился независимо в особом порядке, один уровень за раз, встроенные теги ожидали своего прохода. Теперь теги парсятся так как они идут по очереди не зависимо от типа элемента, что они представляют и встроенные теги парсятся перед внешними для возможности создания более сложных конструкций из тего. Вместе с возможностью использования предварительно зарезервированного ? & и = символов в теговых строках, MODX контент теги являют мощный набор возможностей для управления контентом.

Теги комментарии

Эта дискуссия на форуме показывает, что некоторые люди испытывают потребность в тегах-комментариях. Поведение по-умолчанию, когда тег представляет несуществующий элемент, то он тихо игнорируется полностью. Используя это свойство вы можете добавлять комментарии в ваших шаблонах, чанках и содержимом и ничего из этого не будет видно во фронт-энде.

Так начиная с версии MODX Revolution 2.2, любой тег, что начинается с тире (-) игнорируется парсером и любые теги, которые он включает будут игнорироваться. До этой версии можно было использовать аналогичный приём, но теги в них парсились и оказывали влияние на производительность.

[[- этот комментарий может быть удалён]]

Структура Тега

Тег содержит много частей:

[[ (отрывающие теги)
! (опционально — некешируеммый флаг)
elementToken (опционально — токен идентифицирующий тип элемента, если он не сниппет, $=чанк, *=поле ресурса/ТВ, +=заполнитель/плейсхолдер и др.)
elementName
@propertyset (опционально — идентификатор Набора параметров)
:filterName=`modifier`:… (опционально — один или несколько фильтров вывода)
? (опционально; показывает начало строки параметров)


&propertyName=`propertyValue` &… (опционально; любые дополнительные параметры разделённые &)
]] (закрывающие теги)

Теги можно располагать на одной линии или в несколько. Любой вариант является приемлемым:

[[!getResources? &parents=`123` &limit=`5`]]
 
[[!getResources?
  &parents=`123`
  &limit=`5`
]]

Параметры

Все теги — а не только сниппеты, в MODX принимают параметры и могут их использовать. Например, давайте возьмём чанк ‘Hello’ с содержимым:

Привет [[+name]]!

Теперь можно передать параметр этому чанку:

[[$Hello?name=`Виктор`]]

Это выведет

Привет Виктор!

Синтакс для параметров такой же как и в Эволюшн.

Кеширование

В Evolution сниппеты, которые должны были быть обработаны с каждым запросом должны быть на некешированной странице или Сниппет сам по себе должен был вызываться некешированно: [!snippet!]

В Revolution любой тег может быть вызван некешированно сразу же после двойных скобок: [[!snippet]], [[!$chunk]], [[!+placeholder]], [[!*template_var]], и др

Если у вас продвинутая установка, в которой настройка site_url — устанавливается по запросу, но ваши ссылки [[~[[*id]]]] не генерируются правильно, помните, что любой тег может вызываться некешированно включая ссылку или анкор-тег:
[[!~[[*id]]]]

В то же время, это вам нужно будет лишь тогда, когда site_url устанавливается динамически и отличается при запросах. Обычно используется кешированная запись.

Порядок парсинга

Если вы можете вызвать сниппет некешированно, то он будет выполнен в последнюю очередь парсинга.

Если у вас ещё ниже есть закешированные заполнители, то они будут определены перед выполнением Сниппета — это значит, что они получат последнее значение хранимое в кеше этого Сниппета ранее (или пустое, если ещё не было установлено).

Если вы хотите вызвать Сниппет некешированно, который установит заполнители, то вам нужно убедится, что заполнители некешированные тоже:

[[!Profile]]
Привет [[!+username]]

Оригинал статьи Tag Syntax

modx.ws

MODX — Облако тегов (Tagger)

На этом уроке рассмотрим, как с помощью компонентов Tagger и pdoTools организовать на сайте теги к статьям, поиск по этим тегам и облако тегов.

Установка Tagger и pdoTools

Для создания тегов к статьям, облака тегов и страницы, которая будет выводить ресурсы в соответствии с переданным ей тегом, будем использовать компоненты Tagger и pdoTools.

Установку необходимых компонентов произведём на странице «Управление пакетами» (Приложения -> Установщик):

  • Tagger — компонент, который добавляет в MODX теги, категории и многое другое.
  • pdoTools — компонент, представляющий собой набор сниппетов, позволяющих решить очень большое количество задач. На этом уроке будем использовать сниппеты pdoResources и pdoPage.

Компонент Tagger

Работу с Tagger начнём с создания группы и тегов в ней. Для этого в верхнем меню нажмем на пункт Приложения и выберем подпункт Tagger. На открывшейся странице перейдём на вкладку Group и создадим новую группу с помощью кнопки «Create a new Group».

MODX (компонент Tagger) — Создание группыMODX - Создание группы для тегов

Основные поля:

  • name — название группы (tags).
  • description — описание группы (теги к статьям).
  • place — место отображение тегов (in tab — во вкладке).
  • show for templates — для каких шаблонов отображать группу (2 — id шаблона статей).
  • allow blank — определяет, можно ли не указывать теги.

Внимание: Работа с Tagger всегда начинается с создания группы, т.к. теги не могут сами по себе существовать, они должны принадлежать к той или иной группе.

Перейдём на вкладку Tags и создадим теги в группе tags.

MODX (компонент Tagger) — Создание нового тегаMODX - Создание нового тега

Основные поля:

  • name — имя тега (например, HTML)
  • alias — псевдоним тега (например, html)
  • group — группа (выбираем ранее созданную группу tags)

После этого создадим ещё несколько тегов.

MODX (компонент Tagger) — Список теговMODX - Список тегов

Добавим к статьям, имеющим шаблон Пост (id=2), теги. Добавление тегов осуществляется во вкладке Tagger.

MODX (компонент Tagger) — Добавление тегов к тикетуMODX - Добавление тегов к тикету

Создание ресурса «Вывод статей по тегу»

Создадим ресурс «Вывод статей по тегу» и шаблон, который свяжем с ним. Результат данного действия показан на рисунке. Во вкладке «Настройки» укажем данному ресурсу URI — show-posts. Запомним идентификатор (id) данного ресурса (например, 20).

MODX — Создание ресурса, который будет использоваться для вывода статей по тегуMODX - Вывод статей в соответсвии с некоторым тегом

Вывод тегов, прикреплённых к статье

Для вывода тегов, добавленных к статье необходимо открыть шаблон (Пост) и вставить в него вызов сниппета TaggerGetTags:


[[TaggerGetTags?
  &resources=`[[*id]]`
  &rowTpl=`@INLINE <div><span>#</span><a href="[[~20]]?tag=[[+alias]]">[[+tag]]</a></div>`
]]

Параметр:

&rowTpl — чанк, который используется для вывода каждого тега.

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

  • [[+alias]] — псевдоним тега.
  • [[+tag]] — имя тега.

Вывод тегов организуем с помощью ссылок, каждая из которых будет иметь следующее значение атрибута href:


[[~20]]?tag=[[+alias]]

где:

  • [[~20]] — URL ресурса «Вывод статей по тегу». Данный ресурс будем использовать для вывода статей, имеющих указанный тег.
  • [[+alias]] — значение передаваемого GET-параметра tag. Данное значение будем использовать в ресурсе [[~20]] для создания запроса к базе данных, выбирающих из неё только записи, имеющие этот тег.
MODX (компонент Tagger) — Вывод тегов на странице тикетаMODX - Вывод тегов на странице ресурса

Создание облака тегов

Для создания облака тегов воспользуемся сниппетом pdoResources. Но перед тем как переходить к выборке, рассмотрим MySQL схему компонента Tagger. Данная схема отображает связь между таблицами (классами) компонента Tagger и modResource.

MODX — Схема Tagger (+таблица modResource)MODX - Схема Tagger (+таблица modResource)

Из схемы видно, что компонент Tagger состоит из 3 таблиц (классов):

  • TaggerTag — список тегов.
  • TaggerTagResource — связывает modResource и TaggerTag. Т.е. каждая строчка содержит id тега и id ресурса.
  • TaggerGroup — список групп.

Класс modResource приведён для наглядности.

Для создания облака тегов необходимо воспользуемся сниппетом pdoResources:


[[!pdoResources?
  &loadModels=`tagger`
  &class=`TaggerTag`
  &leftJoin=`{
    "TaggerTagResources": {
	  "class": "TaggerTagResource",
	  "on": "TaggerTag.id = TaggerTagResources.tag"
    }
  }`
  &select=`{
    "TaggerTag": "*",
	  "TaggerTagResources": "COUNT(TaggerTagResources.tag) as countTags"
	}`
  &groupby=`TaggerTag.id`
  &sortby=`TaggerTag.tag`
  &sortdir=`ASC`  
  &tplWrapper=`@INLINE <div><div><span></span> Теги</div><div>[[+output]]</div></div>`
  &tpl=`@INLINE <a href="[[~20]]?tag=[[+alias]]">[[+tag]] <span>[[+countTags]]</span></a>`
]]

Вставим вышепредставленный код, например, в правую колонку шаблона Пост.

MODX (компонент Tagger) — Облако теговMODX - Облако тегов

Реализация страницы «Вывод статей по тегу»

Данная страница будет выводить список статей, которые имеют указанный тег. Как Вы уже наверно догадались, получать тег эта страница будет из URL (из GET параметра tag).

Рассмотрим этот момент более подробно. На страницах каждый тег оформлен в виде ссылки, которая имеет в своём составе параметр tag.

Например, тег bootstrap имеет следующий URL:


http://site.ru/show-posts?tag=bootstrap

Следовательно, для того чтобы вывести соответствующие ресурсы необходимо:

  1. Получить значение параметра tag из массива GET.
  2. Создать запрос для выборки необходимых данных.
  3. Указать данному запросу условие (where). Т.е. ограничить выборку только теми записями, которые имеют указанный тег.
  4. Создать чанк для оформления результатов.

Вставим в шаблон «Статьи по тегу» базовый каркас страницы и вызов сниппета pdoPage:


[[!pdoPage?
  &element = `pdoResources`
  &limit=`2`
  &loadModels=`tagger`
  &class=`TaggerTagResource`
  &leftJoin=`{
    "NameTag": {
      "class": "TaggerTag",
      "on": "TaggerTagResource.tag = NameTag.id"
    },
    "Posts": {
      "class": "modResource",
      "on": "TaggerTagResource.resource = Posts.id"
    }
  }`
  &select=`{
    "TaggerTagResource": "*",
    "NameTag": "NameTag.tag, NameTag.alias",
    "Posts": "Posts.id, Posts.pagetitle, Posts.description"
  }`
  &where=`{
    "NameTag.alias": "[[!#GET.tag]]"
  }`
  &sortby=`TaggerTagResource.resource`
  &sortdir=`ASC`  
  &tplWrapper =`@INLINE <h3>Всего результатов: [[+page.total]]</h3>[[+output]]`
  &tpl= `chunkTagRow`
]]
[[!+page.nav]]

Чанк chunkTagRow:


<div>
  <div>
    <h4>[[+pagetitle]]</h4><p>[[+description]]</p>
    <p><a href="[[~[[+id]]]]" role="button">Читать далее...	</a></p>
  </div>
</div>
MODX — Вывод статей, имеющих соответствующий тегMODX - Вывод статей, имеющих соответствующий тег

itchief.ru

Синтаксис тегов / Основы / Система / docs.modx.pro

Теги — это основные рабочие элементы MODX для пользователя сайта.

Указывая теги на странице, вы можете вызвать какой-то кусок HTML или PHP кода, текст из словаря, или переменные документа.

Для упрощения логики работы парсера, увеличения производительности и избежания путаницы с составными тегами синтаксис тегов разных элементов сведен к одному принципу: все теги объявляются в квадратных скобках, а тип тега определяется символом перед наименованием.

Синтаксис тегов

Для элементов и полей

ЭлементВ Evolution (Старый)В Revolution (Новый)Пример (для Revolution)
ШаблоныНетНет
Поля ресурсов[*field*][[*field]][[*pagetitle]]
Дополнительные поля[*templatevar*][[*templatevar]][[*tags]]
Чанки{{chunk }}[[$chunk]][[$header]]
Сниппеты[[snippet]][[snippet]][[getResources]]
ПлагиныНетНет
МодулиНетВ Revo нет модулей

Для вывода контента

ЭлементВ Evolution (Старый)В Revolution (Новый)Пример (для Revolution)
Плейсхолдеры[+placeholder+][[+placeholder]][[+modx.user.id]]
Ссылки[~link~][[~link]][[~[[*id]]? &scheme=`full`]]
Системные настройки[(system_setting)][[++system_setting]][[++site_start]]
Языковые тегиНет[[%language_string_key]]
КомментарииНет[[-this is a comment]]

Для системных значений парсера MODX

ОписаниеТэг
Выводит время потраченное на запросы к базе данных[^qt^]
Выводит количество запросов к базе данных[^q^]
Выводит время потраченное на работу PHP скриптов[^p^]
Выводит общее время потраченное на генерацию страницы[^t^]
Выводит источник содержимого (база данных или кэш)[^s^]

Принятие такого упрощенного формата позволяет новому парсеру быть полностью рекурсивным и не зависеть от регулярных выражений.

Раньше каждый набор тегов анализировался самостоятельно в определенном порядке, по уровням вложенности, и обработка внутреннего тега откладывалось до следующего прохода. Сейчас теги обрабатываются по мере их появления, независимо от типов элементов, которые они представляют, и встроенные теги обрабатываться перед внешним тегом (то есть обработка сложных тегов идет изнутри), что позволяет прописывать гораздо более сложные составные теги.

Комментарии в тегах

Обсуждения на форумах показывают, что некоторые люди чувствуют необходимость в комментариях. По умолчанию при обнаружении тега, который представляет собой элемент, которого не существует, парсер отбрасывает весь тег. Используя это поведение, вы можете добавить комментарии в шаблоны, чанки и поля ресурсов, и этот комментарий не будет отображен во фронтенде. Однако, если тег составной, то все внутренние теги обработаются прежде чем парсер отбросит значение.

В MODX Revolution 2.2 любой тег, начинающейся с дефиса (-) игнорируются парсером, и любые теги внутри такого комментария будут отбрасываться. Это позволяет вставлять в комментарии любые составные теги, не влияя на нагрузку.

[[- Это комментарий. Он будет удален из вывода страницы. ]]

Структура тегов

Каждый тег состоит из нескольких частей. Давайте разберем тег на составляющие:

[[                                      // открываем тег
    !                                   // указание, что тег НЕкешируемый (необязательно)
    elementToken                        // тип элемента $ - чанк, * - поле элемента или ТВ, + - плейсхолдер, и т. д.
    elementName                         // имя элемента
    @propertyset                        // можно указать набор параметров для этого элемента (необязательно)
    filterName=`modifier`               // один или несколько фильтров вывода (необязательно)
    ?                                   // указание того, что дальше идут параметры элемента (необязательно если параметры отсутствуют)
    &propertyName=`propertyValue`       // любой параметр элемента, начинающийся с &
    &propertyName2=`propertyValue2`     // параметров может быть сколько угодно, и все начинаются с &
]]                                      //закрываем тег

Эти теги могут прописываться в одну линию или располагаться на нескольких строках для удобства. Оба варианта однозначны:

[[!getResources? &parents=`123` &limit=`5`]]

[[!getResources?
    &parents=`123`
    &limit=`5`
]]

Параметры

Все теги (а не только сниппеты) могут иметь параметры. Например, у нас есть чанк Hello:

Привет, [[+name]]!

В чанке есть плейсхолдер. Мы хотим задать значение для этого плейсхолдера. Раньше нужно было использовать сниппет, который установит это значение. Но не теперь. Просто укажите нужное значение в параметрах чанка:

[[$Hello? &name=`Сергей`]]

На выходе мы получим:

Привет, Сергей!

Кэширование

Мы можем указать, что тег нужно обрабатывать после каждого запроса страницы. Для этого нужно просто поставить восклицательный знак сразу после открывающихся квадратных скобок:

[[!snippet]]
[[!$chunk]]
[[!+placeholder]]
[[!*template_var]]

и т. д.

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

Если вам необходимо, чтобы сниппет каждый раз при запросе страницы устанавливал какой-то плейсхолдер, то плейсхолдер тоже нужно вызывать некэшируемым:

[[!Profile]]
Привет, [[!+username]].

Проверка синтаксиса

Для новичков синтаксис тегов кажется сложноватым, поэтому вы можете использовать плагин SyntaxChecker для проверки правильности написания тегов.

Также можно использовать замечательный редактор Ace, который хорошо подсвечивает синтаксив тегов MODX.

docs.modx.pro

Урок 5. Специальные теги MODx | | Уроки MODx Evo

Уроки MODx

Что такое специальные теги MODx – это определенные конструкции, которые необходимо вставлять в код шаблона сайта, чтобы вывести ту или иную динамическую информацию на сайте.

При настройке шаблона мы использовали тег [*content*] для вывода содержимого страниц и тег [(base_url)] для указания базового URL для всех страниц сайта.

В этом уроке мы более подробно разберем основные теги, с которыми вам придется столкнуться при разработке сайтов на MODx.


Наиболее распространенные теги MODx

[(site_name)] – этот тег выводит заголовок вашего сайта. Обычно используется в заглавии страниц HTML в теге <title>. Ниже на рисунке изображено поле, содержимое которого выводит эта конструкция. Отредактировать его можно на странице системной конфигурации.

Рисунок 5.1

[(base_url)] или [(site_url)] – два тега идентичны между собой. Эти конструкции позволяют выводить URL вашего сайта. При создании шаблона мы использовали тег [(base_url)] для указания базового URL для корректной работы с относительными путями.

[*pagetitle*] – эта конструкция выводит содержимое поля Заголовок, которое мы будем заполнять на странице создания/редактирования ресурса.

[*longtitle*] – выводит содержимое поля Расширенный заголовок. Обычно используется как главный заголовок <h2> на странице.

[*description*] – выводит содержимое поля Описание. Это поле будем использовать для вывода содержимого в META-теге description.

[*introtext*] – выводит содержимое поля Аннотация. Это поле чаще всего используют при создании новостей, заметок в блоге и т.п. для организации страниц с кратким описанием заметок.

[*content*] – основное содержимое страниц. Конструкция выводит любой текст или HTML код, написанный или отредактированный в визуальном редакторе.

[*id*] – выводит идентификатор ресурса.

[*alias*] – выводит псевдоним ресурса.

[~идентификатор~] – выводит URL адрес ресурса, идентификатор которого указан. Например, если ID страницы Новости4, а псевдоним этой страницы – news, то конструкция [~4~] выведет URL вашей страницы с новостями.  

Обратите внимание:  результатом обработки данной конструкции является лишь строка в виде URL страницы, не перепутайте ее со ссылкой на документ. Ссылка на страницу с использованием этой конструкции будет иметь следующий вид:

<a href=”[~4~]”>Новости</a>

Для простоты понимания приведенных выше тегов MODx мы приводим изображение, на котором изображена страница редактирования ресурса с указанием того, какие теги отвечают за вывод в шаблоне содержимого того или иного поля.

Рисунок 5.2

Выше представлены часто употребляемые теги MODx. Но вы должны иметь ввиду, что всего тегов существует гораздо больше. Чтобы вы имели о них представление, мы дополним список менее распространенными тегами.

[*pub_date*] – дата публикации ресурса

[*unpub_date*] – дата завершения публикации

[*createdby*] – идентификатор пользователя, создавшего ресурс

[*createdon*] – дата создания ресурса

[*editedby*] – идентификатор пользователя, редактировавшего ресурс

[*editedon*] – дата редактирования ресурса

[*contentType*] – тип содержимого (например, text/html)

[*type*] – тип (ресурс, папка или ссылка)

[*published*] – опубликован ли ресурс (1|0)

[*parent*] – номер (ID) родительского ресурса

[*isfolder*] – является ли ресурс папкой (1|0)

[*richtext*] – используется ли при редактировании страницы визуальный редактор

[*template*] – номер (ID) используемого шаблона для ресурса

[*menuindex*] – порядковый номер отображения в меню

[*searchable*] – доступен ли ресурс для поиска (1|0)

[*cacheable*] – кэшируется ли ресурс (1|0)

[*deleted*] – ресурс удален (1|0)

[*deletedby*] – идентификатор пользователя, удалившего ресурс

[*menutitle*] – заголовок меню, если таковой есть

[*donthit*] – слежение за количеством посещений отключено (1|0)

[*haskeywords*] – ресурс содержит ключевые слова (1|0)

[*hasmetatags*] – ресурс имеет META теги (1|0)

[*privateweb*] – ресурс входит в частную группу пользовательских документов (1|0)

[*privatemgr*] – ресурс входит в частную группу менеджерских документов (1|0)

[*content_dispo*] – вариант выдачи содержимого (1 – для отображения | 0 – прикрепленное для скачивания)

[*hidemenu*] –документ не отображается в меню (1|0)

[(modx_charset)] – выводит название используемой кодировки

[^qt^] – выводит время запросов к базе данных

[^q^] – выводит количество запросов к базе данных

[^p^] – выводит время работы PHP скриптов

[^t^] – выводит общее время генерации страницы

[^s^] – выводит источник содержимого (база или кэш)

 

1. Откройте для редактирования чанк HEAD и в теге <title> вставьте констркуцию:

[*pagetitle*] | [(site_name)]

Эта конструкция будет выводить в названии HTML-страницы название ресурса и заголовок сайта, разделенные знаком «|».

2. Затем можно добавить META тег description, в содержимое которого вписываем конструкцию [*description*]

<meta name=»description» content=»[*description*]»/>

3. Можно сразу изменить кодировку в шаблоне. Если помните, у нас она была выставлена в UTF-8. В списке выше указан тег, который выводит название кодировки используемой на сайте.

После внесения всех перечисленных изменений чанк HEAD будет иметь следующий вид:

<head>
<base href=»[(site_url)]» />
<title>[*pagetitle*] | [(site_name)]</title>
<meta http-equiv=»Content-Type» content=»text/html; charset=[(modx_charset)] «/>
<meta name=»description» content =»[*description*]»/>
<meta http-equiv=»imagetoolbar» content=»no» />
<link rel=»stylesheet» href=»/assets/templates/site-labmodx/styles/layout.css» type=»text/css» />
<script type=»text/javascript» src=»/assets/templates/site-labmodx/scripts/jquery-1.4.1.min.js»></script>
<script type=»text/javascript» src=»/assets/templates/site-labmodx/scripts/jquery.jcarousel.pack.js»></script>
<script type=»text/javascript» src=»/assets/templates/site-labmodx/scripts/jquery.jcarousel.setup.js»></script>
</head>

4. Вы можете посмотреть, как выглядит заголовок страницы в окне браузера. У нас выглядит так:

Рисунок 5.3

5. Сейчас неплохо было бы автоматизировать вывод главного заголовка <h2> на страницах сайта. Для этого отправляемся на страницу редактирования чанка и перед уже знакомым тегом вывода содержимого страницы вставляем вывод заголовка, содержимое которого будем брать из поля Расширенный заголовок. Как мы видели из рисунка – этому полю соответствует тег [*longtitle*]. После внесения изменений чанк CONTENT примет следующий вид:

<div>
<h2>[*longtitle*]</h2>
[*content*]
</div>

Таким образом, главные заголовки <h2> наших страниц будут выставляться автоматически, и их не нужно будет вписывать в визуальном редакторе. Главное – это не оставлять пустым поле Расширенный заголовок при редактировании ресурса. Так же для организации заголовков Вы можете использовать содержимое других полей, например, поле Заголовок. В этом случае в чанк CONTENT вам необходимо будет добавлять конструкцию <h2>[*pagetitle*]</h2>.

Стили для заголовка в шаблоне уже прописаны. Поэтому, если поле Расширенный заголовок вы не оставили пустым на странице у вас появится заголовок. Вот так он выглядит:

Рисунок 5.4 

6. После этого нам необходимо добавить вывод заголовков в шаблон Во всю ширину, ведь Вы помните, что в этом шаблоне чанка CONTENT у нас нет, а содержимое страниц мы вызываем сразу из шаблона с помощью тега [*content*]. Поэтому, откройте страницу редактирования шаблона и добавьте над этим тегом вывод заголовка: <h2>[*longtitle*]</h2>. После изменений шаблон Во всю ширину должен выглядеть следующим образом. 

Рисунок 5.5

Реализация цепочки навигации «Хлебные крошки». Сниппет Breadcrumbs

Цепочка навигации будет показывать посетителю, где он находится относительно главной страницы.

Рисунок 5.6

Реализовать строку навигации в MODx можно различными способами, но в этом уроке речь пойдет об одном встроенном сниппете Breadcrumbs. Он входит по умолчанию в дистрибутив MODx, и его основной задачей является создание этой цепочки.

Чтобы вызвать сниппет Breadcrumbs в шаблоне мы должны вставить следующую конструкцию:

В этом случае результат работы будет кэшироваться, и при  повторном вызове сниппета код не обрабатывается, а берется из кэш. Некэшируемый вызов осуществляется с помощью названия сниппета, помещенного в квадратные скобки с восклицательными знаками. Вот как бы выглядел некэшируемый вызов: [!Breadcrumbs!].

Результатом работы этого сниппета будет вывод пунктов,  которые отражают иерархию сайта для активной страницы. При этом все пункты навигации будут описаны соответствующими CSS классами.

Например, в нашем случае на странице О нас этот сниппет выведет разметку следующего вида:

<span>
    <span><a href="/main.html" title="Описание страницы">Главная</a></span>
    <span>
        <span>О нас</span>
    </span>
</span>

 Если проанализировать этот код, то мы увидим, что каждый пункт имеет свой класс, при этом последний пункт у нас выводится без ссылки. Разделителем между пунктами служит правая кавычка-ёлочка. Код этого символа: &raquo;.

Для оформления внешнего вида при выводе сниппета используются следующие CSS классы, которые вы должны знать:

  • .B_crumbBox – служит для оформления всего блока цепочки навигации
  • .B_homeCrumb – служит для оформления ссылки, ведущей на главную страницу
  • .B_currentCrumb – служит для оформления пункта текущей страницы
  • .B_firstCrumb – служит для оформления первого элемента цепочки
  • .B_lastCrumb – оформление последнего пункта цепочки
  • .B_crumb – оформление всех остальных элементов (кроме первого, последнего и текущего)
  • .B_hideCrumb – оформление блока c многоточием «…», который появляется в том случае, когда количество пунктов больше установленного вами значения

Используя эти классы, Вы можете в CSS-файле прописать стили для любого тега или пункта навигационной цепочки.

В нашем шаблоне хлебные крошки будут отображаться на всех страницах, кроме главной. Мы вынесли этот элемент в отдельный чанк с именем BREADCRUMB. Сейчас в этом чанке находится следующий код:

<div>
  <div>
   <ul>
      <li>You Are Here</li>
      <li>»</li>
      <li><a href="#">Home</a></li>
      <li>»</li>
      <li><a href="#">Grand Parent</a></li>
      <li>»</li>
      <li><a href="#">Parent</a></li>
      <li>»</li>
      <li><a href="#">Child</a></li>
    </ul>
  </div>
</div>

7. Навигационная цепочка в этом чанке представляет собой ненумерованный список, помещенный в два контейнера <div> и <div>. При этом первый элемент цепочки обозначен классом first, а текущий current. Чтобы сделать динамическую цепочку навигации мы удаляем этот список и на его место вставляем конструкцию вызова сниппета Breadcrumbs. После чего чанк BREADCRUMB будет содержать в себе следующий код:

<div>
   <div>
    [[Breadcrumbs]]
   </div>
</div>

Внимание: в конструкции вызова сниппета имя должно быть написано точно так же, как на странице в администраторской панели: Элементы – Управление элементами – Сниппеты. Это значит, что если Вы напишите с маленькой буквы, либо все буквы будут заглавными, то вызов сниппета осуществлен не будет.

8. Обновите сайт. В браузере на всех страницах, кроме главной будет отображаться динамическая цепочка навигации. Вот как она будет выглядеть на странице Услуги:

Рисунок 5.7

Рассмотрим специальные параметры, которые Вы сможете передавать сниппету Breadcrumbs, чтобы иметь полный доступ к оформлению цепочки навигации.

Напомним, что передача параметров сниппету осуществляется с помощью следующей конструкции:

[[Breadcrumbs? &имя_параметра1=`значение` &имя_параметра2=`значение`]]

Мы уже пользовались подобным синтаксисом при передаче параметров сниппету Wayfinder в уроке о реализации динамического меню.

Параметры Breadcrumbs

Общие настройки:

  • &maxCrumbs – максимальное число пунктов в цепочке. 
    Возможные значения: целое число. 
    По умолчанию: 100.

    Примечание: если установлено число меньше возможного количества пунктов, то посредине цепочки появится многоточие «…» вместо лишних пунктов.

  • &respectHidemenu – скрывать пункты, не помеченные для показа в меню. 
    Возможные значения: 0 — отображать | 1 — скрывать.
    По умолчанию: 1.

    Примечание: включать и отключать пункты для показа в меню можно на странице редактирования ресурса на вкладке «Общие». галочка «Показывать в меню».

  • &showCurrentCrumb – показывать в цепочке пункт с  названием текущей страницы.
    Возможные значения 0 — не показывать | 1 — показывать.
    По умолчанию: 1.

    Примечание: с помощью этого параметра можно отключить отображение последнего пункта в цепочке.

  • &currentAsLink – отображать пункт текущей страницы в виде ссылки или в текстовом виде.
    Возможные значения 0 — текст | 1 — ссылка.
    По умолчанию: 0.

    Примечание: по умолчанию этот параметр отображает пункт текущей страницы в виде простого текста, если вы захотите отобразить пункт в виде ссылки на текущую страницу, выставьте значение 1.

  • &linkTextField – название пунктов в цепочке навигации.
    По умолчанию: menutitle или pagetitle.
    Возможные значения: description | longtitle | pagetitle | menutitle.

    Примечание: от этого параметра зависит, какое поле будет браться для формирования названия пунктов цепочки навигации. По умолчанию название пункта цепочки будет совпадать с названием пункта меню, которое можно изменить на странице редактирования ресурса в поле «Пункт меню».

  • &linkDescField – атрибут title для ссылок в цепочке навигации.
    По умолчанию: description.
    Возможные значения: pagetitle, longtitle, description, menutitle.

    Примечание: значение атрибута title всплывает при наведении мышки на ссылку в цепочке навигации. По умолчанию берется значение поля «Описание», которое можно изменить на странице редактирования ресурса.
  • &showCrumbsAsLinks – пункты цепочки навигации являются ссылками или текстом.
    Возможные значения: 0 — текст | 1 — ссылки.
    По умолчанию: 1.

    Примечание: можете установить значение 0, если по какой-то причине хотите, чтобы цепочка навигации была некликабельна и отображалась в виде текста.

  • &crumbGap – строка, которая будет представлять собой разрыв цепочки навигации.
    Возможные значения: строка.
    По умолчанию: многоточие «…».

    Примечание: вы можете указать какие символы будут разрывать цепочку навигации, если количество пунктов в цепочке больше указанного в &maxCrumbs значения.

  • &stylePrefix – приставка в названиях CSS классов.
    Возможные значения: строка.
    По умолчанию: B_.

    Примечание: значение этого параметра определяет префикс в названии CSS классов. Чуть выше мы уже отметили, какие классы используются при выводе HTML разметки и за что они отвечают.

Настройки для ссылки на главную страницу:

  • &showHomeCrumb – отображать ссылку на главную страницу.
    Возможные значения: 0 — не отображать | 1 — отображать.
    По умолчанию: 1.

    Примечание: по умолчанию в начале цепочки навигации отображается ссылка на главную страницу, даже если ее нет в иерархии текущего документа.

  • &homeId – идентификатор страницы, которая будет считаться главной.
    Возможные значения: целое число.
    По умолчанию: $modx->config[‘site_start’].

    Примечание: по умолчанию главной страницей будет считаться та, идентификатор которой указан на странице системной конфигурации в поле «Первая страница».

  • &homeCrumbTitle – текст пункта главной страницы в цепочке навигации.
    Возможные значения: строка.
    По умолчанию: menutitle или pagetitle.

    Примечание: использовать этот параметр вы можете в том случае, когда захотите, чтобы текст пункта главной страницы отличался от названия пункта меню главной страницы или заголовка страницы, которые можно изменить при редактировании ресурсов. Например, некоторые разработчики вписывают вместо названия «Главная страница» в цепочке навигации название домена.

  • &homeCrumbDescription – пользовательский текст, который может быть использован в качестве атрибута title для ссылки на главную страницу.
    Возможные значения: строка.
    По умолчанию: значение, указанное в параметре linkDescField.

    Примечание: если поле оставить пустым, то текст для атрибута title будет определяться параметром &linkDescField. При желании можете вписать текст, который всплывет при наведении курсора на ссылку. Например, «Перейти на главную страницу»

Настройки для отображения цепочки навигации на различных страницах:

  • &showCrumbsAtHome – отображать цепочку навигации на главной странице.
    Возможные значения: 0 — не отображать | 1 — отображать.
    По умолчанию: 1.

    Примечание: с помощью этого параметра можно отключить показ цепочки навигации на главной странице.

  • &hideOn – не отображать цепочку навигации на страницах
    Возможные значения: разделенные запятыми идентификаторы страниц, на которых не должна отображаться цепочка навигации.

    Примечание: этот параметр удобно использовать для небольшого количества страниц, на которых в качестве исключения не нужен вывод строки навигации. Если же таких страниц много, то лучше воспользоваться параметром &hideUnder либо подумать над созданием еще одного шаблона.

  • &hideUnder – не отображать цепочку навигации на дочерних страницах
    Возможные значения: разделенные запятыми идентификаторы папок, на дочерних документах которых не должна отображаться строка навигации.

    Примечание: указание ID папок скрывает строку навигации только на дочерних страницах. Если вы хотите, чтобы строка не отображалась как на дочерних, так и на родительских страницах, добавьте ID родительских ресурсов как в &hideUnder так и в &hideOn.

Потренируемся передавать дополнительные параметры во время вызова сниппета.

Давайте выведем цепочку навигации, у которой текст ссылки на главную страницу будет Главная, при наведении мышки на ссылку главной страницы будет всплывать надпись Перейти на главную страницу, атрибут title для всех остальных ссылок будет подставляться из поля Расширенный заголовок. Остальные все значения параметров оставим по умолчанию.

9. В чанке BREADCRUMB вставьте конструкцию, приведенную ниже:

[[Breadcrumbs?  &homeCrumbDescription=`Перейти на главную страницу` &linkDescField=`longtitle`]]

Рисунок 5.8

 

10. Обновите страницу в браузере. Вот как будет выглядеть получившаяся цепочка навигации:

Рисунок 5.9

11. Теперь изменим внешний вид цепочки навигации в CSS стилях (файл layout.css). Давайте сделаем так, чтобы ссылки отличались от обычного текста. Сделаем ссылки подчеркнутыми, а при наведении курсора на ссылку – без подчеркивания. Для этого мы идем редактировать CSS-файл, который лежит в директории:

assets/templates/site-labmodx/styles/layout.css

Находим в этом файле стили, отвечающие за отображение блока BreadCrumb (в 114 строке). Удалите эти стили.

/* ----------------BreadCrumb--------------*/
 
#breadcrumb{
    padding:20px 0;
    }
 
#breadcrumb ul{
    margin:0;
    padding:0;
    list-style:none;
    }
 
#breadcrumb ul li{display:inline;}
#breadcrumb ul li.current a{text-decoration:underline;}

12. Вставьте следующие стили вместо удаленных:

#breadcrumb {padding:20px 0;}
#breadcrumb a{text-decoration:underline;}
#breadcrumb a:hover{text-decoration:none;}

Обновите страницу. Если после обновления не видно изменений (мы ведь используем кэшируемый вызов сниппета Breadcrumb), нажмите Ctrl+F5, чтобы загрузить страницу не из кэша браузера. После обновления страницы внешний вид нашей цепочки навигации изменится, но незначительно. Ссылки будут подчеркнуты.

Рисунок 5.10

Как перенести сайт на MODx с компьютера на компьютер
или на другой хостинг

web-grafika.pro

Синтаксис тегов — Разработка сайтов

Варианты тегов MODX

MODX предоставляет удобный массив тегов, различаемых токеном или набором токенов, которые появляются перед строкой. В приведенной ниже таблице указаны эти токены и где и как они могут быть использованы.

ТипТокенПримерИспользование
Коммент-[[- Comment ]]Определяет неразобранный комментарий.
Например: [[- This is a comment]]
Поле ресурса*[[*fieldName]]Выводит значение поля, связанного с текущим ресурсом.
Например: [[*pagetitle]]
Переменная шаблона*[[*tvName]]Выведите значение переменной шаблона.
Например: [[*tags]]
Чанк$[[$chunkName]]Определяет статический сниппет кода для визуализации.
Например: [[$header]]
Сниппет[[snippetName]]Определяет сниппет кода PHP для выполнения.
Например: [[getResources]]
Плейсхолдер+[[+placeholder]]Определяет плейсхолдер для значений из результатов запроса.
Например: [[+pagetitle]]
Ссылка~[[~link]]Возвращает ссылку, полученную из значения.
Например: [[~1? &scheme=full]]
Настройки++[[++settingName]]Определяет заполнитель специально для значений, определенных в системных настройках.
Например: [[++site_name]]
Язык%[[%language]]Например: [[%string? &language=en &namespace=generic &topic=topic]]

Деконструкция тега MODX

Тег MODX может быть расширен за счет дополнительных индикаторов и свойств. Приведенная ниже таблица полностью разбирает тег MODX и иллюстрирует, как и где можно использовать эти необязательные индикаторы и свойства.

ТипИспользование
[[Определяет открытие тега MODX.
!Необязательный флаг без кэширования
TokenНеобязательный Определяет тип элемента.
$ = Чанк,
* = Поле ресурса / переменная шаблона,
+ = Плейсхолдер Смотрите выше для большего количества вариантов
NameИмя значения запрашиваемого элемента.
@propertysetОпределяет набор свойств для использования.
:modifier=`value`Определяет выходной фильтр или модификатор, который будет использоваться.
Например::gt=`0`:then=`Now available!`
?Указывает MODX, что свойства сопровождают этот вызов.
Required if properties present
&property=`value`Определяет свойство и значение, которое будет использоваться с вызовом. Каждый набор свойств разделен &.
Например: &prop1=`1` &prop2=`2`
]]Определяет закрытие тега MODX.

Построение тега MODX

Используя и комбинируя всю вышеуказанную информацию, мы можем создать сложный тег MODX, который будет выглядеть следующим образом:

[[!MySnippet@myPropSet:filter1:filter2=`modifier`? &prop1=`x` &prop2=`y`]]

Однако, хотя MODX позволяет использовать сложные условные фильтры, пользователи должны быть осторожны при построении сложной логики тегов. В отличие от PHP, если у вас недопустимый синтаксис тега MODX, нет полезных сообщений с номерами строк, указывающими местоположение ошибки.

Наличие тегов, требующих отладки, отрицательно сказывается на чистом виде слоя. Держите их в чистоте и простоте.

Хорошее эмпирическое правило заключается в том, что ваши теги должны помещаться в одну строку, даже если вы разметите их на несколько строк для удобства чтения. Если вы полагаетесь на операторы if и другие условия в своих тегах MODX, тогда может потребоваться пересмотр логики потока.

Примечание MODX неоднозначен к пробелам, поэтому оба приведенных ниже примера также будут приемлемы:

[[!getResources? &parents=`123` &limit=`5`]]

[[!getResources?
  &parents=`123`
  &limit=`5`
]]

Свойства

Все теги MODX могут принимать свойства, не только Сниппеты.

В приведенном ниже примере у нас есть простой блок с именем «Hello».

Hello [[+name]]!

Внутри этого чанка у нас есть настройка плейсхолдера [[+name]] для значения, которое будет отображаться. Мы можем передать это значение непосредственно в наш блок с помощью следующего кода:

[[$Hello? &name=`George`]]

Этот вызов будет выглядеть следующим образом:

Hello George!

Кеширование

Любой тег можно выззвать некэшированным, вставив восклицательный знак сразу после открывающей двойной скобки:

[[!snippet]], [[!$chunk]], [[!+placeholder]], [[!*template_var]], и так далее.

Если у вас есть какая-то расширенная настройка, в которой параметр site_url устанавливается для каждого запроса, но ваш [[~[[*id]]]] ссылки не генерируются должным образом, помните, что любой тег можно вызвать некэшированным, включая тег ссылки или якоря: [[!~[[*id]]]]

Тем не менее, вам понадобится только тогда, когда site_url устанавливается динамически, может отличаться для каждого запроса, и вы генерируете полные URL-адреса вместо относительных. Любое нормальное использование может быть кэшировано.

Порядок разбора

Если вы вызовете некэшированный сниппет, он будет выполнен после обработки всех кэшированных тегов.

Если у вас есть кешированные плейсхолдеры ниже этого, они будут оцениваться до того, как будет выполнен этот сниппет — то есть они получат последнее значение, которое бы

docs.modx.org

Работа со специальными тегами MODX Evo ✈ Evolution CMS

7761

Работа со специальными тегами MODX Evo ✈ Evolution CMS

Использование параметра

Параметр в MODX - элемент, который содержит определенную информацию для текущей страницы. Их можно непосредственно вывести на страницу или передать сниппету в качестве параметра.

Все параметры можно разделить на основные, TV-параметры и системные.

Пример параметра:

[*pagetitle*] — Это основной параметр который вернет нам заголовок страницы. Чаще всего он используется для вывода title у страницы:


<head>
	<title>[*pagetitle*]</title>
</head>

Основные параметры:

Список основных параметров заранее определен и содержит основную информацию о документе.

Наиболее используемые:


[*pagetitle*] // заголовок документа
[*longtitle*] // расширенный заголовок документа
[*description*] // описание документа
[*introtext*] // аннотация документа
[*content*] // содержимое документа
[*id*] // идентификатор (номер) документа
[*parent*] // номер (ID) родительского документа
[*pub_date*] // дата публикации дкоумента
[*unpub_date*] // дата завершения публикации
[*createdby*] // Идентификатор пользователя создавшего документ
[*createdon*] // Дата создания документа
[~идентификатор~] // URL документа по указанному идентификатору

Стоит отдельно упомянуть о том, что параметры можно сочетать. В особенности это актиально для создания ссылок на разные документы с помощью параметра [~идентификатор~]. В качестве идентификатора можно также задать параметр.


//Вывести ссылку на текущий документ.
[~[*id*]~]
//Вывести ссылку на родителя текущего документа.
[~[*parent*]~]

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


//заголовок документа
[*pagetitle*]

//расширенный заголовок документа
[*longtitle*]

//описание документа
[*description*]

//аннотация документа 
[*introtext*]

//содержимое документа 
[*content*]

//псевдоним документа
[*alias*]

//атрибуты ссылки
[*link_attributes*]

//идентификатор (номер) документа
[*id*]

//дата публикации дкоумента
[*pub_date*]

//дата завершения публикации
[*unpub_date*]

//Идентификатор пользователя

//создавшего документ
[*createdby*]

//Дата создания документа
[*createdon*]

//Идентификатор пользователя редактировавшего документ
[*editedby*]

//Дата редактирования документа
[*editedon*]

//вариант (документ, папка или ссылка)
[*type*]

//тип содержимого (например, text/html)
[*contentType*]

//опубликован ли документ (1|0)
[*published*]

//номер (ID) родительского документа
[*parent*]

//является ли документа папкой (1|0)
[*isfolder*]

//используется ли при редактировании документа визуальный редактор
[*richtext*]

//номер (ID) используемого шаблона для документа
[*template*]

//порядковый номер отображения в меню
[*menuindex*]

//доступен ли документ для поиска (1|0)
[*searchable*]

//Кэшируется ли документ (1|0)
[*cacheable*]

//Документ удален (1|0)
[*deleted*]

//Возвращает дату удаления документа
//(в секундах с 1 января 1970 г.)
[*deletedon*]

//Идентификатор пользователя удалившего документ
[*deletedby*]

//Заголовок меню. Если не используется, то заголовок документа
[*menutitle*]

//Слежение за количеством посещений отключено (1|0)
[*donthit*]

//Документ содержит ключевые слова (1|0)
[*haskeywords*]

//Документ имеет метатеги (1|0)
[*hasmetatags*]

//Документ входит в частную группу пользовательских документов (1|0)
[*privateweb*]

//Документ входит в частную группу менеджерских документов (1|0)
[*privatemgr*]

//Вариант выдачи содержимого (1 - для отображения | 0 - для скачивания)
[*content_dispo*]

//Документ не отображается в меню (1|0)
[*hidemenu*]

//Учавствует в URL(1|0)
[*alias_visible*]

Теги


//Вставляет кэшируемый вызов сниппета
[[snippet]]

//Вставляет некэшируемый вызов сниппета	
[!snippet!]	

//Вставляет значения системных параметров
[(setting)]	

//Вставляет значение переменной шаблона или TV-параметра
[*resourceField/TV*]

//Вставляет системную информацию	
[^timing^]	

//Формирует ссылку на другой документ
[~link~]	

//Вставляет в документ содержимое чанка
{{chunk}}	

//Используется для вывода какого-либо параметра в шаблонах сниппетов/модулей или для вывода результатов работы сниппета.
[+placeholder+]

Системная информация


//время на запросы к базе данных
[^qt^]

//запросов к базе данных
[^q^]

//время на работу PHP скриптов
[^p^]

//общее время на генерацию страницы
[^t^]

//источник содержимого (база или кэш)
[^s^]

//количество потребляемой памяти 
[^m^]

Пример:


Memory : [^m^], MySQL: [^qt^], [^q^] request(s), PHP: [^p^], Total time: [^t^], Document from [^s^].

Memory : 6 mb, MySQL: 0.0052 s, 11 request(s), PHP: 0.0382 s, Total time: 0.0434 s, Document from cache.

Системные настройки


//разрешены или нет повторяющиеся псевдонимы при использовании дружественных URL
[(allow_duplicate_alias)]

//генерируются ли псевдонимы документов на основе заголовков страниц автоматически
[(automatic_alias)]

//адрес сайта
[(base_url)] или [(site_url)]
//документ кэшируемый по умолчанию
[(cache_default)]

//слова, используемые для настройки Captcha
[(captcha_words)]

//разделенный запятыми список типов содержимого, обслуживаемых MODx
[(custom_contenttype)]

//идентификатор шаблона используемого по умолчанию для новых документов
[(default_template)]

//путь к CSS-файлу используемого визуальным редактором
[(editor_css_path)]

//основной адрес электронной почты на сайте
[(emailsender)]

//тема письма подтверждения регистрации веб-пользователей
[(emailsubject)]

//идентификатор страницы ошибки 404
[(error_page)]

//кодировка сайта
[(modx_charset)]

//указывает, установлен ли FCKeditor для автоматического определения языка
[(fck_editor_autolang)]

//указывает стиль используемый в FCKeditor
[(fck_editor_style)]

//указывает на пользовательскую панель инструментов, добавленную в FCKeditor
[(fck_editor_toolbar)]

//корневая папка для доступа файлового менеджера MODx
[(filemanager_path)]

//используются ли псевдонимы в дружественных URL
[(friendly_alias_urls)]

//используются ли дружественные URL
[(friendly_urls)]

//префикс для дружественных URL
[(friendly_url_prefix)]

//суффикс для дружественных URL
[(friendly_url_suffix)]

//язык системы управления
[(manager_language)]

//layout for the MODx Content Manager.
[(manager_layout)]

//шаблон системы управления
[(manager_theme)]

//количество записей протокола на одной странице
[(number_of_logs)]

//количество сообщений на одной странице
[(number_of_messages)]

//количество элементов, отображаемых в списках и результатах поиска
[(number_of_results)]

//публикация новых ресурсов после создания по умолчанию
[(publish_default)]

//физический путь к папке файлов
[(rb_base_dir)]

//адрес (URL) папки файлов
[(rb_base_url)]

//indicates if all templates or just documents assigned the current default_template are reset when the default template is changed in the manager.
[(reset_template)]

//indicates if MODx will try to resolve visitors hostnames when they visit the site (applies to MODx internal logs).
[(resolve_hostnames)]

//новые ресурсы после создания доступны для поиска по умолчанию
[(search_default)]

//поправка (количество часов) между временем на месте вашего пребывания и на месте нахождения сервера
[(server_offset_time)]

//HTTP или HTTPS (SSL) соединение
[(server_protocol)]

//версия MODx
[(settings_version)]

//determines if preview is shown when viewing documents in MODx Content Manager.
[(show_preview)]

//сообщение, которое будет отсылаться менеджерам, когда создается учетная запись нового менеджера
[(signupemail_message)]

//название сайта
[(site_name)]

//идентификатор стартовой страницы
[(site_start)]

//статус сайта online (1) или offline (0)
[(site_status)]

//сообщение, выводимое в случае недоступности сайта (когда выбран статус Оффлайн) или в случае возникновения ошибки. Это сообщение выводится только в том случае, когда не выбрана страница Сайт недоступен
[(site_unavailable_message)]

//идентификатор ресурса, который должны будут увидеть посетители, если попытаются зайти на сайт, когда он недоступен
[(site_unavailable_page)]

//используются абсолютные или относительные ссылки для изображений, файлов, анимации и т.д.
[(strip_image_paths)]

//количество лучших показателей в отчетах статистики
[(top_howmany)]

//регистрировать посещения
[(track_visitors)]

//разрешено ли пользователям создавать ресурсы в корневой папке
[(udperms_allowroot)]

//ID ресурса, который должны будут увидеть посетители, если попытаются зайти на закрытую страницу (403 – доступ запрещен)
[(unauthorized_page)]

//разделенный запятыми список расширений файлов, которые могут быть загружены через файловый менеджер
[(upload_files)]

//максимальный размер загружаемых файлов в байтах
[(upload_maxsize)]

//используются вложенные URL
[(use_alias_path)]

//использовать код CAPTCHA при авторизации
[(use_captcha)]

//использовать HTML-редактор
[(use_editor)]

//indicates if user permissions are enabled for the site.
[(use_udperms)]

//сообщение, которое будет отсылаться веб-пользователям, когда они запрашивают напоминание пароля
[(webpwdreminder_message)]

//сообщение, которое будет отсылаться веб-пользователям, когда создается учетная запись нового веб-пользователя
[(websignupemail_message)]

//используемый HTML-редактор
[(which_editor)]

modx-gu.ru