Программирование на Python и Objective-C в Mac OS

Программирование на Python и Objective-C под Mac OS и для iPhone / iPod Touch

Чанки modx: Урок 5. Работа с чанками MODx Revolution MODX

Содержание

Урок 5. Работа с чанками MODx Revolution MODX

Добро пожаловать на 5 урок MODX Revolution для новичков. В предыдущем уроке мы начали рассматривать работу с шаблонами в MODX Revolution. Мы начали со статичного HTML/CSS шаблона и перенесли его в нашу установку MODX Revolution, изменили пути к файлам и начали изучать синтаксис тегов MODX Revolution и как его использовать. В этом уроке мы продолжим работу над нашим шаблоном и изучим концепцию чанков.

В данном уроке я использую шаблон 7-in-1 Business Success Site студии Themeforest. Если вы работаете над шаблоном, который вы скачали или сделали сами, то это даже лучше. Подход к построению сайта одинаков вне зависимости от используемого шаблона.

Давайте начнем. Наш сайт выглядит сейчас точно так же как и загруженный шаблон, потому что мы изменили все пути к css, js и image файлам. Давайте рассмотрим что же такое чанки

Чанки MODX Revolution

Чанки — это куски HTML кода или текста. Важно отметить что чанк — это чистый HTML код без всякой логики. Чанк не может содержать PHP код, он просто не будет выполнятся. PHP код необходимо вставлять в сниппет (разберёмся в этом в следующих уроках). Этот сниппет потом может быть вызван в чанке. В то же время чанк сам  по себе не может содержать всередине чистый PHP.

Для чего использовать чанки?

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

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

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

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

Видно, что этот шаблон разделён на три различные секции: шапка, подвал и средняя область (по такому принципу делятся почти все шаблоны). Соответственно можно поделить наш шаблон на эти три части. После разделения мы можем далее еще разделить эти секции.

Поэтому первой вещью, что мы сделаем — это создадим два новых чанка, которые назовём:  7in1-header и 7in1-footer.

Для создания чанка зайдем в менеджер и в дереве слева зайдем во вкладку Elements. Можно создать чанк двумя способами: правым кликом на Chunk и выбрать“New Chunk” или кликнуть на иконку Chunk.

В появившемся окне вводим необходимую информацию — имя чанка, описание и категория, если это необходимо.

Пока сохраним этот чанк, чуть позже вставим туда код.

Давайте продолжим и создадим чанк для подвала.


Сейчас если мы взглянем на дерево ресурсов, то увидим наши два новые чанка в разделе Чанки.

Итак, наши чанки готовы к использованию. Всё, что нужно сделать, это вырезать код из секции нашего шаблона и вставить в чанки. В моём случае, я открою шаблон 7in1 Home, который мы создали в предыдущем уроке и вырежу весь код между отрывающим и закрывающим тегами  <head>. Далее я вставлю этот код в средину чанка 7in1-header, который я только что создал и сохраню его.

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

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

Как вызывать чанк в MODX Revolution

Синтаксис чанков в MODX Revolution очень прост:

[[$chunkName]]

В нашем случае мы просто перейдём в наш шаблон и разместим там  вызов нашего чанка 7in1-header в области, где мы убрали код шапки. Таким образом верхняя часть кода нашего шаблона будет иметь следующий вид:

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

Отлично, теперь мы знаем что делать дальше и сделаем ту же процедуру с подвалом. В моём случае я выделю весь код от начала div подвала до закрывающего тега и размещу его в чанке 7in1-footer,  который мы создали. Затем размещу вызов это чанка в нужном месте. Теперь конец кода моего шаблона выглядит вот так:

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

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

Я думаю разумно разместить код для этой секции в собственном чанке и далее вызывать его в наших шаблонах. Я назову этот чанк 7in1-bottomwidgets и таким образом нижняя часть кода моего шаблона приобретёт следующий вид:

Как вы видите, в зависимости от внешнего вида нашего шаблона, мы можем делить его дальше и дальше в отдельные чанки либо же не делить совсем.

Ну вот наш небольшой урок подошёл к концу.

Что дальше?

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

Рекомендую почитать:

MODX чанки (chank) — что такое и как с ними работать.

Автор Алексей На чтение 4 мин Просмотров 3.8к. Опубликовано Обновлено

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

Что такое

MODX чанки – это контейнеры для HTML/CSS/JS-кода (нельзя добавлять php-скрипты, вернее можно но они будут игнорироватся, для этого есть сниппеты). В чанке можно вызывать другие чанки, tv и сниппеты (можно вкладывать другие элементы).

Где хранятся

Чанки, хранятся в БД, в таблице modx_site_htmlsnippets (где modx_ — это префикс таблиц, который задан во время установки движка).

Как создать

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

Переходим во вкладку «Элементы» и кликаем:

  1. На иконку «Новый чанк».
  2. На плюс напротив пункта «Чанки».
  3. ПКМ кликаем по пункту Чанки и выбираем «Создать» либо «Быстро создать».
  4. Воспользоваться пакетом TagElementPlugin.

Как вызывать

Выводятся чанки в шаблоне при помощи следующей конструкции:

  • [[$name_chunks]] – кэшируемый вызов (рекомендуется в большинстве случаев).
  • [[!$name_chunks]], не кэшируемый вызов — выводится каждый раз из БД MODX парсером — что замедлит сайт.
  • {include 'name_chunks'}, вызов чанка при помощи fenom. Также Fenom позволяет включать одни чанки в другие и даже расширять их. Пример вызова чанка с набором параметров: {include 'chunk@propertySet'}. Подробнее про {include} читайте в оф. документации.

Чанк с параметрами

Допустим у нас есть чанк «info», со следующим содержимым:

Привет, [[+name]]. У Вас [[+mesCount]] сообщений.

Он имеет 2 плейсхолдера: [[+name]] и [[+mesCount]]. Передать значения данным плейсхолдерам можно при помощи указания соответствующих параметров вызову чанка:

[[$info? &name=`Алексей` &mesCount=`11`]]

В результате, получим следующее содержимое:

Привет, Алексей. У Вас 11 сообщений.

Условия в чанках

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

