Правильный ли подход к натягиванию шаблона на modx?

Рейтинг: 0Ответов: 1Опубликовано: 02.02.2015

Здравствуйте. Я начал знакомиться с modx и вообще с CMS совсем недавно.

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

alt text

Итак:
1) я создаю чанки для: шапки, хлебных крошек, футера. Все остальной контент принадлежит странице и будет браться из ее [­[*content]] все верно?
Шаблон:

[­[ $header ]]
[­[ $top]]
[­[ $cambs ]] ( крошки )
[­[ page ]] ( == [­[*content]] )
[­[ $footer ]]
[­[ $scripts ]]

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

Смотря на макет, я вижу, что тут выведено 6 услуг - шесть услуг на странице услуги... ВОПРОС: правильно ли я поступлю, если каждую услугу сделаю как дочерний ресурс, страницы Услуги, тогда в [­[ content ]] я напишу вызов снипета pdoResources, который будет выводить все дочерние элементы (которые являются непостредственно услугами) в главный контент страницы услуги, а самим же дочерним элементам (услугам) я задам TV (картинка - название - описание) - все эти действия будут верны?

Аналогично с блоком материалы (новости), там так же буду выводить дочерние ресурсы (=материалы) с помощью pdoResources, только уже от страницы, например, новости (parentID просто другой укажу).

И последний блок - заделаю в чанк, который просто будет выводить текст (text_usluga)

ИТОГО ИМЕЕМ в коде РЕСУРСА страницы "услуги"

<h>Услуги компании ...</h>
pdoResources(шаблон_услуг, сортировка, начало)
pdoResources(шаблон_материалов, сортировка, начало)
[­[ $text_usluga]]

И вот это буду передавать в шаблон (который описал выше). Это ведь будет работать? И будет правильно?

Дерево ресурсов примерно такое:

- Главная
-Услуги
---Услуга1
---Услуга2
---Услуга3
-Новости
---Новость1
---Новость2
---Новость3
-Контакты

Ответы

▲ 2Принят

Двигаемся по шаблону. Хэдер, футер, крошки - тут понятно.

1) Блок "Услуги компании Русгенко":
выводите сниппетом getResource документы из ресурса-контейнера "Услуги"(дочерние, т.е. &parents=[[*id]]) с лимитом 6 штук, с нужным вам порядком сортировки согласно шаблону &tpl разметки каждой отдельной услуги в блоке.

2) Блок "Материалы": см. п1, только &parents = id страницы-контейнера ресурсов-новостей + соотв &tpl

3) Блок "Услуги компании": это просто содержимое контентной части стр "Услуги", т.е. [[*content]]

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

[­[ $header ]]
[­[ $top]] 
[­[ $cambs ]]

[[$services]]-в чанке вызов getResources 
[[$news]]-в чанке вызов getResources 
[[*content]]

[­[ $footer ]]
[­[ $scripts ]]

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

UPD То, что вы пытаетесь объяснить, понять трудновато, но замечу: никогда не используйте вызовов сниппетов, чанков и т.п. в контенте, т.е. вот здесь http://prntscr.com/605llo