Урок 14. Использование MIGX. Создание таблицы. Уроки modx revolution для начинающих


Урок 14. Использование MIGX. Создание таблицы MODX

Конфигурация MIGX TV

Допустим нам нужна простая таблица с распорядком работы магазина и время, когда он открывается/закрывается. Создайте новую TV (назовём её "operatingHours") используя Тип ввода MIGX TV(подразумеваю, что вы уже установили пакет MIGX через Система -> Управление дополнениями)

Я сделаю это через быстрое создание ТВ, вот как это выглядит:

Используйте следующий код для Вкладок формы. Вы увидите, что я написал JSON немного по-другому, чем автор MIGX плагина, но если синтаксис JSON правильный - значит всё в порядке.

Итак, код для Вкладок формы:

Даём имя для описания вкладки "Operating Hours" и далее добавляем три поля к ней: день, начало и конец работы. Мы не определяем тип ввода, просто подразумеваем, что это текстовое поле.

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

Вставьте код приведенный выше в поля ТВ operatingHours:

Ввод значений для JSON массива и Разметки вкладок MIGx TV

Мы установили три колонки ("Day", "From" и "Until"), определили их ширину и соответствующий dataIndex (который должен быть тем же самым как и значение «поля» в форме) и также указываем, что он не должен сортироваться.

Наконец мы определили замену для "Add Item" в моём случае – это "Добавить новую строчку ".

В менеджере при открытии ресурса, шаблону которого доступно данное поле operationgHours вы теперь можете увидеть следующую картину:

Использование сниппета getImageList для вывода содержимого MIGx TV

Создайте несколько рядов и добавьте в них нужные данные:

Заполнение рядов таблицы - использование MIGx TV

Парсинг данных

Теперь на сайте мы должны вывести эти данные используя сниппет getImageList, который идёт вместе с MIGX дополнением.

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

Как видно на рисунке - я поместил вызов этого сниппета в поле Content, а для вывода его использовал обычный шаблон Base Template, который идёт вместе с базовой установкой MODX Revolution.

Использование сниппета getImageList для вывода содержимого MIGx TV

Это проверит TV operatingHours и спарсит её значения чанком operatingHoursTpl. Вот чанк, который мы использовали:

В основном мы выводим табличный ряд для каждого ряда ТВ и помещаем соответствующие значения. В конце, когда уже значение from пусто, выводятся две колонки с текстом "Closed".

Результат

Использование сниппета getImageList для вывода содержимого MIGx TV

Демо

Это всего лишь маленький пример того, что можно сделать с помощью MIGX! Конечно же, можно сделать намного больше добавили больше колонок, других форм и т.д. Мы об этом поговорим в следующих уроках.

При работе над уроком использовал RTFM MIGX

modx.ws

MODx Revolution: шпаргалка для новичка

MODx Revolution - шпаргалкаДобрый день, дорогие читатели! Посмотрела я сегодня на первые статьи рубрики о MODx и подумала: «да, Оля, лихо ты стартанула!» Говорила, что создать сайт на MODx — проще простого, а сама завалила новичков всякими «бекендами», «фронтендами», «сниппетами» и другими непонятными словами. Что ж, буду исправляться :) Тем более, что хорошо помню, как эти термины по-началу вводили меня в тихий ужас  и полный ступор.

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

Бекенд — это «админка сайта», она доступна только пользователям с определенными правами (по умолчанию только Администратору сайта).

Фронтенд — внешняя часть сайта, его страницы. По умолчанию фронтенд доступен всем посетителям и поисковым системам. Но при желании часть страниц (или все страницы) так же можно закрыть от лишних глаз и роботов.

Документы и шаблоны

Фронтенд сайта состоит из документов. Проще говоря, документы (или «ресурсы») — это страницы сайта. В MODx Revo есть несколько типов документов: HTML, XML, javascript, RSS и так далее. Кроме того, можно создавать свои типы документов.

За внешний вид документов (ресурсов) отвечают шаблоны. Это HTML, XML, javascript код или просто текст. Каждому ресурсу можно назначить один шаблон.

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

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

<h2>[*pagetitle]</h2> [*content]