[[*parent:is=`7`:then=`
[[$chunk1]]
`:else=`
[[$chunk2]]
`]]

Внимание! Будьте осторожными, условия могут сильно увеличить время генерации страницы.

Натягиваем шаблон — логика разбивки шаблона

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

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

Выносим весь код шаблона (у на пока только один шаблон базовый, смотрите урок Перенос HTML шаблона в MODX Revo) в отдельный чанк tpl и вызываем чанк tpl в самом шаблоне [[$tpl]] или {include 'tpl'}.

Если сейчас перейти на главную страницу — у нас не чего не поменялось — она также открывается с перенесенным html дизайном.  Далее открываем чанк tpl и вырезаем из него весь контент который меняется в чанк tpl.1, а на месте вырезанного кода вставляем вот такую конструкцию [[$tpl.[[*template]]]] или тоже самое на fenom: {include ('tpl.' ~ $_modx->resource.template)}.

Для чего все это?

Тэг «template» выводит id примененного шаблона, а выше приведенная конструкция обращается к соответственному чанку и выводит его. Так мы в дальнейшем сэкономим кучу времени при внесении изменений в верстку сайта.

В дальнейшем мы будем создавать дополнительные шаблоны (для типовых страниц, для статей, для портфолио и т.д.), вызывать во всех будем чанк tpl — там у нас шапка, подвал и другие элементы которые присутствуют на всех остальных страницах. У каждого нового шаблона будет свой id, следовательно, мы будем создавать дополнительные чанки tpl.2, tpl.3, …, tpl.7 и уже в них вносить недостающий контент. Забегая вперед, у нас получится примерно такая структура.

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

Чанки MODx

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

Прежде чем мы продолжим работать над нашим шаблоном, давайте познакомимся с термином «чанк». Который вы могли уже видеть в административной части нашего сайта на ряду с вкладкой шаблоны.

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

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

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

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

Анонс последних статей или новостей на сайте.

Ну и футер (подвал сайта).

Создаем чанки MODx

Для того чтобы создать новый чанк, мы авторизовываемся в административной панели и переходим по следующим вкладкам: «Элементы»-«Управление элементами»-«Чанки». Жмем на кнопку «Новый чанк» и заполняем следующие поля:

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

Теперь открываем код шаблона главной страницы и копируем содержимое от тега head до его закрывающего тега включительно. Вставляем скопированное в поле «Код чанка» нашего созданного чанка.

Сохраняем чанк и переходим к редактированию шаблона главной странице на вкладке «Элементы»-«Управление элементами»-«Шаблоны», вместо скопированного кода вставляем следующую инструкцию { {head} }, сохраняем и обновляем наш сайт. Если вы все сделали правильно, то увидите, что ничего не изменилось.

Теперь давайте разберемся, что означает { {head} }?

Инструкция вида { {имя чанка} } – это фактически вызов кода чанка внутри шаблона, то есть если мы хотим, чтобы содержимое чанка отображалось в определенном месте, мы делаем его вызов в этом самом месте.

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

  • header,
  • slider,
  • news,
  • footer

header – чанк шапки сайта, slider – чанк слайдера с разделами, news – анонс новостей на главной, footer – подвал сайта.

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

Замените в шаблоне куски кода на вызовы чанков, указав вызовы { {header}}, { {slider}}, { {news}}, { {footer}}.

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

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

Скачать файлы урока.

Как работать с чанками в ModX Revolution?

Добро пожаловать на 5 урок MODX Revolution для новичков. В предыдущем уроке мы начали рассматривать работу с шаблонами в MODX Revolution. Мы начали со статичного HTML/CSS шаблона и перенесли его в нашу установку MODX Revolution, изменили пути к файлам и начали изучать синтаксис тегов MODX Revolution и как его использовать. В этом уроке мы продолжим работу над нашим шаблоном и изучим концепцию чанков.

В данном уроке я использую шаблон 7-in-1 Business Success Site студии Themeforest. Если вы работаете над шаблоном, который вы скачали или сделали сами, то это даже лучше. Подход к построению сайта одинаков вне зависимости от используемого шаблона.

Давайте начнем. Наш сайт выглядит сейчас точно так же как и загруженный шаблон, потому что мы изменили все пути к css, js и image файлам. Давайте рассмотрим что же такое чанки

Чанки MODX Revolution

Чанки — это куски HTML кода или текста. Важно отметить что чанк — это чистый HTML код без всякой логики. Чанк не может содержать PHP код, он просто не будет выполнятся. PHP код необходимо вставлять в сниппет (разберёмся в этом в следующих уроках). Этот сниппет потом может быть вызван в чанке. В то же время чанк сам  по себе не может содержать всередине чистый PHP.

Для чего использовать чанки?

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

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

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

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

Видно, что этот шаблон разделён на три различные секции: шапка, подвал и средняя область (по такому принципу делятся почти все шаблоны). Соответственно можно поделить наш шаблон на эти три части. После разделения мы можем далее еще разделить эти секции.

Поэтому первой вещью, что мы сделаем — это создадим два новых чанка, которые назовём:  7in1-header и 7in1-footer.

Для создания чанка зайдем в менеджер и в дереве слева зайдем во вкладку Elements. Можно создать чанк двумя способами: правым кликом на Chunk и выбрать“New Chunk” или кликнуть на иконку Chunk.

В появившемся окне вводим необходимую информацию — имя чанка, описание и категория, если это необходимо.

Пока сохраним этот чанк, чуть позже вставим туда код.

Давайте продолжим и создадим чанк для подвала.

Сейчас если мы взглянем на дерево ресурсов, то увидим наши два новые чанка в разделе Чанки.

Итак, наши чанки готовы к использованию. Всё, что нужно сделать, это вырезать код из секции нашего шаблона и вставить в чанки. В моём случае, я открою шаблон 7in1 Home, который мы создали в предыдущем уроке и вырежу весь код между отрывающим и закрывающим тегами  <head>. Далее я вставлю этот код в средину чанка 7in1-header, который я только что создал и сохраню его.

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

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

Как вызывать чанк в MODX Revolution

Синтаксис чанков в MODX Revolution очень прост:

[[$chunkName]]

