Ключевые слова в MODX Revolution через tagLister
Опишу как организовать вывод ключевых слов к статьям, облако тегов и вывод статей по ключевому слову в MODX Revolution. Делал это стандартными методами, которыми пользуется большинство разработчиков на MODX. Как всё это выглядит на практике можете видеть на этом сайте.
Прежде чем начать одно примечание: я использую в разных местах статьи такие понятия как «ключевое слово» и «тег». Чтобы не вводить в заблуждение, хочу сказать что под этими понятиями я понимаю одно и то же, просто спонтанно пишу где-то одно, а где-то другое. Поехали!
[ 1 ] Скачайте и установите пакет tagLister.
[ 2 ] Создайте новый TV параметр (дополнительное поле). Назовите его tags (можно и по другому). В параметрах ввода выставьте Авто-метка, в доступных шаблонах отметьте шаблон, который у Вас используется для вывода статей или новостей.
После этого у ресурсов со статьями (новостями) появится вкладка — «Дополнительные поля». На ней будет созданное поле — tags. В него для каждой статьи впишите через запятую ключевые слова.
[ 3 ] Теперь в чанке который отвечает за вывод статьи добавляем сниппет для вывода ключевых слов:
Ключевые слова: [[!tolinks? &items=`[[*tags]]` &target=`19` &tpl=`linkTpl`]]
Разберём параметры:
&items=`[[*tags]]` — указываем как называется TV параметр (дополнительное поле) в котором хранятся ключеыве слова;
&target=`19` — странный параметр 19 на самом деле является ID ресурса в который будет осуществлен вывод статей по конкретному тегу. То есть, при нажатии на тег (ключевое слово), будет осуществлен вывод всех статей связанных с этим тегом в ресурс с этим идентификатором. Об этом ниже в пункте 5.
&tpl=`linkTpl` — чанк в котором прописано оформление вывода тегов. Его можно не указывать — теги все равно будут выводится, но без какого-то оформления. У меня в чанке «linkTpl» следующее:
<a href="[[++site_url]][[+url]]" class="[[+cls]]"> [[+item]]</a>
[ 4 ] Вывод ключевых слов в статье организовали, теперь делаем чтобы при нажатии на ключевое слово показывались все статьи в которых этот тег присутствует. Для этого создаём шаблон с названием tags. В этом шаблоне в месте где выводится контент я вызывал сниппет:
[[!getResourcesTag? &parents=`2` &tpl=`articleTpl` &limit=`50` &includeTVs=`1` ]]
&parents=`2` — указывает ID родительского ресурса наших статей. У меня им является ресурс Articles (2) в котором и размещены все мои статьи.
&tpl=`articleTpl` — указываем чанк с выводом информации о статье. В этом чанке выводится название статьи, краткое содержание, автор и.т.п. Я не создавал этот чанк специально для вывода тегов, он у меня уже был и использовался для вывода ленты статей на главной странице. Полностью его содержимое приводить не буду, но чтобы было понятнее укажу основное его содержимое:
<a href="[[++site_url]][[~[[+id]]]]"><h1>[[+pagetitle]]</h1></a>
&includeTVs=`1` — включаем в плейсхолдер TV параметры если они используются в выводе.
Остальные параметры описывать не буду, думаю понятно.
[ 5 ] Теперь создадим новый ресурс «Вывод результатов по тегам». Присвойте этому ресурсу шаблон, который мы создали на предыдущем шаге. Так же поставьте галочку — «не показывать в меню» и «опубликовать». Сохраните его и посмотрите ID этого ресурса (указывается в скобках рядом с названием ресурса). У меня ID был 19 и именно его я указывал в сниппете (пункт «[ 3 ]»), который отвечает за вывод ключевых слов.
После этого, при нажатии на тег в статье должна открываться только что созданная страница с выводом заголовков статей, в которых присутствует этот тег. Если что-то не получилось, то пересмотрите предыдущие шаги, ищите ошибку.
[ 6 ] Если на сайте используются теги к статьям/новостям, то как правило, есть и облако тегов. В месте, где вы хотите его вывести укажите сниппет:
[[!tagLister? &tv=`tags` &target=`19`&parents=`2` &limit=`25` &tpl=`tag_user`]]
Если проделали все предыдущие шаги, то разобраться в параметрах не составит труда. Не забудьте поменять в «target» идентификатор ресурса для вывода статей по ключевому слову. Параметр «tpl» указывает на чанк, в котором хранится оформление облака тегов.
В другой статье упоминается про
А как вывод написать целиком?
выводятся теги через запятую.
вот так:
Теги: росгосстрах, каско, осаго
почему цепляется запятая?
Когда вызывате tolinks, вызывайте так:
То есть при нажатии на тег -пользователь переходит на вывод результатов с прикрепленными статьями. А сверху над результатами — картинка и описание. Такой глоссарий как бы.
сделал все по инструкции. Выводятся ВСЕ статьи, как ни бился. Что не так?