Давайте разберемся с вами как выводить записи на modx с помощью pdotools, а именно через pdoPage. По порядку создадим шаблон, выведем туда дополнительные поля и отобразим это все на странице.
Шаг 1: создаем чанк-шаблон
Добавляем новый чанк. Пишем туда необходимые данные, например, url-записи, title-записи modx, дополнительные поля, дата публикации и т.п. В следующем коде:
1) [[+uri]] — урл страницы документа
2) pagetitle — заголовок страницы
3) дальше идет tv.screen:ifnotempty — это вызов дополнительного поля, если он не пустой
4) tv.status, tv.start, tv.minimum — еще дополнительные поля
5) такой вид tv.start:strtotime:date=%d.%m.%Y
позволяет вывести данные в нужном формате (например, 25.04.2018)
6) publishedon:date=%d.%m.%Y
— дата публикации
1 2 3 4 5 6 7 8 9 | <div class='center'><a href="[[+uri]]">[[+pagetitle]]</a><br> [[+tv.screen:ifnotempty=`<a href="[[+uri]]"><img src="[[+tv.screen]]" style='max-width: 250px;'></a><br>`]]</div> Статус: <strong>[[+tv.status]]</strong><br> Старт: [[+tv.start:strtotime:date=`%d.%m.%Y`]]<br> Дата публикации: [[+publishedon:date=`%d.%m.%Y`]] <br> Минимум: [[+tv.minimum]]<br> <a href="[[+uri]]">Подробнее...</a> <hr> |
Шаг 2: выводим pdoPage на странице
На странице, где вы хотите выводить записи вызываем сниппет pdoPage. Я делаю его некешируемым, мой код выглядит вот так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | [[!pdoPage? &parents=`76` &includeTVs=`status, start, minimum,screen,tarrifs` &tpl=`shabindex` &limit=7 &tplPage=`@INLINE <span><a href="[[+href]]">[[+pageNo]]</a></span>` &tplPageWrapper=`@INLINE <div class="pagination">[[+first]] [[+prev]] [[+pages]] [[+next]] [[+last]]</div> ` &tplPageActive=`@INLINE <span class="active"> <a href="[[+href]]">[[+pageNo]]</a> </span>` &tplPagePrev=`@INLINE <span class="control"><a href="[[+href]]">«</a></span>` &tplPageNext=`@INLINE <span class="control"><a href="[[+href]]">»</a></span>` &tplPageSkip=`@INLINE <span class="disabled">...</span>` &tplPagePrevEmpty=`@INLINE <span class="disabled">«</span>` &tplPageNextEmpty=`@INLINE <span class="disabled"><span>»</span></span>` &tplPageFirst=`@INLINE <span class="control"><a href="/">Первая</a></span>` &tplPageLast=`@INLINE <span class="control"><a href="[[+href]]">Последняя</a></span>` &tplPageFirstEmpty=`@INLINE <span class="disabled"><span>Первая</span></span>` &tplPageLastEmpty=`@INLINE <span class="disabled"><span>Последняя</span></span>` ]] [[!+page.nav]] |
Такой длинный код, так как тут сразу с шаблонами вывода навигации.
Давайте по порядку:
1) !pdoPage? — вызов некешируемого сниппета
2) &parents=76
— родительский элемент, с которого выводим документы
3) &includeTVs=status, start, minimum,screen,tarrifs
— разрешаем вывод дополнительных полей
4) &tpl=shabindex
наш шаблон вывода документов modx
5) &limit=7 — количество элементов на странице. Если больше и есть page.nav — будет навигация
6) page.nav — вывод навигации.
Нажимайте сохранить и если все нормально — получиться примерно вот так:
Все тестировалось на modx версии 2.5.7-pl, версия pdoTools 2.11.0-pl.
Как раз искал подобную инфу, применю на практике.
Применяйте