Другие элементы

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

Плейсхолдеры, ссылки и системные настройки

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

$modx->setPlaceholder('имя плейсхолдера','значение')

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

[[+имя плейсхолдера]]

Многие сниппеты MODX устанавливают плейсхолдеры. Вы можете отображать значения, установленные для этих плейсхолдеров при помощи тегов плейсхолдеров. Эти теги могут находиться в поле контента ресурса, в чанке, в TV-параметре или в шаблоне. Если у вас есть сниппет (давайте назовем его SetAutor), который, например, устанавливает плейсхолдер под названием autor_name в соответствии с именем автора текущего документа, вы можете поместить следующий тег сниппета в ваш шаблон : [[SetAutor]]. Данный тег сниппета не создает никакого вывода, поскольку он не печатает ничего и не возвращает никакого значения - он только устанавливает плейсхолдер, который будет заменен именем автора :

Автор данного документа : [[+autor_name]]

Отметим, что для того, чтобы работал тег [[+autor_name]], тег сниппета должен находиться в коде ранее, тогда плейсхолдер будет установлен.

MODX установит для вас пару плейсхолдеров при каждом запросе страницы, которые вы можете использовать для отображения идентификатора или имени пользователя текущего пользователя, который ввел логин и пароль (если таковые в настоящее время есть).

Идентификатор текущего пользователя :[[+modx.user.id]]
Имя текущего пользователя :[[+modx.user.username]]

Ссылки представляют собой URL страницы сайта и основаны на использовании одного из полей ресурсов - идентификатора ресурса. В большинстве случаев ссылки используются для обращения к документам. Идентификатор ресурса  документа иногда называется идентификатором документа. Данный идентификатор отображается в скобках в поле ресурсов панели управления рядом с именем ресурса. Вы можете разместить ссылку используя тег ссылки :

[[~##]]

В приведенном выше коде, чтобы получить ссылку на нужный вам ресурс (документ), нужно подставить вместо ## идентификатор соответствующего ресурса. На первый взгляд это может показаться сложным, но на самом деле очень просто. Давайте посмотрим на пример. Предположим вам нужна страница "Контакты" нашего сайта, которая имеет идентификатор ресурса 8 (отображается в панели управления сайта правее имени ресурса в дереве ресурсов). Используя указанный способ создания ссылок, вы можете везде вместо http://modx4you/contacts.html указывать [[~8]]. Имя документа может изменяться, может меняться расположение ресурса на сайте, но тег ссылки всегда будет надежно указывать на данный ресурс, поскольку номер идентификатора ресурса никогда не изменяется. При организации ссылок на страницы вашего сайта желательно всегда использовать теги ссылок.

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

[[++имя_настройки]]

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

Теги

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

  • Тег чанка - содержимое чанка.
  • Тег ресурса - значение поля ресурса или TV-параметра, которое он представляет.
  • Тег сниппета - возвращаемое значение кода PHP в сниппете.
  • Тег ссылки -  URL ресурса, на который он ссылается.
  • Тег плейсхолдера - значение плейсхолдера (часто устанавливаемое в сниппете или плагине).
  • Тег настройки - значение контекстной, пользовательской или системной настройки (переменной).
  • Языковой тег - определенная языковая строка из текущего лексикона.

В  версиях MODX Revolution все теги начинаются с [[ и заканчиваются]]. Мы рассмотрели большинство тегов и в таблице 1-1 дается перечень новых стилей тегов, используемых в MODX Revolution, а также теги, используемые в более ранних версиях MODX :

Таблица 1-1. Старые и новые стили тегов

 Тип тега  MODX Evolution (старая версия)  MODX Revolution
 Ресурс  [*поле ресурса/TV параметр*]  [[*поле ресурса/TV параметр]]
 Чанк  {{имя_чанка}}  [[$имя_чанка]]
 Сниппет  [[имя_сниппета]]  [[имя_сниппета]]
 Настройка  [(имя_настройки)]  [[++имя_настройки]]
 Плейсхолдер  [+имя_плейсхолдера+]  [[+имя_плейсхолдера]]
 Ссылка  [~идентификатор_ресурса~] [[~идентификатор_ресурса]]
 Язык  Тег отсутствует  [[%клавиша_языковой_строки]]

Отметим, что символы после открывающих скобок ($, +, ++, *, ~ и %) в MODX называются токенами.  Они говорят MODX какой тип тега обрабатывается.

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

[[~[[++site_start]]]]

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

[[~X]] является тегом ссылки, где элемент X обозначает идентификатор ресурса документа, на который вы хотите поставить ссылку. Этот элемент будет заменен на URL, связанный с этим документом. Другими словами, например тег [[~12]] будет заменен на URL документа, чей идентификатор ресурса 12.

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

[[++site_start]] является тегом настройки, который будет заменен идентификатором ресурса главной страницы вашего сайта. Поэтому, если идентификатор ресурса вашей домашней страницы равен 1 (и часто так оно и есть), этот тег будет заменен числом 1.

Поэтому конструкция [[~[[++site_start]]]] будет заменена  на [[~1]] и далее на что-то вида http:///ваш_сайт.ru/home.html. Для того, чтобы вам действительно установить ссылку на главную страницу, вы можете использовать следующий код (X)HTML :

<a href="[[~[[++site_start]]]]">Home</a>

При создании вложенных тегов в MODX всегда обращайте внимание на количество квадратных скобок слева и справа. Это количество должно быть одинаково и в MODX Revolution должно быть четным числом.
 
НазадВперёд