ModX Revolution страница новостей. Условия в чанках modx revo


Работа с чанками MODX Revolution

Приветствую вас уважаемые читатели блога web-revenue.ru.

В предыдущей статье мы приступили к рассмотрению работы с шаблонами в MODx Revolution.

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

Внимание! Если вы что то не поймете в этой статье, то милости прошу к прочтению более новой и актуальной статьи: MODX чанки.

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

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

Чанки в MODX Revolution

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

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

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

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

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

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

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

Мы сделаем  шесть чанков, которые назовём:  header, menu, content, left-bar, right-bar и footer.

Схема разбивки страницы на чанки в MODx Revolution.jpg

Для того чтобы создать чанк необходимо зайти в менеджер MODx Revolution и слева в дереве зайдем во вкладку Элементы. Чанк можно создать двумя способами:

Первый способ – Щёлкаем правой кнопкой мыши на Чанки и выбираем “Новый чанк”

Второй способ —  кликаем на иконку «Новый чанк«:

создание чанка в MODx Revolution

 

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

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

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

Вырезаем из шаблона код (который вставляем в чанк) и на месте данного кода пропишем вызов нашего чанка. Пример: Создадим наш первый чанк header. Для этого откроем ранее созданный шаблон для редактирования:

редактирование-шаблона-MODx-Revolution

Далее вырезаем из него весь код блока heder:

вырезаем код блока header

За место вырезанного кода прописываем вызов чанка ([[$header]]):

прописываем вызов чанка header

 

Далее в левом меню выбираем «Элементы», щелкаем правой кнопкой мыши на против элемента «Чанки» и выбираем «Быстро создать чанк»:

быстрое создание чанка header

Перед вами откроется окошко «Быстро создать чанк», где вам необходимо:

1. Прописать название чанка, в нашем случае это header.

2. Указать категорию (такая же как у созданного на предыдущих уроках шаблоне)

3. В поле код, вставить ранее вырезанный из шаблона код

4. Сохранить чанк.

быстрое создание чанка

Далее точно так же, вырезаем весь код menu:

вырезаем код для чанка меню

на месте данного кода прописываем вызов чанка menu:

прописываем вызов чанка menu

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

быстрое создание чанка menu

После этого точно также создаем оставшиеся чанки (content, left-bar, right-bar и footer), после проделанной работы, у вас должно получится 6 чанков, а код шаблона Home должен принять следующий вид:

Код шаблона и чанки

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

Ну вот наша небольшая статья подошла к концу, надеюсь я довольно доходчиво обьяснил, что к чему).

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

Если у вас появились какие-либо вопросы или замечания — не стесняйтесь комментировать их.

web-revenue.ru

php - ModX Revolution страница новостей

Добрый день. Столкнулся с проблемой в modx. Нашел много документации на Evo, а вот на Revo как-то не получилось. Либо совсем ничего не сказано, либо упомянуто вскользь и важные детали упущены. В связи с этим назрел такой вопрос:

Создал ресурс под названием статьи, применил стандартный шаблон и в контенте применил такой код для отображения самого контента (простите за тавтологию). В месте, где должны отображаться сами статейки прикрепил чанк [[$news]].

В результате ссылка a[href="[[~[[*id]]]]"] ссылается на саму страницу статей, т.е. на основной ресурс "Статьи". (В принципе то и логично). Ну и соответственно [[*pagetitle]] и [[*introtext]] тоже берут контекст из основного ресурса "Статьи".

То, что должно отображаться в самих статьях - это созданные вложенные документы в ресурс статьи:

Изначально я пытался сделать ч/з сниппет articles:

Но беда в том, что modx функция getDocumentChildren() на Revo не работает, нашел аналог, как писали в интернете, getChildIds(). Но она ничего не возвращает. (Точнее я пытался вызвать результат работы ф-ии ч-з echo и цикл foreach(), но он мне вывел просто 3 числа: 14, 15, 16; вместо, как мне казалось, *id, *pagetitle, *introtext).

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

Ресурс-статьи:

<div> <div><center> <h2>НОВОСТИ САЙТА</h2> <div> </div> </center> <div data-columns=""> [[$news]] </div> </div> </div>

Чанк:

<div> <a href="[[~[[*id]]]]"> <div> <img src="http://placehold.it/1280x720" class = "img-responsive" alt=\"\"> <div class=\"caption\"> <h4>[[*pagetitle]]</h4> <span>[[*publishedon:date='%d/%b/%y']]</span> <p>[[*introtext]]</p> </div> </div> </a> </div>

Сниппет articles:

<?php $results = $modx->getChildIds( $id = 13, $active = 1, $deleted = 0, 'id, pagetitle, pu

ru.stackoverflow.com

MODX чанки

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

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

Чанки MODX

MODX чанки – чистый HTML-код, и любые php-скрипты выполняться в них не будут. Чанки могут иметь в своём коде вложенные чанки, а также сниппеты. Чанк служит, своего рода, контейнером для куска HTML кода. К примеру, чанк с формой обратной связи или сайдбаром или подвалом или шапкой сайта.

Разбиваем шаблон на чанки

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

Вообще в первую очередь я обычно создаю чанки с чем то общим во всех страницах, например в моем шаблоне на всех страницах одна и та же секция head, шапка (или модифицированное меню, в общем шапка+меню) и подвал. Давайте для них создадим пока что пустые чанки с названиями head,  header (шапка) и footer (подвал).

Создание MODX чанков

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

Первый способ —  кликаем в верхней панельке на иконку «Новый чанк»

Второй способ —  кликаем на плюсик на против пункта на Чанки.

Третий способ — кликаем правой кнопкой мыши по пункту Чанки и выбираем Быстро создать чанк.

создание чанка в MODx Revolution

 

 

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

Вызываются чанки, очень легко. Они подключаются к любому ресурсу или элементу путём вставки кода [[$имя_чанка]] – это кэшируемый вызов чанка в любом месте. Если вставить чанк вот так [[!$имя_чанка]], то данный чанк не будет кэшироваться на сервере, а каждый раз будет подгружаться из базы парсером MODX. Здесь надо заметить, что любые служебные объявления в любом месте кода в MODX заключаются в двойные квадратные скобки [[что-то]].

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

Открываем наш шаблон и вырезаем из него секцию head,

вырезаем из шаблона секцию head

 

Быстро создаем чанк head (для быстрого редактирования — щелкаем по названию чанка правой кнопкой мыши и выбираем быстро создать чанк), вставляем в него вырезанный код и сохраняем, а в шаблоне в месте вырезанного кода прописываем вызов чанка head — [[$head]].

Быстро создаем чанк MODX и вставляем в него код и выводим чанк в шаблоне

 

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

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

Быстро создаем чанк с меню и вставляем в него код и выводим чанк в шаблоне

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

деление шаблона на чанки

В конечном итоге получилось следующее:

шаблон разбитый на чанки

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

По ходу работы количество чанков еще увеличиться. Если вы создаете ресурс где внешний вид не меняется, а меняется только контент на страницах, то скорее всего вы обойдетесь 1-м шаблоном и парочкой чанков.

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

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

web-revenue.ru


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