MODX — вывод списка похожих записей (автоматическая перелинковка)

MODX - вывод списка похожих записей (автоматическая перелинковка) MODX Revo
Сегодня мы разберем 2 способа вывести список похожих записей в MODX Revolution - иными словами сделаем автоматическую перелинковку ресурсов.

Способ 1 — при помощи приложения getrelated

На нем останавливаться не буду так как не любитель ставить лишнего и это можно сделать при помощи PdoTools (об этом ниже), кого PdoTools не устраивает ставим getrelated и читаем документацию.

Способ 2 — при помощи приложения PdoTools

Простейший вызов будет выглядеть так:

<h4>Похожие статьи:</h4> 
[[pdoResources? 
   &tpl=`@INLINE <a href="[[+uri]]">[[+pagetitle]]</a></br>` 
   &parents=`[[*parent]]` 
   &resources=`-[[*id]]` 
]]

А на Fenom так:

{'pdoResources' | snippet : [
    'tpl' => '@INLINE <a href="{$uri}">{$pagetitle}</a></br>',
    'parents' => $_modx->resource.parent,
    'resources' => -$_modx->resource.id
]}

Т.е. здесь мы выбираем всех соседей, а текущую запись исключаем из выборки.

Усложняем логику, подключаем TV

Чтобы сделать более привлекательный вид: сделаем вывод 4х элементов под бутстрап (4,5) сетку с выводом изображений (пусть будет TV img).

На обычном шаблонизаторе вывод приобретет вид:

<h4>Похожие статьи:</h4>
<div class="row">
[[pdoResources?
    &parents=`[[*parent]]`
    &resources=`-[[*id]]`
    &includeTVs=`img`
    &depth=`0`
    &limit=`4`
    &tpl=`relation`
    &sortdir=`ASC`
]]
</div>

где чанк relation содержит следующий код:

<div class="col-md-3 col-6 text-center">
    <a href="[[+uri]]">
         <img src="[[+tv.img:pthumb=`w=400&h=300&zc=1`]]" alt="[[+pagetitle]]" class="img-fluid">
    </a>
    <h4><a href="[[+uri]]">[[+pagetitle]]</a></h4>
</div>

Автопереликовка для блога на Fenom

Создаем чанк «relation.tpl» (в «chunks/blog» — для тех кто проходит курс) или просто relation и вставляем в него код:

<div class="col-md-3 col-6 text-center">
    <a href="{$uri}">
        <img src="{$images | pthumb : 'w=400&h=300&zc=1'}" alt="{$pagetitle}" class="img-fluid">
    </a>
    <h4><a href="{$uri}">{$pagetitle}</a></h4>
</div>

Далее в нужном месте вызываем pdoResources:

{'pdoResources' | snippet : [
    'parents' => $_modx->resource.parent,
    'resources' => -$_modx->resource.id,
    'includeTVs' => 'images',
    'tvPrefix' => '',
    'depth' => '0',
    'limit' => '4',
    'tpl' => '@FILE chunks/blog/relation.tpl',
    'sortdir' => 'ASC'
]}

если работаете не с файловыми элементами, то 'tpl' => 'relation',.

Обратите внимание! Здесь дополнительно используется компонент pthumb который изменяет размеры изображений. Вызов на fenom не тестировал!

Вот так легко и просто сделать автоматическую перелинковку на MODX.

Поделиться с друзьями
Алексей

Веб-дизайнер и SEO оптимизатор. Занимаюсь созданием сайтов с 2010 года и их продвижение с 2012 года!

Оцените автора
( 1 оценка, среднее 5 из 5 )
Web-Revenue.ru
Добавить комментарий