MODX теги — тегирование для ресурсов, при помощи MIGX

MODX теги - тегирование для ресурсов, при помощи MIGX. MODX Revo

В данном уроке реализуем активные элементы — теги для любых MODX ресурсов при помощи MIGX. Тегирование будет сделано под SEO курс от Антона Маркина, который недавно прошел. В тегах мы сможем ссылаться куда угодно: на любые ресурсы, сайты и саму страницу с тегами. Не будет ссылок с Get параметрами типа resours/&tag=kakoyto-teg, следовательно не будет мусорных страниц.

Создание MIGX конфигурации для тегов

Переходим в MIGX и добавляем новый элемент с именем «tag», в поле «Замена «Добавить элемент»» пишем: «Добавить теги» и переходим во вкладку Formtabs.

Добавляем конфигурацию MIGX для тегов

На вкладке Formtabs жмем на кнопку «Добавить элемент», откроется новое окно, в нем еще раз жмем на кнопку «Добавить элемент». И заполняем первый элемент: Fildname — name, Caption — Название тега и нажимаем «Выполнено».

Добавляем поля для элементов

Далее снова ждем на кнопку «Добавить элемент» и добавляем второй элемент: Fildname — link, Caption — Ссылка и нажимаем «Выполнено» и Снова «Выполнено».

Добавляем второй элемент

Теперь переходим во вкладку «Columns» и снова добавляем эти 2 элемента.

  1. Header: Название тега и Fild: name.Создаем разметку колонок
  2. Header: Ссылка и Fild: link.
    Создаем разметку колонок для тегов

Выполняем все.

Создание дополнительного поля (TV) для тегов с MIGX конфигурацией

Переходим во вкладку «Элементы» в дереве ресурсов и создаем новое TV поле:

  • Название: tags;
  • Подпись: Тегирование и переходим во вкладку «Параметры ввода»;Создание дополнительного поля (TV) для тегов с MIGX конфигурацией
  • Тип ввода: MIGX;
  • Конфигурации: tag и переходим во вкладку «Доступно для шаблонов»;
    Настраиваем параметры ввода tv
  • Выбираем шаблоны где будет доступно TV для ввода тегов и сохраняем.
    Выбираем шаблоны где будет доступно TV для ввода тегов

Заполнение тегов в ресурсах

Переходим в ресурс, во вкладку Дополнительные поля к которому назначили TV поле tags и заполняем теги нажав на кнопку: Добавить тег.

Добавляем теги к статье

Так вы можете добавить неограниченно количество тегов.

Заполнение ссылок на теги

Как я говорил выше в тегах можно ссылаться куда угодно, рассмотрим примеры:

  • на другой сайт: https://site.ru/;
  • на текущий ресурс: # — если вы решили проблему с якорными ссылками при помощи плагина или к примеру так [[~9]] — на fenom {$_modx->makeUrl(9)}, где 9 id текущего ресурса или вообще так /blog/statya — кусок URL без адреса сайта/
  • на другие страницы сайта: добавляются идентично тому как на текущий ресурс
  • на якорные ссылки (к примеру если у вас есть авто оглавление которое создает якоря к заголовкам) — вы можете ссылаться на эти якоря, к примеру так [[~9]]#imya-yakorya или {$_modx->makeUrl(9)}#imya-yakorya, где 9 id текущего ресурса.

Вывод тегов в ресурсах

Открываем шаблон ресурсов или чанк, где нужно выводить теги, в моем случае и в случае тех, кто проходит бесплатный курс по Fenom, это файловый чанк ArticleTemplate.tpl. В него после вывода контента, помещаем следующий вызов (разметка адаптирована под bootstrap 5):

<p class="mb-2">
    <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-tags" viewBox="0 0 16 16">
      <path d="M3 2v4.586l7 7L14.586 9l-7-7H3zM2 2a1 1 0 0 1 1-1h4.586a1 1 0 0 1 .707.293l7 7a1 1 0 0 1 0 1.414l-4.586 4.586a1 1 0 0 1-1.414 0l-7-7A1 1 0 0 1 2 6.586V2z"/>
      <path d="M5.5 5a.5.5 0 1 1 0-1 .5.5 0 0 1 0 1zm0 1a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM1 7.086a1 1 0 0 0 .293.707L8.75 15.25l-.043.043a1 1 0 0 1-1.414 0l-7-7A1 1 0 0 1 0 7.586V3a1 1 0 0 1 1-1v5.086z"/>
    </svg>
    {set $rows = json_decode($_modx->resource.tags, true)}
    {foreach $rows as $row}
        #<a class="pr-2 link-dark" href="{$row.link}">{$row.name}</a>
    {/foreach}
</p>

При заполненных тегах получаем такой вид:

Внешний вид тегирования

Для тех кто работает с обычным шаблонизатором, вызов тегов будет таким:

<p class="mb-2">
    <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-tags" viewBox="0 0 16 16">
      <path d="M3 2v4.586l7 7L14.586 9l-7-7H3zM2 2a1 1 0 0 1 1-1h4.586a1 1 0 0 1 .707.293l7 7a1 1 0 0 1 0 1.414l-4.586 4.586a1 1 0 0 1-1.414 0l-7-7A1 1 0 0 1 2 6.586V2z"/>
      <path d="M5.5 5a.5.5 0 1 1 0-1 .5.5 0 0 1 0 1zm0 1a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM1 7.086a1 1 0 0 0 .293.707L8.75 15.25l-.043.043a1 1 0 0 1-1.414 0l-7-7A1 1 0 0 1 0 7.586V3a1 1 0 0 1 1-1v5.086z"/>
    </svg>
    [[getImageList? &tvname=`tags` &tpl=`tplTag`]]
</p>

Где tplTag чанк со следующей разметкой.

#<a class="pr-2 link-dark" href="[[+link]]">[[+name]]</a>

Сейчас если не заполнить теги то будет выводиться иконка теги:

Иконка теги

Скрыть весь блок с его кодом при условии что не чего не заполнено можно так. Берем весь код вызова выносим в отдельный чанк (пусть будет tags.tpl или просто tags, кто не на файлах работает), далее просто делаем проверку на пустоту у самого TV tags.
fenom: {if $_modx->resource.tags?}{include 'file:chunks/blog/tags.tpl'}{/if}
modparser: [[*tags:!empty=`[[$tags]]`]]

Вот так легко и просто реализовать тегирование ресурсов в MODX Revolution при помощи MIGX.

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

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

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