Quote from: esche at Sep 17, 2010, 07:48 PM
Так если выводится на каждой странице отдельный совет, чтобы он не повторялся, не лучше ли эти самые советы поместить в TV (без создания отдельных документов)?
Или, как вариант - сделать отдельно специальную таблицу "советы" и к каждой странице привязать свой совет. Собственным сниппетом (один запрос к базе) выводить нужную страницу.
Согласен, реализуется не сложно. + Если в сниппете запросы сделать с использованием API то и вызов его можно будет закешировать.Это всяко лучше чем создавать каждому совету отдельный документ.
Другое дело если советов в базе больше чем страниц с контентом..
porokh, если уж ействительно реализация нужна именно в связке документов+Ditto, то я посоветовал бы сделать следующее:
Для каждой страницы создать TV параметр - "ID совета [*id_soveta*]" и вставлять туда вручную ID документа с тем советом котрый хотелось бы видеть в боковой панели.
Соответственно поправить код вызова Ditto:
[[Ditto? &tpl=`RIGHT` &documents = `[*id_soveta*]` ]]
Ну и в довершение, для того чтобы ваш совет корректно отображался на сайте, Необходимо в чанке RIGHT сформировать корректный шаблон вывода.
В таком духе:
<h2>Важный совет</h2>
<strong>[+pagetitle+]</strong>
[+content+]
Дополнительно по плейсхолдерам можно почитать тут:
http://www.modx-cms.ru/dokumentatsiya/razrabotka/snippety/ditto/pleysholdery-ditto.html
Конечно TV параметр можно организовать удобнее с пом. запроса к базе и построением выпадающего меню советов, но это уже сложнее и не совет новичку