Стандартные поля документов, которые могут пригодиться вам в работе:

TV-параметры

TV-параметры — это дополнительные поля документов. У них есть разные типы ввода и вывода, например, дата, изображение, файл, текст и т.д.

TV-параметры можно использовать в шаблонах. Выводятся они также, как и стандартные поля документов — [*имяTV]

Чанки

Чанки — это то, за что можно влюбиться в MODx с первого взгляда. Пытаюсь вспомнить аналог в других CMS… наверное их можно сравнить в модулями в Joomla, но это очень условно.Потому что чанки можно вставлять в любом месте шаблона и даже в контент ресурсов (то есть, прямо в текст статьи).

Собственно, чанки и есть фрагменты шаблона, которые вам лень прописывать каждый раз. Например, вы можете создать чанк с кодом Яндекс.Директ и вставлять его в любом месте страницы.

Но чаще всего при помощи чанков выводят блоки, которые повторяются в нескольких шаблонах (футер, шапку, меню и т.д.)

В MODx Revo чанк выводится следующим образом — [$название_чанка]

Сниппеты

Еще одно заковыристое слово, для обозначения простой вещи. Сниппет — это код php (функция или несколько функций). Программист легко созст свой собственный сниппет, ну а те, кто вздрагивает при слове PHP могут воспользоваться готовым.

Вызов кешируемого сниппета выглядит так — [название_сниппета]некешируемого — [!название_сниппета].

Плагины

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

Компоненты

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

Напоследок

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

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

А на сегодня все. Если есть вопросы или дополнения — добро пожаловать в комментарии!

webhow.ru

Интерактивные уроки для веб-разработчиков MODX

Discover Devtools

Discover DevTools Уроки по Chrome DevTools Эти уроки я рекомендую всем без исключения, а для тех, кто прошёл, следующий этап - это знать вот это всё

Try Git

Try Git Гит для начинающих

Ex-Sql.ru

ExSql.ru Серьёзный курс из упражнений для желающих изучить sql.

Codecademy

Codecademy Интерактивные бесплатные уроки по веб-девелопменту для начинающих.

Rails For Zombies

Rails For Zombies Rails начинающий уровень

Codecombat

Codecombat Изучайте Javascript играя в игру. Довольно сложные уровни.

Игра Безье

The B?zier Game Игра для отработки элемента

Codefight

CodeFights Игра на скорость отладки JavaScript.

Flexbox за 5 минут

flexbox in 5 minutes Интерактивный тур по всем основным фичам нового CSS параметра: flexbox.

Изучи Angular

Learn Angular Изучайте AngularJS по новым интерактивным урокам

Кодоментор

Codementor Ваш 1:1 эксперт-ментор, помощник в реальном времени

Whatspx

Whatpx Тестирование распознавания ширины в пикселях.

Создание своей Javascipt игры

jsdares Создайте свою игру изучая JavaScript программирование

Уроки на Codeplayer

Codeplayer Упражнения для продвинутых веб-разработчиков.

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

modx.ws

Топики с тегом уроки

Данный урок больше всего будет полезен именно новичкам, особенно тем, у кого либо вообще нет опыта разработки на MODX, либо очень маленький опыт.

В первом «сравнительном» уроке я постарался перечислить все элементы (объекты), присутствующие в MODX Revolution (хотя вряд ли смог все перечислить). В этом уроке мы постараемся классифицировать их, чтобы понять, что для чего нужно.

Сразу определюсь, под каким углом мы будем все это рассматривать: мы постараемся разобраться, для разработки на каком уровне будет достаточно знать только HTML, не имея опыта программирования на PHP, а на каком уровне без PHP уже обойтись будет нельзя. Забегая вперед скажу, что довольно много можно сделать без знания PHP, и даже такие объекты, как сниппеты и плагины, которые в принципе содержат в себе PHP-код, и то можно использовать без знания PHP, если использовать именно сторонние решения, и есть достаточно внятная документация по использованию.

Итак, для начала попробуем просто своими словами определить два уровня разработки:

Уточню: в данной статье будет больше материала именно для первого уровня разработки.

