Элементы контента

Элементы контента (обычно называемые просто "элементы") в MODX означают именно то, что и предполагает их название : они являются объектами MODX, которые создают, управляют, задают формат, организуют и/или содержат контент. Понятие "элементы контента" является достаточно гибким и по мере развития MODX появляются новые элементы, а иногда элементами становятся поля ресурсов. Иногда элементы могут потерять этот статус и могут быть переквалифицированы во что-нибудь еще. Возможно лучшим рабочим определением элемента контента будет следующее : "объект, который расположен в дереве элементов слева в панели управлния MODX". Ниже мы опишем элементы, которые существуют в настоящее время : шаблоны, tv-параметры, чанки, сниппеты, плагины и категории. Необходимо, однако, иметь в виду, что в вашей версии MODX вы можете не найти некоторых из них.

Шаблоны

Большинство компаний имеют стандартные фирменные бланки, которые они используют при отправке писем. Это придает всем письмам схожий вид и сокращает время, которое понадобилось бы в ином случае для написания имени компании, адреса и т.д. Шаблон в MODX выполняет аналогичную функцию. Он содержит основную информацию, которая появляется в ряде различных веб страниц. Он обычно содержит базовые (X)HTML элементы веб страницы (DOCTYPE, <head>, <body> и т.д.), а также, например, баннер в верхней части страницы и "подвал" (footer) внизу страницы. Он может также содержать другие объекты MODX, как мы это увидим далее.

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

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

Начинающие пользователи MODX иногда создают больше шаблонов, чем это требуется, поскольку они не до конца понимают насколько гибкими могут быть эти шаблоны. Некоторые сайты на MODX (но не все) могут использовать один единственный шаблон не смотря на то, что на разные страницы могут выглядеть по-разному. Более детально мы разберем шаблоны далее.

TV параметры

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

TV параметры служат для расширения перечня полей ресурсов. Представим, например, что зарегистрированные пользователи создают на вашем сайте некоторый контент. При отображении страницы, созданной пользователем, вы можете отобразить ее заголовок и дату создания используя поля ресурсов документа pagetitle и createdon. Однако, что если вы также захотите также показать астрологический знак автора? Вам потребуется другое поле ресурса. К счастью вы можете легко добавить TV параметр, назвав его, например, "Sign", чтобы он содержал эту информацию (подробнее об этом далее). Теперь когда кто-то будет редактировать документ в панели управления MODX, он увидит дополнительное поле, помеченное "Sign" и служащее для ввода астрологического знака посетителя.

TV параметры - очень гибкий механизм, позволяющий хранить много различных объектов, таких как текст, изображения, код (X)HTML, даты, содержимое каталогов и т.д. Фактически мы можем легко представить наш TV параметр "Sign" в виде выпадающего списка из двенадцати астрологических знаков или в виде двенадцати радио кнопок. В MODX такие вещи делать очень легко и мы далее разберем это подробнее.

Вы можете спросить, как содержимое TV параметра попадает на веб страницу. Наиболее простым способом является поместить его в тег ресурса (resource tag) в шаблоне, связанном с этим документом. Тег ресурса выглядит подобно этому : . Как TV параметры, так и поля ресурсов могут отображаться, используя теги ресурсов. Следующий код можно использовать для отображения на странице заголовка, даты, и знака зодиака :

 

<p> Заголовок : [[*pagetitle]]<br/>
Дата создания : [[*createdon]]<br/>
Знак зодиака : [[*sign]]<br/>

 

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

В приведенном ниже видео наглядно показан процесс создания и использования tv-параметра в MODX Revolution. Здась используется tv -параметр типа "изображение/картинка" для ресурса (страницы сайта).

Чанки

Чанк в MODX представляет собой просто повторяемую часть контента. Ключевым моментом, который необходимо помнить относительно чанков, является то, что они не могут содержать PHP код (это работа для сниппетов). Многие чанки являются просто кусками содержимого, включающего в себя  код (X)HTML, которое вы хотите разместить на различных страницах. Баннер вверху страницы, "подвал" страницы или футер внизу страницы и меню часто содержатся в чанках. Таким образом, если вы отредактируете один чанк, изменения могут быть  внесены на многих страницах, где он используется.