В нашем случае мы просто перейдём в наш шаблон и разместим там  вызов нашего чанка 7in1-header в области, где мы убрали код шапки. Таким образом верхняя часть кода нашего шаблона будет иметь следующий вид:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"> <head profile="http://gmpg.org/xfn/11"> [[$7in1-header]] </head> <body> <div> <div>

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

Отлично, теперь мы знаем что делать дальше и сделаем ту же процедуру с подвалом. В моём случае я выделю весь код от начала div подвала до закрывающего тега и размещу его в чанке 7in1-footer,  который мы создали. Затем размещу вызов это чанка в нужном месте. Теперь конец кода моего шаблона выглядит вот так:

</div> <!-- end bottom_widgets --> <div></div> <div> </div> [[$7in1-footer]] </body> </html> 

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

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

Я думаю разумно разместить код для этой секции в собственном чанке и далее вызывать его в наших шаблонах. Я назову этот чанк 7in1-bottomwidgets и таким образом нижняя часть кода моего шаблона приобретёт следующий вид:

</div> <!-- end front_content --> <div></div> <div> </div> [[$7in1-bottomwidgets]] <div> </div> [[$7in1-footer]] </body> </html>

Как вы видите, в зависимости от внешнего вида нашего шаблона, мы можем делить его дальше и дальше в отдельные чанки либо же не делить совсем.

Ну вот наш небольшой урок подошёл к концу.

Работа с чанками в MODx. Разработки структуры проекта.

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

Что же это такое?

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

Конструкция, которая вызывает чанк выглядит следующим образом:

{{Название_чанка}}

Обратите внимание, что я использую MODx Evolution. При использовании версии Revolution скобки должны быть – [Название_чанка].

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

Итого получается, что мы будем иметь 6 чанков, 5 из них представлены на схеме и один – это служебные теги и стили.

Теперь, когда мы разобрались со структурой, переходим в раздел «Элементы» — «Управление элементами» — Вкладка «Шаблоны», после чего переходим в редактирование шаблона – «Главная».

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

<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=0" />
<title>Retina — Free CSS template by ChocoTemplates.com</title>
<link rel="shortcut icon" type="image/x-icon" href="css/images/favicon.ico" />
<link rel="stylesheet" href="css/style.css" type="text/css" media="all" />
<link href=’http://fonts.googleapis.com/css?family=Raleway:400,900,800,700,600,500,300,200,100′ rel=’stylesheet’ type=’text/css’>

<script src="js/jquery-1.8.0.min.js" type="text/javascript"></script>
<!—[if lt IE 9]>
<script src="js/modernizr.custom.js"></script>
<![endif]—>
<script src="js/jquery.carouFredSel-5.5.0-packed.js" type="text/javascript"></script>
<script src="js/functions.js" type="text/javascript"></script>
</head>

Вырезаем его из этого шаблона, сохраняем шаблон и переходим по вкладку «Чанки». Тут нажимаем на кнопку новый чанк и вставляем в поле «Код чанка (HTML)» вырезанный кусок кода. После чего заполняем поля название и описание чанка. Жмем «Сохранить».

Теперь возвращаемся во вкладку «Шаблоны», переходим к редактированию «Главная» и на месте вырезанного кода вставляем конструкцию:

{{HEAD}}

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

По аналогии работаем и с другими частями кода. Ниже я вставлю те части кода которые нужно вставить в оставшиеся чанки: SLIDER, MAIN, BOTTOM, FOOTER. Вы можете скачать архив и тренироваться создать все оставшиеся чанки самостоятельно.

Скачать архив с кодом для чанков

Элементы контента — Создание сайта на MODX Revolution

Элементы контента (обычно называемые просто «элементы») в 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, используются как мини-шаблоны. Они обычно содержат текст и теги плейсхолдеров (подробнее о плейсхолдерах далее) и используются для форматирования выводимых данных. Вот простой пример, который может быть использован для отображения имени президента и вице-президента компании :

<h4> Руководство компании : </h4>

<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, это дело вашего выбора.

Modx шаблоны: разбиваем на части (чанки)

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

Modx шаблоны: разбиваем на чанки

У нас есть установленный шаблон html, где уже выводится контент modx. Вы же не забыли поставить сниппет [[*content]] где-нибудь в шаблоне? Если нет, прочтите еще раз наш прошлый урок — Шаблоны modx, как установить и настроить. Если все работает — идем дальше.

Давайте сначала условно разобьем наш шаблон на части. Обычно это 3-4 элемента: шапка, сайдбар, контент и футер (низ сайта).

В моем шаблоне, который выше, на главной это всего три части — хедер (шапка сайта), контент и футер. Вот как это примерно выглядит.

Разбивка шаблона на модх

Поэтому у нас будет две части, они же чанки — header и footer. Content — встроенный, он будет прямо в файле шаблона.

Инструкция как разбить шаблон на чанки

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

1. Создаем чанк header.

Туда копируем все что относится к верху: я копирую все до [[*content]]. Первое — нажимаем в панели Элементы-Чанки-Создать новый. Цифра 2 — копируем все что до контента в код.

Создаем чанк header

2. Создаем чанк footer.

Действия те же: Элементы-Чанки-Создать новый. Называем чанк footer (например), вставляем код из шаблона, сохраняем.

Создаем чанк footer для низа сайта

3. Вставляем чанки в код шаблона.

Теперь открываем файл шаблона (Элементы-Шаблоны, нажимаем на наш шаблон) . Дальше вместо участка код в шапке вставляем чанк header, а вместо низа сайта —  чанк footer. Обязательно вставляем [[*content]] — это самая важная часть, которая отвечает за вывод контента (всего того, что вы вводите в админке). Вот скриншот как это сделать.

Вставляем чанки в шаблон

Как вставить чанк в шаблон?

Вариант первый — прописать вручную. Но лучше вариант второй. Для вставки чанка в код шаблона достаточно нажать на чанк левой кнопкой мыши и, не отпуская ее, вести на «код шаблона». Может показаться обычное окошко с параметрами вставки — я просто жму ОК и ничего не настраиваю.

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

Зачем нужно разбивать шаблон на чанки?

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

