[Modx Revo] организация новостей и статей на сайте getResources getPage
Как создать новости или статьи на сайт Modx Revo? При помощи getPage и getResources.
Загружаем и устанавливаем пакеты getPage, getResources, phpthumbof.
Создаем ДОЧЕРНИЙ РЕСУРС (папку), называем ее СТАТЬИ и в ней несколько статей или новостей размещаем (дочерних ресурсов). У каждой статьи или новости должна стоять галочка ПОКАЗЫВАТЬ В МЕНЮ.
В ресурсе СТАТЬИ вписываем (пользуемся кнопкой вставки кода HTML!):
[[!getPage?
&elementClass=`modSnippet`
&element=`getResources`
&parents=`[[*id]]`
&tpl=`articleTpl`
&limit=`5`&includeTVs=`1`
&hideContainers=`1`
&pageLimit=`5`
&pageNavVar=`page.nav`]]
Страница [[+page]] из [[+pageCount]]<ul class="pageList">[[+page.nav]]</ul>
Создаем TV (дополнительное поле) с именем image, ввод - картинка, вывод - по умолчанию. Делаем его доступным ко всем шаблонам вывода статей и новостей.
Создаем шаблон вывода одной статьи и размещаем там этот код (этот шаблон присваиваем всем ресурсам со статьями):
Дата публикации: [[*publishedon]]
<h1>[[*pagetitle]]</h1>
<img src="[[*image:phpthumbof=`w=120&h=120&zc=1`]]">
[[*content]]
</div>
В шаблон основной страницы где надо вывести блок последних 3 новостей пишем:
[[!getPage?
&element=`getResources`
&parents=`3,4`
&tpl=`articleTpl`
&limit=`3`
&includeTVs=`1`]]
где 3 и 4 - номера папок в которых находятся новости (ID родительского ресурса, указан в скобочках в древе ресурсов), 3 - кол-во выводимых новостей или статей
Создаем чанк articleTpl:
<a href="[[~[[+id]]]]">[[+pagetitle]]</a><p><img alt="" src="[[+tv.image:phpthumbof=`w=100`]]">[[+introtext]]</p>
В стили добавляем
.pageList {margin: 10px 0;}
.pageList li a {padding: 5px;border: 3px solid #F1F1F1;}
.pageList li {float: left;margin: 0 5px;}
.pageList li a.active{background: #D3CBCB;}
ВИДЕО - создание новостей и статей на сайте Modx Revo
Создадим свой набор свойств
Элементы - Спиппеты - getPage. Переходим на вкладку ПАРАМЕТРЫ. Нажимаем Добавить набор параметров, как на рисунке
посавте галочку на Создать новый набор параметров, с имя впишите - articlePaging - Сохранить.
Заменяем в новом наборе pageFirstTpl и pageLastTpl, вместо английских слов вставляем русские - Первый, Последний. Сохраняем.
Прикрепим теперь наш новый набор свойств:
[[!getPage@articlePaging? &element=`getResources` &parents=`3,4` &tpl=`articleTpl` &limit=`3`]]
Дополнительная информация
Упорядочить статьи:
- Создать случайный порядок &sortby=`RAND()`
- Упорядочить по дате публикации &sortby=`{"publishedon":"DESC"}`
- Упорядочить по номеру в ПУНКТ МЕНЮ &sortby=`{"menuindex":"ASC"}`
Например:
[[!getPage?
&element=`getResources`
&parents=`3,4`
&tpl=`articleTpl`
&limit=`10`
&includeTVs=`1`
&sortby=`{"publishedon":"DESC"}`]]