Posted in

Как вывести записи modx через pdoTools

Пример шаблона вывода записей modx pdopage
Пример шаблона вывода записей modx pdopage

Давайте разберемся с вами как выводить записи на 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` – дата публикации

<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>
Создание чанка для вывода шаблона pdopage modx
Создание чанка для вывода шаблона pdopage modx

Шаг 2: выводим pdoPage на странице

На странице, где вы хотите выводить записи вызываем сниппет pdoPage. Я делаю его некешируемым, мой код выглядит вот так:

[[!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]]

Такой длинный код, так как тут сразу с шаблонами вывода навигации.

Как вывести страницы на modx pdopage
Выводим страницы на modx через pdopage

Давайте по порядку:
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 pdopage
Пример шаблона вывода записей modx pdopage

Все тестировалось на modx версии 2.5.7-pl, версия pdoTools 2.11.0-pl.

2 thoughts on “Как вывести записи modx через pdoTools

  1. Как раз искал подобную инфу, применю на практике.

Leave a Reply

Your email address will not be published. Required fields are marked *