Вот и все, если что не понятно — задавайте вопросы, буду рад 😉

как вызвать фрагмент в фрагментах в Modx

Вот еще одна краткая статья, в которой рассказывается, как вызвать фрагмент фрагментов в Modx Revolution.

Когда я работал над своим первым сайтом MODx, который будет использовать несколько фрагментов, и если у вас есть базовые знания Modx, то вы знаете, что кусок — это просто блок HTML-кода , поэтому мы не можем разместить какое-либо условие PHP выполнить чанк.

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

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

Прежде всего, создайте один фрагмент и поместите в него данные. Затем создайте один новый фрагмент, поместите условие ниже и вызовите свой фрагмент с помощью функции getChunk .

if ($ alias == ‘index’ || $ alias == ‘index.html ‘) {

echo $ chunk = $ modx-> getChunk (‘ ch-name ‘);

}

Если вы хотите использовать фрагмент с определенным условием непосредственно из шаблона, вы можете использовать [[$ chunkname]] , например, здесь я объяснил, как вы отображаете данные фрагмента только на домашней странице.

Давайте посмотрим на приведенный ниже код, вы можете поместить код ниже в файл шаблона для вызова блока только на домашней странице / стартовой странице сайта

$ Start_site = $ modx-> getOption (‘site_start’ );

[[Если?

& subject = [[* id]]

& operator = EQ

& operand = $ Start_site

& then = [[$ ch-name]]

]]

Дополнительная литература:

Аккордеонное меню с Modx
Установка часового пояса для установки Modx

Надеюсь, вам понравилась эта статья.Спасибо за чтение и не стесняйтесь делиться своими мыслями! Не забудьте подписаться на нас в Twitter или подписаться на нас, чтобы получать последние обновления.

apache - Как применить изменения шаблона chunk / modx?

Вношу изменения в файлы шаблонов, закачиваю по ftp (или через админку). В админке код чанка меняется, но сам сайт не меняется. Почему?

Пробовал:

  1. Очистить кеш через админку modx - «Управление - Очистить»
    кеш "
  2. Удалите папку с кешем, которая находится в "core \ cache"
    каталог
  3. Я попытался полностью удалить папку с шаблоном, чтобы проверить, есть ли там
    будут изменения.
  4. Измените файл .htaccess

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

Веб-сайт на MODX Revolution 2.6.5
В настройках сервера (хостинга) написано, что используются Apache 2. * и PHP 7.1

Вот файл .htaccess

  # MODX поддерживает дружественные URL-адреса через этот файл .htaccess. Вы должны обслуживать Интернет
# страницы через Apache с mod_rewrite, чтобы использовать эту функцию, и вы должны
# изменить имя файла с ht.(. *) $ index.php? q = $ 1 [L, QSA]

#php_flag register_globals Off

#php_flag zlib.output_compression On
#php_value zlib.output_compression_level 5

#ExpiresActive On
#ExpiresByType image / gif A2592000
#ExpiresByType image / jpeg A2592000
#ExpiresByType image / png A2592000
#BrowserMatch "MSIE" brokenvary = 1
#BrowserMatch "Mozilla / 4. [0-9] {2}" brokenvary = 1
#BrowserMatch "Опера"!
#SetEnvIf brokenvary 1 force-no-chang
  

Что делать?
Может кто встречал подобное?

Руководств Боба | Чанки MODx

Создание и использование блоков MODx

Чанки - это самый простой в использовании компонент MODx.Это просто «фрагменты» контента, которые вы хотите вставить на различные страницы своего сайта.

Давайте создадим простой блок «В разработке», который вы можете разместить на любых страницах, над которыми вы все еще работаете, но которые вы хотите отобразить на сайте. (Вы можете просто оставить их неопубликованными, но предположим, что вы хотите, чтобы люди знали, что над этими страницами что-то разрабатывается.)

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

MODx Evolution: {{UnderConstructionChunk}}

MODx Revolution: [[$ UnderConstructionChunk]]

Убедитесь, что опубликован? и Показать в меню. отмечены флажками, и сохранит документ.

Теперь щелкните вкладку Elements в верхней части экрана Manager и выберите Manage Elements .Затем щелкните вкладку Chunks в правой части экрана. Щелкните Новый фрагмент . Поместите UnderConstructionChunk в поле Chunk name. Помните, что имена блоков чувствительны к регистру , поэтому обязательно используйте тот же регистр, который вы использовали в теге блока на странице. Если вы неправильно укажете регистр или орфографию, на странице вообще ничего не появится вместо тега фрагмента.

Вы можете поместить описание в поле описания, но для этого фрагмента в этом, вероятно, нет необходимости, поскольку имя делает его довольно очевидным.Обратите внимание на поле категории. Это поле пусто, потому что у вас еще нет категорий. Если вы используете много разных фрагментов, неплохо, если бы они были отсортированы по категориям. Вы можете поместить что-то вроде «Standard Chunks» в поле New Category , чтобы увидеть эффект после сохранения. Вы заметите, что фрагмент отображается под этим заголовком в списке, а раскрывающийся список категорий теперь содержит эту категорию, поэтому вы можете назначить его другим фрагментам при их создании. Вы можете легко изменить категорию позже, когда будете редактировать чанк.

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

Если вы хотите использовать редактор Rich text для редактирования фрагмента, прокрутите вниз и выберите TinyMCE в раскрывающемся списке. В поле Chunk code введите текст «в стадии разработки».Выбрав TinyMCE в качестве редактора, вы можете использовать панель инструментов в нижней части окна для стилизации вашего фрагмента. Вы можете создать заголовок, выделить полужирный или курсивный текст, создать списки, вставить горизонтальные правила и т. Д. Просто выделите текст и щелкните соответствующий значок на панели инструментов. Вы также можете добавлять изображения и создавать ссылки на другие документы с помощью панели инструментов. Обратите внимание на значок маленькой метлы. Иногда невидимый посторонний HTML-код будет разбросан по вашему фрагменту после того, как вы выполнили кучу редактирования.Когда вы нажимаете на значок метлы , TinyMCE попытается это очистить.