Так что же нам дает MODX Revolution, как среда разработки сайтов? А дает он многое. На нем можно создавать как простые сайты-визитки, так и очень серьезные проекты. И в зависимости от того, какие стоят задачи, для разработки своего проекта можно будет ограничиться даже набором стандартных готовых решений (типа Wayfinder, getResources и т.п.), а где-то уже потребуются серьезные знания и опыт веб-разработок, но зато даже в базовой сборке MODX Revolution способен дать инструментарий для разработки веб-разработчикам любого уровня. Главное только понимать что для чего нужно.

Пойдем по порядку.

Ресурсы (modResource)

По сути основа любой страницы сайта. Содержит все основные параметры страницы (краткий и длинный заголовок, описание, пользовательский контент и т.п.). Здесь вообще все просто, разобраться даже блондинка сможет (с подсказками), которая хотя бы в ворде работала. http://modxclub.ru/uploads/images/00/00/01/2013/06/30/a4855d1a13.jpg

В настройках страницы можно указать (или увидеть, если уже указано) родительский ресурс, даты публикации и отмены публикации, является ли страница контейнером и т.п. http://modxclub.ru/uploads/images/00/00/01/2013/06/30/4cd387d893.jpg

Так же можно указать тип документа. По умолчанию это HTML, но можно указать и другой тип, к примеру XML. http://modxclub.ru/uploads/images/00/00/01/2013/06/30/d0fe5f5306.jpg

Тип документа влияет на то, какие заголовки будут отправлены сервером браузеру, суффикс страницы в адресной строке (если используется ЧПУ) и т.п. Помимо стандартных типов документов, можно создать сколько угодно своих. http://modxclub.ru/uploads/images/00/00/01/2013/06/30/bb0dceec77.jpg

http://modxclub.ru/uploads/images/00/00/01/2013/06/30/2e54e9942c.jpg

http://modxclub.ru/uploads/images/00/00/01/2013/06/30/80c49cee15.jpg

В третьей вкладке управления ресурсом можно указать к каким группам ресурсов данная страница относится. http://modxclub.ru/uploads/images/00/00/01/2013/06/30/78b6b33ec9.jpg

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

Шаблоны (modTemplate)

С шаблонами все просто, и все сложно. Простое расскажу сейчас, для объяснения более сложного посвящу отдельный урок. Шаблоны выполняют две задачи: 1. Собственно, оформление выводимой на сайте страницы. То есть шаблон содержит HTML-код и чаще всего прописанные в нем MODX-элементы (чанки, сниппеты, TV-параметры, плейсхолдеры и т.п.). 2. Страницам могут назначаться пользовательские дополнительные параметры (TV-параметры. Только это не относится к телевизорам, это Template Vars). Так вот создаваемые TV-параметры назначаются нужным шаблонам, и тогда, выбирая в редакторе страницы шаблон, к которому привязаны TV-параметры, появляется вкладка с дополнительными полями. http://modxclub.ru/uploads/images/00/00/01/2013/06/30/1d687d04dc.jpg

http://modxclub.ru/uploads/images/00/00/01/2013/06/30/ad831e1132.jpg

Но странице так же может быть указан пустой шаблон. http://modxclub.ru/uploads/images/00/00/01/2013/06/30/548b6a0586.jpg

В таком случае на странице будет выведен только контент данной страницы, без какого-либо оформления. Это надо при создании таких ресурсов, как CSS, JS, XML и т.п.

Синтаксис MODX, чанки, сниппеты и прочие элементы

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

Итак, посмотрим код шаблона:

<html> <head> <title>[[++site_name]] - [[*pagetitle]]</title> <base href="[[++site_url]]" /> </head> <body> [[*content]] </body> </html>

Здесь мы видим знакомые нам HTML-теги, типа head, title и т.п., а так же видим конструкции, заключенные в двойные квадратные скобки. Как раз это и есть элементы (теги) MODX. Все теги перечислины на этой странице официальной документации. http://modxclub.ru/uploads/images/00/00/01/2013/06/30/1a1ab734e0.jpg

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

+ Плейсхолдер (переменная, которая может быть заменена ранее присвоенным значением.)

