Вероятно, одной из самых распространенных задач при конструировании сайта является вывод на страницу новостных, информационных статей, каталога продукции и т. д., одним словом вывод документов на страницу. Самым мощным инструментом MODx для этого можно считать сниппет Ditto, разработанный Марком Капланом (Mark Kaplan). Среди его основных функций - разбивка на страницы, вывод краткой версии статьи со ссылкой «далее», генерирование архива, сортировка по дате, заголовку и т. д.
Итак, рассмотрим пример вывода новостных статей на страницу сайта. Пусть нам нужно выводить по 5 статей на странице, без архива, в качестве краткой версии статьи использовать поле "Аннотация" (introtext) и как ссылку на полную версию статьи использовать «>>».
- Создаем документ и называем его «Новости»
- Создаем 2-3 новостных статьи как дочерние документы. Напомню, что для создания дочернего документа правой кнопкой нажимаем на документе «Новости» и выбираем «Дочерний док.» (“Create document here”).
- Скачиваем сниппет Ditto и устанавливаем его в нашу систему. Для этого в панели управления ресурсами создаем новый сниппет, называем его “Ditto” и в тело вставляем содержимое файла snippet.ditto.1.0.1.php. Также, в директории assets/snippets/ditto у нас должен находиться файл ditto.class.inc.php.
- Создаем чанк с именем, например ”ditto_news” который будет содержать html-шаблон вывода статьи. Пример шаблона (используется на этом сайте):
<h2>
<a href="[(base_url)][~[+id+]~]">
[+pagetitle+]
</a>
- <span class="date">[+date+]</span>
</h2>
<div class="news">
<p>[+introtext+]</p>
<div class="more">[+link+]</div>
</div>
Стоит отметить, что вы можете также выводить в шаблоне дополнительный параметр документа (TV), для этого используйте подстановщик, добавив к его имени ‘tv”, например
[+tvпараметр+] - Начинаем редактировать документ «Новости», где у нас будут выводиться аннотации новостей. Как и любой другой некэшируемый сниппет Ditto вызывается следующим образом
[!Ditto!]
Далее задаем параметры, чтобы получить нужный нам вывод статей (имейте ввиду, что при задании значения параметра нужно использовать «обратный апостроф», тот что на одной клавише с буквой «Ё»):
- &summarize=`5` — задаем количество новостей на странице
- &paginate=1 — включаем режим разбивки на страницы, тем самым отключаем архив
- &tpl=` ditto_news ` - ссылаемся на ранее созданный нами шаблон вывода статей.
- &dateFormat=`%d.%m.%Y` — задаем формат вывода даты
- &sortBy=`createdon` — сортируем статьи по дате создания
- &truncText=`>>` — задаем текст ссылки на полную версию статьи
- Итак, у нас должна получиться строка типа:
[!Ditto? &tpl=`ditto_news` &sortBy=`createdon` &summarize=`4` &dateFormat=`%d.%m.%Y` &truncText=`>>` &paginate=1!] - Ниже нам следует дописать html-код для вывода номеров страниц, что-то типа
<div id="pagination">
Стр.: [+pages+]
</div> - Готово! Сохраняем документ «Новости» и смотрим, что у нас получилось на сайте.

Мурад 09.06.2014 09:04 #
Скачиваем сниппет Ditto и устанавливаем его в нашу систему
Подробнее: modx.ru/novosti-i-stati/article/8/
Мурад 09.06.2014 09:08 #