Чанки специального назначения, называемые чанками Tpl, используются как мини-шаблоны. Они обычно содержат текст и теги плейсхолдеров (подробнее о плейсхолдерах далее) и используются для форматирования выводимых данных. Вот простой пример, который может быть использован для отображения имени президента и вице-президента компании :

<h3> Руководство компании : </h3>
<p> Президент : [[+president]]</p>
<p> Вице-президент : [[+vice-president]]</p>

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

Чанки Tpl также используются для веб форм и в качестве мини-шаблонов для вывода стандартных дополнений.

Содержимое чанка может встраиваться в страницу различными способами. Наиболее обычным способом является использование для этого тега чанка в шаблоне или поле содержимого документа. Тег чанка выглядит вот так : [[$Имя чанка ]]. Мы рассмотрим некоторые другие методы встраивания содержимого чанка позже.

Сниппеты

Сниппет это просто исполняемый код PHP.  Если ваши посетители сайта могут вставлять содержимое (например, комментарии в блоге), которое немедленно появляется на сайте, что может случиться, если злонамеренный посетитель вставит в комментарий PHP код, который стирает содержимое жесткого диска?  На незащищенном сайте, когда кто-либо посетит страницу с подобным комментарием, могут быть неприятности. В MODX, однако, ничего подобного произойти не может, поскольку PHP код удаляется со страницы. Для того, чтобы выполнить код на странице, он должен быть сниппетом. Далее на страницу вставляется код сниппета, иногда называемый вызовом сниппета). Тег сниппета выглядит следующим образом :

[[Имя сниппета]]

или

[[Имя сниппета? &firstName=`John` &lastName=`Doe`]]

Во втором примере &firstName и &lastName  представляют собой просто элементы информации, называемые свойствами сниппета (ранее назывались параметрами), которые мы хотим передать вызываемому сниппету. То, что содержится в сниппете, заменит тег сниппета на странице, передаваемой браузеру для отображения.

 

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

Использование обычных одинарных или двойных кавычек для указания в них свойств сниппета является распространенной ошибкой неопытных пользователей MODX. В этом случае ваш сниппет просто не будет работать. Другой обычной ошибкой является пропуск знака вопроса после имени сниппета или знака амперсанда перед каждым свойством сниппета, а также неверное написание имени сниппета или свойства сниппета (имена чувствительны к регистру, поэтому будьте внимательны). Еще одна ошибка может возникать при работе с редактором в панели управления, подобным TinyMCE. Этот редактор может заменять амперсанд в ваших тегах сниппета на "&amp;" каждый раз, когда вы сохраняете свою работу. Для того, чтобы исправить это, нажмите в редакторе кнопку "HTML" и исправьте &amp; или &amp;&amp; на отдельный символ амперсанда внутри тегов сниппета.

 

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

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

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

Плагины

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

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

Таким образом, плагин представляет собой код на PHP, который обрабатывает определенное системное событие. Когда это системное событие наступает, то выполняется код плагина. Например, плагин может дать вам доступ к содержимому документа непосредственно перед обработкой его для создания веб страницы путем отслеживания наступления события OnWebPagePrerender. Вы можете перевести содержимое документа, выделить ключевые слова, удалить HTML комментарии, преобразовать некоторые элементы в гиперссылки и т.д.

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

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

Категории

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

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

Отметим, что элементы, включенные в определенную категорию, не будут отображаться в разделе "Категории" (Category). Вместо этого они будут отображаться в папке категорий в соответствующих разделах. Например, сниппет, добавленный в категорию MyCategory, появится в дереве элементов в папке MyCategory, которая находится в разделе "Сниппеты".

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

После помещения элемента в определенную категорию вы можете спрятать их или управлять тем, что пользователи могут делать с ними путем создания в панели управления "Категории Доступа к Элементам " (Element Category Access).

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

НазадВперёд