Когда у вас есть нужный фрагмент, нажмите Сохранить . Вы только что закончили создавать свой первый кусок. Посмотрите на страницу, на которую вы поместили тег фрагмента, щелкнув ее правой кнопкой мыши в дереве ресурсов и выбрав Preview . Вы должны увидеть содержимое блока, в котором вы разместили тег. Если его там нет, вы, скорее всего, неправильно написали имя фрагмента, не указали фигурные скобки вокруг него (по две с каждой стороны) или поставили где-то дополнительное пространство.Если вы уверены, что это правильно, но по-прежнему не видите содержимое блока, попробуйте нажать Очистить кеш на вкладке Site и удерживая нажатой клавишу shift или control , одновременно нажимая на обновление вашего браузера. , чтобы убедиться, что вы видите новую версию страницы, а не кешированную.

Моя книга, MODX: Официальное руководство - цифровое издание теперь доступно здесь. Бумажная версия книги доступна на Amazon.

Если у вас есть книга и вы хотите загрузить код, вы можете найти его здесь.

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

MODX: Официальное руководство состоит из 772 страниц и выходит далеко за рамки этого веб-сайта в объяснении начальных и продвинутых методов MODX. Он включает подробную информацию о:

  • Установка MODX
  • Как работает MODX
  • Работа с ресурсами и элементами MODX
  • Использование Git с MODX
  • Использование общих дополнительных компонентов MODX, таких как SPForm, Login, getResources и FormIt
  • Разрешения безопасности MODX
  • Настройка MODX Manager
  • Использование настройки формы
  • Создание транспортных пакетов
  • Методы объектов MODX и xPDO
  • Системные события MODX
  • Использование PHP с MODX

Для получения дополнительной информации о книге перейдите сюда.

Спасибо, что посетили BobsGuides.com

Чанк

Show Member - MODX

ShowMemberChunk - это сверхлегкий фрагмент кода MODX, который позволяет настраивать контент в зависимости от того, является ли кто-то членом группы веб-сайтов. Он разработан таким образом, чтобы его было легко использовать и внедрять, и он может быть настроен и запущен за считанные минуты. Работает в MODX Revolution версии 2.2.7 и выше. Для более ранних версий он не тестировался.

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

Загрузите и установите пакет через диспетчер пакетов. СКАЧАТЬ ЗДЕСЬ »

Требуются блоки

Там, где вы хотите показывать альтернативный контент для участников, вошедших на сайт, создайте два блока: один для участников и один для нечленов. Вы можете оставить поле «out» пустым, если не хотите показывать что-либо для лиц, не являющихся участниками.

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

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

В вызове сниппета вы должны указать сниппету, какие группы участников следует искать. Например, если у вас есть сайт, на котором есть члены Premium и Basic, и вы хотите показать фрагмент всем участникам каждой группы, используйте список, разделенный запятыми, для групп участников, как в примере ниже:

  [[! ShowChunk? & group = `Администратор, Активисты, Премиум-участники`  
  & in_chunk = `privateSiteNav` & out_chunk =` membersPromote`]]  

& group показывает эти группы участников для сайта - в приведенном выше примере перечислены администраторы, участники, активисты и премиум-члены.

& in_chunk показывает блок privateSiteNav, если они вошли в систему как один из участников, указанных выше.

& out_chunk показывает блок «membersPromote», если они не вошли на сайт или если они не являются членами одной из перечисленных групп.

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

Ограничения

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

Загрузить пакет

Если вы выбрали загрузку отсюда, вы должны вручную загрузить на свой сервер в папке core .. packages. Примечание: если вы используете Mac / Safari, зайдите в настройки и отключите «Открывать« безопасные »файлы после загрузки» на вкладке «Общие».Скачать »

Парсер / pdoTools / Компоненты / docs.modx.pro

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

В чанках и шаблонах MODX вы можете использовать различные типы заполнителей:

  • [[+ tag]] - обычный заполнитель, который будет заменен значением из-за обработки фрагмента
  • [[++ настройка]] - системные настройки из modX :: config
  • [[* field]] - поле текущего ресурса в modX :: resource property
  • [[% lexicon]] - запись из словаря для отображения текстовых строк из дополнительных словарей
  • [[~ номер]] - ссылки на ресурсы
  • [[snippet]] - кешированный фрагмент
  • [[! Snippet]] - некэшированный фрагмент
  • [[$ chunk]] - фрагмент

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

  • [[! Uncached_snippet]]
  • [[-! Disabled_snippet]]

А как именно парсер MODX обрабатывает эти теги?

modParser собирает все теги из чанка с регулярными выражениями, создает из них объекты modTag и вызывает из них метод process () . Каждый тег в вашем чанке - это один экземпляр объекта modTag для modParser.

Если вы используете фильтры вывода для тегов - это еще один объект xPDO.Если вы используете фрагмент MODX в качестве выходного фильтра - он будет обрабатываться каждый раз, когда modParser улавливает его в вашем фрагменте.

Если вы используете 3 сниппета в чанке и получаете 10 записей из базы данных - вы получите 30 вызовов сниппета.

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

Если на текущей странице нет значения для некэшированного заполнителя - modParser попытается проанализировать его до 10 раз (по умолчанию).

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

pdoParser

Это третий основной класс pdoTools, который пытается самостоятельно анализировать все простые теги. Простые теги: [[+ tag]] , [[* field]] , [[% lexion]] , [[~ number]] и [[~ [[+ id]]] ]] .

Они должны вызываться без каких-либо выходных фильтров, поэтому pdoTools может просто заменить их значениями без объектов modTag - с помощью простого str_replace () .

Если после pdoTools остались какие-либо теги - он вызовет modParser для их анализа. Об этом вы можете прочитать в предыдущей статье.

Итак, по умолчанию pdoParser - это простой препроцессор перед modParser. Вот почему куски в pdoTools всегда немного (или намного) быстрее.

Феном

pdoTools 2.0 предлагает встроенную поддержку шаблонизатора Fenom. Хорошие новости для всех - в репозитории на GitHub есть документация на английском языке. Почему Феном? Потому что он легкий, простой, быстрый, гибкий и русский.

Феном работает совершенно иначе. Он компилирует фрагмент в код PHP и кэширует его в памяти. Затем pdoTools передает массив значений в этот PHP-код, и он выполняется.