++ Системный плейсхолдер. Такие плейсхолдеры хранят значения системных переменных. К примеру в настройках системы указывается название сайта. Эта системная переменная — site_name. Если где-то вставить системный плейсхолдер [[++site_name]], то на выходе в коде мы получим как раз значение этой переменной. Другая системная переменная site_url хранит полный адрес сайта, включая протокол (http, https и т.п.).

* Параметр страницы. Описанный выше объект modResource имеет ряд зарезервированных параметров, содержащих значения этих полей. К примеру Заголовок страницы содержится в параметре pagetitle, длинный заголовок в параметре longtitle. То есть для того, чтобы вывести заголовок страницы в конечный код, мы просто в нужном нам месте прописываем [[*pagetitle]] По всем названиям полей страницы, можно получить подсказки, просто наведя курсор мыши на нужное поле. http://modxclub.ru/uploads/images/00/00/01/2013/06/30/23a6cae473.jpg

Кстати, дополнительные поля имеют такое же обозначение, как параметры страницы, то есть тоже обозначаются звездочкой.

$ Чанки (блоки HTML-кода)

~ Ссылки на MODX-ресурсы (страницы). К примеру, чтобы получить ссылку на страницу с ID 5, достаточно просто прописать [[~5]]. MODX обработает этот тег и сформирует ссылку с учетом настроек системы (учитывая используется ли ЧПУ или нет, является ли документ контейнером и т.д.)

% Значение словаря.

Как я уже сказал выше, сниппеты не имеют спецсимвола, то есть они просто заключены в квадратные скобки. К примеру [[my_snippet]]. Что такое сниппет? Это объект, содержащий блок PHP кода.

Можно использовать вложенные теги. К примеру [[~[[++site_start]] ]] вернет ссылку на главную страницу. Здесь произойдет двойной вызов. MODX найдет тег-ссылку ~, но для формирования конечного значения обработает системный настройку [[++site_start]], которая хранит ID главной страницы, и передаст ее значние. То есть если site_start имеет значение 1, то по сути мы получим [[~1 ]]. Но конструкция [[~[[++site_start]] ]] хороша тем, что в настройках мы можем поменять ID главной страницы, а MODX все равно сгенерирует актуальную ссылку.

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

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

Итак, двинемся дальше.

Параметры TV (modTemplateVar)

Дополнительные поля. Очень полезный элемент. Хотя ресурсы имеют все важные поля (заголовок, дата создания, контент и т.п.), часто этого бывает не достаточно. К примеру мы хотим на сайте сделать новостную ленту, и хотим, чтобы в списке новостей выводилась аннотация новости и картинка-превью. Аннотация есть ( [[*introtext]] ), а вот картинки-превью нет. Но это не беда, такое поле легко создаться.

TV-параметрам так же будет посвящен отдельный урок.

Чанки (modChunk)

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

Сниппеты (modSnippet)

Объекты, содержащие PHP-код. Эти элементы так же можно использовать без знания PHP. К примеру сформировать меню, вызвав сниппет [[Wayfinder]]. Но вот для того, чтобы изменить сниппет, или создать свой, уже понадобится знание PHP.

Наборы параметров (modPropertySet)

Крайне полезная штука. Подробней читаем здесь.

Все, написал уже много буков, хватит на сегодня. Все перечисленное позволит клепать сайты-визитки на потоке, практически не требуя знания PHP и внутренней структуры MODX. Если в Эво хотя бы при установке готовых компонентов приходилось хоть что-то делать (разархивировать, закинуть куда надо, часто что-то прописать), то в Рево практически все делается через интерфейс.

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

modxclub.ru

Топики с тегом modx для чайников

Данный урок больше всего будет полезен именно новичкам, особенно тем, у кого либо вообще нет опыта разработки на MODX, либо очень маленький опыт.

В первом «сравнительном» уроке я постарался перечислить все элементы (объекты), присутствующие в MODX Revolution (хотя вряд ли смог все перечислить). В этом уроке мы постараемся классифицировать их, чтобы понять, что для чего нужно.

Сразу определюсь, под каким углом мы будем все это рассматривать: мы постараемся разобраться, для разработки на каком уровне будет достаточно знать только HTML, не имея опыта программирования на PHP, а на каком уровне без PHP уже обойтись будет нельзя. Забегая вперед скажу, что довольно много можно сделать без знания PHP, и даже такие объекты, как сниппеты и плагины, которые в принципе содержат в себе PHP-код, и то можно использовать без знания PHP, если использовать именно сторонние решения, и есть достаточно внятная документация по использованию.

Итак, для начала попробуем просто своими словами определить два уровня разработки:

Уточню: в данной статье будет больше материала именно для первого уровня разработки.

Так что же нам дает MODX Revolution, как среда разработки сайтов? А дает он многое. На нем можно создавать как простые сайты-визитки, так и очень серьезные проекты. И в зависимости от того, какие стоят задачи, для разработки своего проекта можно будет ограничиться даже набором стандартных готовых решений (типа Wayfinder, getResources и т.п.), а где-то уже потребуются серьезные знания и опыт веб-разработок, но зато даже в базовой сборке MODX Revolution способен дать инструментарий для разработки веб-разработчикам любого уровня. Главное только понимать что для чего нужно.

Пойдем по порядку.

Ресурсы (modResource)

По сути основа любой страницы сайта. Содержит все основные параметры страницы (краткий и длинный заголовок, описание, пользовательский контент и т.п.). Здесь вообще все просто, разобраться даже блондинка сможет (с подсказками), которая хотя бы в ворде работала. http://modxclub.ru/uploads/images/00/00/01/2013/06/30/a4855d1a13.jpg

В настройках страницы можно указать (или увидеть, если уже указано) родительский ресурс, даты публикации и отмены публикации, является ли страница контейнером и т.п. http://modxclub.ru/uploads/images/00/00/01/2013/06/30/4cd387d893.jpg

Так же можно указать тип документа. По умолчанию это HTML, но можно указать и другой тип, к примеру XML. http://modxclub.ru/uploads/images/00/00/01/2013/06/30/d0fe5f5306.jpg

Тип документа влияет на то, какие заголовки будут отправлены сервером браузеру, суффикс страницы в адресной строке (если используется ЧПУ) и т.п. Помимо стандартных типов документов, можно создать сколько угодно своих. http://modxclub.ru/uploads/images/00/00/01/2013/06/30/bb0dceec77.jpg

http://modxclub.ru/uploads/images/00/00/01/2013/06/30/2e54e9942c.jpg

http://modxclub.ru/uploads/images/00/00/01/2013/06/30/80c49cee15.jpg

В третьей вкладке управления ресурсом можно указать к каким группам ресурсов данная страница относится. http://modxclub.ru/uploads/images/00/00/01/2013/06/30/78b6b33ec9.jpg

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

Шаблоны (modTemplate)

С шаблонами все просто, и все сложно. Простое расскажу сейчас, для объяснения более сложного посвящу отдельный урок. Шаблоны выполняют две задачи: 1. Собственно, оформление выводимой на сайте страницы. То есть шаблон содержит HTML-код и чаще всего прописанные в нем MODX-элементы (чанки, сниппеты, TV-параметры, плейсхолдеры и т.п.). 2. Страницам могут назначаться пользовательские дополнительные параметры (TV-параметры. Только это не относится к телевизорам, это Template Vars). Так вот создаваемые TV-параметры назначаются нужным шаблонам, и тогда, выбирая в редакторе страницы шаблон, к которому привязаны TV-параметры, появляется вкладка с дополнительными полями. http://modxclub.ru/uploads/images/00/00/01/2013/06/30/1d687d04dc.jpg

http://modxclub.ru/uploads/images/00/00/01/2013/06/30/ad831e1132.jpg

Но странице так же может быть указан пустой шаблон. http://modxclub.ru/uploads/images/00/00/01/2013/06/30/548b6a0586.jpg

В таком случае на странице будет выведен только контент данной страницы, без какого-либо оформления. Это надо при создании таких ресурсов, как CSS, JS, XML и т.п.

Синтаксис MODX, чанки, сниппеты и прочие элементы

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

Итак, посмотрим код шаблона:

<html> <head> <title>[[++site_name]] - [[*pagetitle]]</title> <base href="[[++site_url]]" /> </head> <body> [[*content]] </body> </html>

Здесь мы видим знакомые нам HTML-теги, типа head, title и т.п., а так же видим конструкции, заключенные в двойные квадратные скобки. Как раз это и есть элементы (теги) MODX. Все теги перечислины на этой странице официальной документации. http://modxclub.ru/uploads/images/00/00/01/2013/06/30/1a1ab734e0.jpg

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

+ Плейсхолдер (переменная, которая может быть заменена ранее присвоенным значением.)

++ Системный плейсхолдер. Такие плейсхолдеры хранят значения системных переменных. К примеру в настройках системы указывается название сайта. Эта системная переменная — site_name. Если где-то вставить системный плейсхолдер [[++site_name]], то на выходе в коде мы получим как раз значение этой переменной. Другая системная переменная site_url хранит полный адрес сайта, включая протокол (http, https и т.п.).

* Параметр страницы. Описанный выше объект modResource имеет ряд зарезервированных параметров, содержащих значения этих полей. К примеру Заголовок страницы содержится в параметре pagetitle, длинный заголовок в параметре longtitle. То есть для того, чтобы вывести заголовок страницы в конечный код, мы просто в нужном нам месте прописываем [[*pagetitle]] По всем названиям полей страницы, можно получить подсказки, просто наведя курсор мыши на нужное поле. http://modxclub.ru/uploads/images/00/00/01/2013/06/30/23a6cae473.jpg

Кстати, дополнительные поля имеют такое же обозначение, как параметры страницы, то есть тоже обозначаются звездочкой.

$ Чанки (блоки HTML-кода)

~ Ссылки на MODX-ресурсы (страницы). К примеру, чтобы получить ссылку на страницу с ID 5, достаточно просто прописать [[~5]]. MODX обработает этот тег и сформирует ссылку с учетом настроек системы (учитывая используется ли ЧПУ или нет, является ли документ контейнером и т.д.)

% Значение словаря.

Как я уже сказал выше, сниппеты не имеют спецсимвола, то есть они просто заключены в квадратные скобки. К примеру [[my_snippet]]. Что такое сниппет? Это объект, содержащий блок PHP кода.

Можно использовать вложенные теги. К примеру [[~[[++site_start]] ]] вернет ссылку на главную страницу. Здесь произойдет двойной вызов. MODX найдет тег-ссылку ~, но для формирования конечного значения обработает системный настройку [[++site_start]], которая хранит ID главной страницы, и передаст ее значние. То есть если site_start имеет значение 1, то по сути мы получим [[~1 ]]. Но конструкция [[~[[++site_start]] ]] хороша тем, что в настройках мы можем поменять ID главной страницы, а MODX все равно сгенерирует актуальную ссылку.

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

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

Итак, двинемся дальше.

Параметры TV (modTemplateVar)

Дополнительные поля. Очень полезный элемент. Хотя ресурсы имеют все важные поля (заголовок, дата создания, контент и т.п.), часто этого бывает не достаточно. К примеру мы хотим на сайте сделать новостную ленту, и хотим, чтобы в списке новостей выводилась аннотация новости и картинка-превью. Аннотация есть ( [[*introtext]] ), а вот картинки-превью нет. Но это не беда, такое поле легко создаться.

TV-параметрам так же будет посвящен отдельный урок.

Чанки (modChunk)

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

Сниппеты (modSnippet)

Объекты, содержащие PHP-код. Эти элементы так же можно использовать без знания PHP. К примеру сформировать меню, вызвав сниппет [[Wayfinder]]. Но вот для того, чтобы изменить сниппет, или создать свой, уже понадобится знание PHP.

Наборы параметров (modPropertySet)

Крайне полезная штука. Подробней читаем здесь.

Все, написал уже много буков, хватит на сегодня. Все перечисленное позволит клепать сайты-визитки на потоке, практически не требуя знания PHP и внутренней структуры MODX. Если в Эво хотя бы при установке готовых компонентов приходилось хоть что-то делать (разархивировать, закинуть куда надо, часто что-то прописать), то в Рево практически все делается через интерфейс.

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

modxclub.ru


Prostoy-Site | Все права защищены © 2018 | Карта сайта