У wordpress есть очень много отличных плагинов для создания блока похожих записей, про один из самых лучших я уже писал.
Вот недавно потребовалось сделать что-то подобное и на MODX, но к сожалению никаких даже близких по функционалу плагинов не нашлось.
В статье опишу единственный более-менее подходящий вариант сделать похожие записи на MODX.
Итак, скажу сразу, плагинов похожих записей для MODX EVO — нет, перерыл все, что можно, но зато у одного из основных сниппетов Ditto есть очень полезные функции, которые нам в этом помогут.
Для начала нужно определиться на основе чего выводить похожие записи. Самым оптимальным вариантом оказались теги. Для них мы создадим TV-параметр и привяжем его к шаблону вывода одиночной записи.
Идем в Элементы — управление элементами — параметры(TV) — Новый параметр (TV) и создаем там параметр с заголовком, к примеру, myTags. Тип ввода — Text. Здесь все.
Теперь, когда создаете запись, то в этом поле укажите теги через запятую, на основе них и будет определяться «похожесть» статьи.
Далее, в самом шаблоне, где вам нужно вывести похожие статьи вставляем код вызова Ditto
[!Ditto? &filter=`id,[*id*],2` &parents=`[*parent*]` &tagData=`myTags` &tags=`[*myTags*]` &randomize=`1` &display=`4` &tagDelimiter=`,` &showInMenuOnly=`0` &showPublishedOnly=`1` &tpl=`related`&noResults=``!]
здесь важны поля
&tagData — вписываем название созданной ранее для тегов TV переменной (см выше)
&tags — тоже самое
&display — кол-во выводимых статей
&randomize — перемешивать или нет
&tagDelimiter — разделитель между тегами, лучше оставить запятую, вместе с этим и теги заносить нужно тоже через запятую, без пробелов
&tpl — чанк вывода похожих статей, о нем ниже
&noResults — сюда впишите текст, который будет выводится, когда похожих статей не найдено.
Лично я, чтобы оформить этот блок добавил сюда ещё такие слои
<div class="item_related">
<h4>Похожие записи:</h4>
<ul class="title_related">
[!Ditto? &filter=`id,[*id*],2` &parents=`[*parent*]` &tagData=`myTags` &tags=`[*myTags*]` &randomize=`1` &display=`4` &tagDelimiter=`,` &showInMenuOnly=`0` &showPublishedOnly=`1` &tpl=`related`&noResults=``!]
</ul>
</div>
Можете сделать также, можете по-другому, если разбираетесь в верстке.
В самом чанке вывода статей (у меня это related) я поставил вывод только заголовков, получилось так
<li><a href="[~[+id+]~]">[+pagetitle+]</a></li>
На самом деле можно выводить все, что угодно — заголовки, анонсы, картинки со статьи, т.е. работают все плейсхолдеры Дитто, можно о них почитать на , да и о самом сниппете написано довольно много.
Что мне ещё понравилось в этом решении и было небольшим сюрпризом, это то, что если не указывать теги, то все равно будет выводится несколько статей с родительской рубрики. Также думаю, что если указать в параметре вызова Дитто конкретный номер id — &parents=`4`, то статьи будут выводиться не с родительской рубрики, а именно с той, что указана.
Пользуйтесь.
Мониторинг сети: если вам знаком ASP.NET, вам думаю станет интересно предложение разработки сайтов на Umbraco. Я, к примеру, впервые слышу о этой CMS, но оказывается, что это уже зрелый движок с 14 летней историей и многотысячными сайтами на нем. На этой системе разрабатывались многие известные сайты автомобильных гигантов, а также Sony, Sandisk.
Понравилась статья? - Подпишись.
Или поделись полезным с миром
Похожие статьи:
Спасибо, очень помогло!
И еще, &filter=`id,[*id*],2` поясните значение пожалуйста, в особенности цифры «2».