Нет рекурсивных итераций. Только один проход для одного фрагмента за раз. Если у вас нет значения для placeholder - он будет просто пустым, и никто не заменит его позже. На мой взгляд, это гораздо более справедливая логика.

Синтаксис

Fenom похож на Smarty, и вы можете увидеть его в официальной документации, я только покажу вам, как вы можете использовать его с MODX:

  • {$ placeholder} из {$ _pls ['placeholder']} - для заполнителей с точками или тире (телевизоры).
  • {$ _modx-> resource.field} или {$ _modx-> resource ['field']} - для массива с текущим ресурсом (не объектом!).
  • {$ _modx-> config.setting} или {$ _modx-> config ['setting']} - для системных настроек из массива modX :: config .
  • {$ _modx-> user.proprety} - получить значение из смешанного массива свойств modUser и modUserProfile.
  • {$ _modx-> context.key} - получить значение из массива с текущими значениями modContext.
  • {$ _modx-> lexicon ('key')} и {$ _modx-> lexicon-> load ('dict')} - строки лексики и возможность загрузки словарей
  • {$ _modx-> makeUrl (number)} - для создания url-адресов
  • {$ _modx-> runSnippet ('snippetName', ['key' => 'value'])} - для сниппетов
  • {$ _modx-> getChunk ('chunkName', ['key' => 'value'])} - для чанков

Как видите - вы получаете доступ к безопасной переменной {$ _modx} .Это , а не объект modX , это еще один объект из pdoTools только с безопасными функциями.
По умолчанию ваш менеджер не будет иметь доступа к объекту modX из чанков Fenom. Вы можете увидеть исходники {$ _modx} здесь.

Вторая служебная переменная - {$ _pls} . Требовалось получить доступ к заполнителям с точками или тире. Переменные Fenom, скомпилированные для PHP и PHP, не позволяют использовать в них точки или тире. Таким образом, вы можете использовать

  {$ _pls ['my.tv ']} для заполнителей с точками или тире
или
{$ pagetitle} для заполнителей без него  
Заполнение заполнителей

Fenom работает за один проход, т.е. в отличие от парсера MODX не рекурсивный

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

Например: вам нужно получить значение заполнителя {$ mse2_query} (поисковый запрос) в форме, но форма поиска отображается над результатами.Для этого вы должны выполнить сниппет mSearch3 и передать результаты заполнителю, например, searchResults :

  {'! PdoPage' | фрагмент: [
    'element' => 'mSearch3',
    'toPlaceholder' => 'searchResults'
]}  

Затем вызовите фрагмент формы поиска, где парсер Fenom подставит значение заполнителя {$ mse2_query} :

  {'! MSearchForm' | сниппет}  

Затем отобразите результаты сниппета mSearch3:

  {'searchResults' | заполнители}  

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

  {var $ date = 'dateAgo' | фрагмент: ['input' => '2016-09-10 12:55:35']}

...

Ваша дата: {$ date}.  

Очень похоже на логику обычного скрипта.

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

Для Fenom есть несколько важных системных настроек:

  • pdotools_fenom_default - использовать синтаксис Fenom по частям. По умолчанию он включен.
  • pdotools_fenom_modx - включает очень опасную переменную {$ modx} с полным доступом к объекту modX . По умолчанию отключено и настоятельно рекомендуется не включать.
  • pdotools_fenom_php - включает чистые функции PHP в кусках. По умолчанию отключено и настоятельно рекомендуется не включать.
  • pdotools_fenom_modifiers - список сниппетов, которые будут доступны в качестве фильтров вывода. Также можно указать во время выполнения сниппета.
  • pdotools_fenom_parser - включает обработку тегов Fenom на всем сайте. Не рекомендуется новичкам.

Fenom работает с MODX в двух режимах: только по частям и по всему сайту.Первый режим включен и рекомендуется по умолчанию.

Вы можете использовать синтаксис Fenom вместе с MODX:

  {если $ _modx-> isAuthenticated ($ _ modx-> context.key)}
    Здравствуйте, {$ _modx-> user.fullname}!
{еще}
    [[Вход? Параметры ...]]
{/ if}  

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

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

Fenom не имеет недостатков в режиме чанков. Это предпочтительный режим работы.

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

  1. Он не будет кэшироваться как теги MODX. Каждое условие Fenom будет обрабатываться при каждой загрузке страницы. И это хорошо по многим причинам, когда ваш сайт работает быстро.
  2. тегов MODX на странице всегда будут обрабатываться при первом обращении. Вы не сможете разделить свою логику по условиям Fenom с тегами MODX. Fenom будет запущен pdoParser в конце обработки страницы, когда MODX начнет обрабатывать все оставшиеся некэшированные заполнители.
  3. Fenom остановит обработку страницы при любом "неправильном" условии {tag} .Любой JSON или javascript на странице может нарушить обработку. В этом случае вам нужно отделить первый символ от скобки пробелом.
      <сценарий>
    var y = {"ключ": "значение"}; // вызовет ошибку
    var x = {"key": "value"} // это нормально
      

    Также вы можете использовать тег {ignore} :

      <сценарий>
    {игнорировать}
    var y = {"ключ": "значение"}; // теперь все в порядке
    {/ игнорировать}
      

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

А как насчет скорости?

Это моя любимая деталь. А теперь давайте проведем несколько тестов.

Тест MODX:

  [[! PdoResources?
    & родители = `0`
    & tpl = `@ INLINE 

{{+ id}}. {{+ longtitle: default = `{{+ pagetitle}}`}} {{+ createdon: dateago}}

` & limit = `1000` & sortby = `id` & sortdir = `asc` & showLog = `1` ]]

И Феном. Просто обратите внимание, что нам нужно указать фрагмент dateAgo как модификатор fenom, чтобы использовать его в чанке:

  [[! PdoResources?
    & fenomModifiers = `dateAgo`
    & родители = `0`
    & tpl = `@ INLINE 

{$ id}.{$ longtitle?: $ pagetitle} {$ createdon | dateago}

` & limit = `1000` & sortby = `id` & sortdir = `asc` & showLog = `1` ]]

2.7 секунды против 1. Fenom почти в 3 раза быстрее в тех же условиях. Думаю, все комментарии будут излишними.

Мы также можем провести еще один тест с чанками без модификаторов вывода. Все то же самое, но теперь чанков:

  & tpl = `@ INLINE 

{{+ id}}. {{+ pagetitle}} {{+ createdon}} `

  & tpl = `@ INLINE 

{$ id}.{$ pagetitle} {$ createdon}

`

И мы видим, что Fenom снова стал быстрее, даже когда pdoTools всего str_replace () заполнителей.

Теги FastField

Думаю, многие знают об интересном компоненте fastField , который добавляет в систему дополнительные заполнители обработки, например [[# 15.pagetitle]] .
Этот функционал уже добавлен в pdoParser с разрешения автора и даже немного расширен.

Все теги fastField начинаются с символа # и содержат либо идентификатор ресурса, либо имя глобального массива.

Общий полевой ресурс:

  [[# 15.pagetitle]]
[[# 20.content]]  

Параметры ТВ-ресурса:

  [[дата # 15]]
[[# 20.some_tv]]  

Области товаров miniShop2:

  [[# 21.price]]
[[# 22.article]]  

Массивов ресурсов и товаров:

  [[# 12.properties.somefield]]
[[# 15.размер.1]]  

Суперглобальные массивы:

  [[# POST.key]]
[[# SESSION.another_key]]
[[# GET.key3]]
[[# REQUEST.key]]
[[# SERVER.key]]
[[# FILES.key]]
[[# COOKIE.some_key]]  

В массивах можно указывать любые поля:

  [[# 15.properties.key1.key2]]  

Если вы не знаете, какие значения в массиве - просто укажите его, и он будет напечатан целиком:

  [[#GET]]
[[# 15.цвета]]
[[# 12.properties]]  

Теги fastField можно комбинировать с тегами MODX:

  [[# [[++ site_start]].Заголовок страницы]]
    [[# [[++ site_start]]]]

Сегодня вам не нужно использовать теги FastField , потому что Fenom полностью их заменяет:

  {var $ resource = $ _modx-> getResource (15)}
{если $ resource?}
    {$ resource.pagetitle}
{/ if}  

Вы даже можете получать и отображать некоторые ресурсы:

  {var $ resources = $ _modx-> getResources (
    ['опубликовано' => 1, 'удалено' => 0],
    ['sortby' => 'id', 'sortdir' => 'ASC', 'limit' => 50]
)}
{foreach $ resources as $ resource}
    {$ _modx-> getChunk ('@ INLINE 

{$ id} {$ pagetitle}

', $ resource)} {/ foreach}

И, конечно же, есть глобальные переменные:

  {$.сессия ['your_key']}
{$ .get ['query']} или {$ .get.query}
{$ .server ['REQUEST_URI']}  

Добавление дополнительных функций на ваш сайт MODx

Добавление фрагментов и управление ими

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

Чтобы добавить новый блок на ваш сайт MODx, перейдите на страницу «Ресурсы» -> «Управление ресурсами» и выберите вкладку «Чанки».Теперь щелкните ссылку New chunk.

На следующей странице введите имя нового блока в поле «Имя блока». Вы можете ввести краткое описание, которое напомнит вам, что делает этот фрагмент кода.

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

Добавление и управление сниппетами

Фрагменты полезны для добавления новых функций на ваш сайт.Вы можете использовать их для создания меню, определения, какие пользователи вошли в систему, или для любых других вещей, которые возможны с помощью MODx API. После того, как вы установили фрагмент, вы можете использовать его в своих документах в следующем формате - [[Snippet Name]].

Чтобы установить новый сниппет на ваш сайт MODx, просто перейдите на страницу "Ресурсы" -> "Управление ресурсами" и выберите вкладку "Фрагменты". Теперь щелкните ссылку New snippet.

Теперь вам нужно ввести имя сниппета и его краткое описание.Затем вам нужно ввести фактический код PHP, который будет выполнять фрагмент. После ввода кода PHP нажмите кнопку «Сохранить», чтобы сохранить и активировать фрагмент.

Добавление подключаемых модулей и управление ими

Плагины

- это фрагменты кода, которые имеют доступ к MODx API. Они связаны с конкретными системными событиями. Например, когда загружается страница MODx, в определенных точках процесса синтаксического анализа страницы происходит несколько событий. К этим событиям могут быть прикреплены плагины для выполнения конкретной задачи.Плагины не ограничиваются интерфейсом вашего веб-сайта. Вы также можете использовать их для добавления функциональности в ваш MODx Manager.

Чтобы добавить новый плагин, войдите в свой MODx Manager, перейдите на страницу «Ресурсы» -> «Управление ресурсами» и выберите вкладку «Плагины». Затем нажмите ссылку «Новый плагин».

На этой странице вы должны ввести имя плагина и фактический PHP-код для него.

По завершении нажмите кнопку «Сохранить» вверху страницы.

Наконец, вы должны указать события, которые вы хотите, чтобы этот плагин слушал.Для этого щелкните вкладку «Системные события» и установите флажки рядом с нужными событиями. Когда все будет готово, нажмите кнопку «Сохранить» внизу страницы плагина, чтобы сохранить и активировать его.

Добавление модулей и управление ими

Чтобы добавить новый модуль в MODx, сначала перейдите на страницу Модули -> Управление модулями. Затем щелкните ссылку «Новый модуль». Затем вам нужно установить заголовок и описание вашего модуля и его кода. Вы можете сделать это на вкладке «Общие» на этой странице.

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

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

Как включить ссылки, удобные для поисковых систем (SEF) для вашего веб-сайта

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

После того, как вы включите ссылки SEF, вы сможете изменить для них несколько параметров:

  • Префикс для дружественных URL-адресов - в этом поле вы можете ввести строку, которая будет добавлена ​​в начало вашей ссылки. Например, установка префикса «документ» сделает «недружественную» ссылку /index.php?id=2 похожей на / document2.
  • Суффикс для удобных URL-адресов - здесь вы можете ввести строку, которая будет прикреплена в конце ваших ссылок.Если мы воспользуемся приведенным выше примером, если вы установите суффикс «.html», ваша понятная ссылка будет выглядеть так: /document2.html.
  • Использовать понятные псевдонимы - если вы установите для этого параметра значение «Да», установка определенного псевдонима для любого из ваших документов перезапишет настройки для дружественных URL-адресов. Это означает, что если вы установите для документа псевдоним, например, «изображения», ссылка на него будет / images, несмотря на то, что вы установили префикс и суффикс для удобных URL-адресов. С другой стороны, если вы отключите эту опцию, настройки на этой странице будут применены, даже если у вас установлены псевдонимы для ваших документов.
  • Использовать удобный путь псевдонима - включение этого параметра отобразит ваши документы внутри контейнеров в удобном для поиска виде. Например, если у вас есть контейнер с псевдонимом «main-manu» и в нем документ с псевдонимом «подменю», ссылка на второй документ будет / main-menu / sub-menu.
  • Разрешить дублирование псевдонимов - этот параметр позволит вам установить разные документы с одинаковыми псевдонимами. Вы должны сначала включить опцию Use friendly alias path, если вы хотите использовать эту функцию, чтобы избежать битых ссылок.
  • Автоматически генерировать псевдоним - если вы включите эту опцию, псевдоним для ваших документов будет генерироваться автоматически на основе заголовка, который вы установили для своего документа.

MODX: полная свобода творчества | Депо веб-дизайнеров Депо веб-дизайнера »Архив блога

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

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

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

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

Шаблоны

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

Шаблон MODX - это не что иное, как страница HTML-кода (и, возможно, тегов MODX и JavaScript). Вы можете выбрать страницу на сайте, отличном от CMS, и вставить HTML-код для этой страницы в шаблон MODX, настроить URL-адреса для любых файлов CSS, а затем указать MODX использовать этот шаблон при отображении определенного документа на сайте.Это займет менее 5 минут, и при просмотре страницы MODX она будет выглядеть точно так же, как и на исходном сайте. Единственное ограничение заключается в том, что на странице не может быть PHP-кода (подробнее об этом позже).

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

Теги

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

Базовая работа движка MODX невероятно проста. Когда веб-страница запрашивается браузером, MODX проверяет, какой шаблон связан с этой страницей. Он получает шаблон, заменяет все теги MODX в шаблоне и отправляет его браузеру. Вот и все.

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

Примечание. Примеры здесь приведены для MODX Revolution. MODX Evolution использует немного другой стиль тегов, но концепции те же.

В MODX «кусок» - это просто кусок HTML-кода, который вы хотите использовать на нескольких страницах. Это может быть верхний колонтитул, нижний колонтитул, боковая панель, меню или что-то еще.Допустим, это нижний колонтитул, который вы хотите показывать на каждой странице (или на некотором ее подмножестве). Вы создаете блок в Менеджере MODX, вводите HTML-код для нижнего колонтитула, присваиваете ему имя (FooterChunk) и затем сохраняете его. Теперь в вашем шаблоне вы просто помещаете следующий тег там, где вы хотите, чтобы этот нижний колонтитул отображался:

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

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

Имеются поля ввода текста для заголовка, длинного заголовка, описания, сводки, псевдонима (для использования в URL-адресе), содержимого (основного содержимого страницы) и заголовка меню (автоматически используется в меню).Есть флажки, указывающие, опубликован ли документ и следует ли его скрыть из меню.

Есть также поля даты, чтобы указать даты будущей публикации или отказа от публикации, а также дату, когда документ был опубликован.

Есть и другие поля, но здесь мы снова видим гибкость MODX - все поля , кроме Заголовка и Псевдонима, являются необязательными! У каждой страницы должен быть заголовок и что-то, что можно вставить в URL-адрес страницы, но вам решать, использовать ли другие поля или нет.Что делать в других областях, также во многом зависит от вас. Вы почти наверняка захотите поместить основное содержание страницы в поле содержания, но это не обязательно. Если вы хотите использовать поле «Длинный заголовок» для хранения астрологического знака пользователя, указанного на странице, продолжайте.

Чтобы вернуться к тегам «содержимого», они представляют поля формы. Когда MODX видит тег содержимого, он заменяет его значением названного поля формы. В том месте, где вы хотите, чтобы отображалось основное содержимое страницы, например, вы помещаете этот тег в шаблон:

Там, где вы хотите, чтобы отображалось длинное название страницы (если оно вам вообще нужно), вы помещаете этот тег:

Для основного заголовка используйте этот тег:

Если вы решили, что хотите, чтобы заголовок или длинный заголовок отображался где-то еще, вы просто перемещаете теги в своем шаблоне.Если вы не хотите, чтобы длинный заголовок отображался, удалите тег из шаблона. Если вы хотите, чтобы все, что находится в длинном заголовке, отображалось в нижнем колонтитуле страницы, вы даже можете переместить его тег в FooterChunk, о котором мы упоминали ранее. Чтобы использовать маловероятный пример, вы даже можете поместить URL-адрес пути к файлу CSS, который вы хотите использовать для страницы, в поле Длинный заголовок и поместить этот тег в раздел заголовка вашего шаблона:

    

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

Фрагменты

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

Если вы не программист PHP, вы все равно будете использовать теги сниппетов, потому что есть дополнительные компоненты MODX (обычно называемые «дополнениями» в MODX), которые сделают большую часть тяжелой работы на вашем сайте.

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

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

Вы также можете использовать Wayfinder для отображения меню только из части вашего сайта, и у вас может быть более одного меню Wayfinder на одной странице.Помните флажки «Скрыть из меню» и «Опубликовано», о которых мы упоминали ранее? Wayfinder не будет показывать неопубликованные или скрытые страницы, пока вы не укажете это.

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

Как Wayfinder, так и getResources используют блоки для своего форматирования (этот вид блоков называется блоком Tpl в MODX) с кодом HTML и тегами MODX для отображения различных элементов. Если вы хотите изменить форматирование или содержимое их вывода, вы можете просто отредактировать фрагменты Tpl (или создать свои собственные).

Ведение блога с MODX

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

В заключение

Эта статья почти не касалась MODX.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *