Как в MODX добавить метки или хэштеги к ресурсам?

Александр Мальцев
32K
8

В этой статье рассмотрим, как в MODX с помощью дополнения Tagger добавить к ресурсам метки или хэштеги, а также как их использовать для поиска соответствующих ресурсов и создания облака тегов.

Установка Tagger и pdoTools

Для создания тегов к статьям, облака тегов и страницы, которая будет выводить ресурсы в соответствии с переданным ей тегом, будем использовать компоненты Tagger и pdoTools.

Установку необходимых компонентов произведём на странице "Управление пакетами" (Приложения -> Установщик):

  • Tagger - компонент, который добавляет в MODX теги, категории и многое другое.
  • pdoTools - компонент, представляющий собой набор сниппетов, позволяющих решить очень большое количество задач. На этом уроке будем использовать сниппеты pdoResources и pdoPage.

Компонент Tagger

Работу с Tagger начнём с создания группы и тегов в ней. Для этого в верхнем меню нажмем на пункт Приложения и выберем подпункт Tagger. На открывшейся странице перейдём на вкладку Group и создадим новую группу с помощью кнопки "Create a new Group".

MODX Tagger - Создание группы для меток или тегов

Основные поля:

  • name - название группы (tags).
  • description - описание группы (теги к статьям).
  • place - место отображение тегов (in tab - во вкладке).
  • show for templates - для каких шаблонов отображать группу (2 - id шаблона статей).
  • allow blank - определяет, можно ли не указывать теги.
Внимание: Работа с Tagger всегда начинается с создания группы, т.к. теги не могут сами по себе существовать, они должны принадлежать к той или иной группе.

Перейдём на вкладку Tags и создадим теги в группе tags.

MODX Tagger - Создание новой метки или тега

Основные поля:

  • name - имя тега (например, HTML)
  • alias - псевдоним тега (например, html)
  • group - группа (выбираем ранее созданную группу tags)

После этого создадим ещё несколько тегов.

MODX Tagger - Список созданных тегов

Добавим к статьям, имеющим шаблон Пост (id=2), теги. Добавление тегов осуществляется во вкладке Tagger.

MODX Tagger - Добавление меток или хэштегов к ресурсу

Создание ресурса "Вывод статей по тегу"

Создадим ресурс "Вывод статей по тегу" и шаблон, который свяжем с ним. Результат данного действия показан на рисунке. Во вкладке "Настройки" укажем данному ресурсу URI - show-posts. Запомним идентификатор (id) данного ресурса (например, 20).

MODX Tagger - Создание ресурса, который будем использовать для вывода статей по метке

Вывод тегов, прикреплённых к статье

Для вывода тегов, добавленных к статье необходимо открыть шаблон (Пост) и вставить в него вызов сниппета TaggerGetTags:

[[TaggerGetTags?
  &resources=`[[*id]]`
  &rowTpl=`@INLINE <div class="btn-group"><span class="btn btn-primary btn-sm">#</span><a class="btn btn-info btn-sm" href="[[~20]]?tag=[[+alias]]">[[+tag]]</a></div>`
]]

Параметр:

&rowTpl - чанк, который используется для вывода каждого тега.

Плейсхолдеры:

  • [[+alias]] - псевдоним тега.
  • [[+tag]] - имя тега.

Вывод тегов организуем с помощью ссылок, каждая из которых будет иметь следующее значение атрибута href:

[[~20]]?tag=[[+alias]]

где:

  • [[~20]] - URL ресурса "Вывод статей по тегу". Данный ресурс будем использовать для вывода статей, имеющих указанный тег.
  • [[+alias]] - значение передаваемого GET-параметра tag. Данное значение будем использовать в ресурсе [[~20]] для создания запроса к базе данных, выбирающих из неё только записи, имеющие этот тег.
MODX (компонент Tagger) - Вывод тегов на странице тикета
MODX - Вывод тегов на странице ресурса

Создание облака тегов

Для создания облака тегов воспользуемся сниппетом pdoResources. Но перед тем как переходить к выборке, рассмотрим MySQL схему компонента Tagger. Данная схема отображает связь между таблицами (классами) компонента Tagger и modResource.

MODX - Схема Tagger (+таблица modResource)
MODX - Схема Tagger (+таблица modResource)

Из схемы видно, что компонент Tagger состоит из 3 таблиц (классов):

  • TaggerTag - список тегов.
  • TaggerTagResource - связывает modResource и TaggerTag. Т.е. каждая строчка содержит id тега и id ресурса.
  • TaggerGroup - список групп.

Класс modResource приведён для наглядности.

Для создания облака тегов необходимо воспользуемся сниппетом pdoResources:

[[!pdoResources?
  &loadModels=`tagger`
  &class=`TaggerTag`
  &leftJoin=`{
    "TaggerTagResources": {
	  "class": "TaggerTagResource",
	  "on": "TaggerTag.id = TaggerTagResources.tag"
    }
  }`
  &select=`{
    "TaggerTag": "*",
	  "TaggerTagResources": "COUNT(TaggerTagResources.tag) as countTags"
	}`
  &groupby=`TaggerTag.id`
  &sortby=`TaggerTag.tag`
  &sortdir=`ASC`  
  &tplWrapper=`@INLINE <div class="panel panel-primary"><div class="panel-heading"><span class="glyphicon glyphicon-tags"></span> Теги</div><div class="panel-body">[[+output]]</div></div>`
  &tpl=`@INLINE <a href="[[~20]]?tag=[[+alias]]" class="btn btn-primary">[[+tag]] <span class="badge">[[+countTags]]</span></a>`
]]

Вставим вышепредставленный код, например, в правую колонку шаблона Пост.

MODX (компонент Tagger) - Облако тегов
MODX - Облако тегов

Реализация страницы "Вывод статей по тегу"

Данная страница будет выводить список статей, которые имеют указанный тег. Как Вы уже наверно догадались, получать тег эта страница будет из URL (из GET параметра tag).

Рассмотрим этот момент более подробно. На страницах каждый тег оформлен в виде ссылки, которая имеет в своём составе параметр tag.

Например, тег bootstrap имеет следующий URL:

http://site.ru/show-posts?tag=bootstrap

Следовательно, для того чтобы вывести соответствующие ресурсы необходимо:

  1. Получить значение параметра tag из массива GET.
  2. Создать запрос для выборки необходимых данных.
  3. Указать данному запросу условие (where). Т.е. ограничить выборку только теми записями, которые имеют указанный тег.
  4. Создать чанк для оформления результатов.

Вставим в шаблон "Статьи по тегу" базовый каркас страницы и вызов сниппета pdoPage:

[[!pdoPage?
  &element = `pdoResources`
  &limit=`2`
  &loadModels=`tagger`
  &class=`TaggerTagResource`
  &leftJoin=`{
    "NameTag": {
      "class": "TaggerTag",
      "on": "TaggerTagResource.tag = NameTag.id"
    },
    "Posts": {
      "class": "modResource",
      "on": "TaggerTagResource.resource = Posts.id"
    }
  }`
  &select=`{
    "TaggerTagResource": "*",
    "NameTag": "NameTag.tag, NameTag.alias",
    "Posts": "Posts.id, Posts.pagetitle, Posts.description"
  }`
  &where=`{
    "NameTag.alias": "[[!#GET.tag]]"
  }`
  &sortby=`TaggerTagResource.resource`
  &sortdir=`ASC`  
  &tplWrapper =`@INLINE <h2 class="h3">Всего результатов: [[+page.total]]</h2>[[+output]]`
  &tpl= `chunkTagRow`
]]
[[!+page.nav]]

Чанк chunkTagRow:

<div class="panel panel-default">
  <div class="panel-body">
    <h3 class="h4">[[+pagetitle]]</h3><p>[[+description]]</p>
    <p class="text-right"><a href="[[~[[+id]]]]" class="btn btn-primary" role="button">Читать далее...	</a></p>
  </div>
</div>
MODX - Вывод статей, имеющих соответствующий тег
MODX - Вывод статей, имеющих соответствующий тег

Комментарии ()

  1. Максим
    8 минут назад
    Доброго времени суток, а не подскажите реально ли реализовать сортировку по группам? числовые, от A до Z и каждая буква русского алфавита отдельно, по вот такую структуру реализовать бы
    <ul>
    <ol>
    		<li>0-9</li>
    		<li><a href="#">11</a></li>
    </ol>
    <ol>
    		<li>a-z</li>
    		<li><a href="#">JavaScript</a></li>
    </ol>
    <ol>
    		<li>А</li>
                    <li><a href="#">Аб</a></li>
                    <li><a href="#">Аывдаорыдва</a></li>
    </ol>
    <ol>
    		<li>Б</li>
                    <li><a href="#">Бвфыв</a></li>
                    <li><a href="#">Бфыворфы</a></li>
    </ol>                
    
                </ul>
    Средствами JS частично такое реализовал, но вот думаю может на Mod`exe проще можно будет сделать?
    Спасибо заранее
    1. ANDREY KHILKOV
      26 октября 2020, 21:09
      Добрый день. Возможно вывести на одной странице курсы и статьи с одинаковым тегом? Сейчас получается в двух чанках дублируется содержимое. Первый чанк выводится как и должен, второй дублирует первый. Пробовал второй сделать через pdoResources вместо pdoPage — результат аналогичный.
      Первый вывод списка курсов:
      [[!pdoPage?
        &element = `pdoResources`
        &limit=`12`
        &parents=`6`
        &depth=`3`
        &pageVarKey=`cources`
        &pageNavVar=`cources.nav`
        &loadModels=`tagger`
        &class=`TaggerTagResource`
        &leftJoin=`{
          "NameTag": {
            "class": "TaggerTag",
            "on": "TaggerTagResource.tag = NameTag.id"
          },
          "Posts": {
            "class": "modResource",
            "on": "TaggerTagResource.resource = Posts.id"
          }
        }`
        &select=`{
          "TaggerTagResource": "*",
          "NameTag": "NameTag.tag, NameTag.alias",
          "Posts": "Posts.id, Posts.pagetitle, Posts.description, Posts.template"
        }`
        &where=`{
          "NameTag.alias": "[[*alias]]",
          "Posts.template": 3
        }`
        &sortby=`TaggerTagResource.resource`
        &sortdir=`ASC`  
        &tplWrapper =`@INLINE [[+output]]`
        &processTVs=`1`
        &includeTVs=`mainImage,courseLink,time,price,rating,reviews,shortDescription,students`
        &tplPageFirstEmpty=``
          &tplPageLastEmpty=``
          &tplPageFirst=`@INLINE <li class="control"><a href="[[+href]]">Primero</a></li>`
          &tplPageLast=`@INLINE <li class="control"><a href="[[+href]]">Último</a></li>`
          &tplPagePrev=`@INLINE <li class="control"><a href="[[+href]]"><</a></li>`
          &tplPageNext=`@INLINE <li class="control"><a href="[[+href]]">></a></li>`
        &tpl= `oneCourse-tpl`
      ]]
      <div class="paging">
          <ul class="pageList">
              [[!+page.nav]]
          </ul>
      </div>
      
      Статьи:
      [[!pdoPage?
        &element = `pdoResources`
        &limit=`12`
        &loadModels=`tagger`
        &class=`TaggerTagResource`
        &pageVarKey=`articles`
        &pageNavVar=`articles.nav`
        &leftJoin=`{
          "NameTag": {
            "class": "TaggerTag",
            "on": "TaggerTagResource.tag = NameTag.id"
          },
          "Posts": {
            "class": "modResource",
            "on": "TaggerTagResource.resource = Posts.id"
          }
        }`
        &select=`{
          "TaggerTagResource": "*",
          "NameTag": "NameTag.tag, NameTag.alias",
          "Posts": "Posts.id, Posts.pagetitle, Posts.description, Posts.template"
        }`
        &where=`{
          "NameTag.alias": "[[*alias]]",
          "Posts.template": 10
        }`
        &sortby=`TaggerTagResource.resource`
        &sortdir=`ASC`  
        &tplWrapper =`@INLINE [[+output]]`
        &processTVs=`1`
        &includeTVs=`mainImage`
        &tplPageFirstEmpty=``
          &tplPageLastEmpty=``
          &tplPageFirst=`@INLINE <li class="control"><a href="[[+href]]">Primero</a></li>`
          &tplPageLast=`@INLINE <li class="control"><a href="[[+href]]">Último</a></li>`
          &tplPagePrev=`@INLINE <li class="control"><a href="[[+href]]"><</a></li>`
          &tplPageNext=`@INLINE <li class="control"><a href="[[+href]]">></a></li>`
        &tpl= `blogItem-tpl`
      ]]
      <div class="paging">
          <ul class="pageList">
              [[!+page.nav]]
          </ul>
      </div>
      
      Спасибо.
      1. Александр Мальцев
        27 октября 2020, 16:11
        Здравствуйте!
        Вам нужно объединить условия:
        [[!pdoPage?
          ...
          &parents = `0`
          &where=`{
            "NameTag.alias": "[[*alias]]",
            "Posts.template:IN": [3,10]
          }` 
        ]]
        
        1. ANDREY KHILKOV
          28 октября 2020, 01:55
          Спасибо, нужно было в разных чанках вывести на одной странице. Получилось один блок вывести через pdoResources и поменять их местами (сначала pdoResources, потом pdoPage). Обычно 2 pdoPage работают с разными pageVarKey, поэтому спросил — может модуль как-то ограничивает это.
      2. zhelanovgrey
        02 октября 2020, 14:09
        Здравствуйте, кто то пробовал подружить Localizator и Tagger?
        Нужно выводить перевод по определенному тегу.
        Вывод по тегу работает, но правильно подключить Localizator к выводу не удается.
        [[!pdoPage?
            &element=`pdoResources`
            &limit=`5`
            &loadModels=`tagger`
            &class=`TaggerTagResource`
            &leftJoin=`{
                "NameTag": {
                        "class": "TaggerTag",
                         "on": "TaggerTagResource.tag = NameTag.id"
                },
                "Posts": {
                        "class": "modResource",
                        "on": "TaggerTagResource.resource = Posts.id"
                },
                "TV1": {
                     "class": "modTemplateVarResource",
                     "on": "Posts.id = TV1.contentid and TV1.tmplvarid = 3"
                }
            }`
            &select=`{
                "TaggerTagResource": "*",
                "NameTag": "NameTag.tag, NameTag.alias",
                "Posts": "Posts.id, Posts.pagetitle, Posts.description, Posts.publishedon, Posts.content",
                "TV1": "TV1.value as tv1"
            }`
            &where=`{
                "NameTag.id": "[[+id]]"
            }`
            &sortby=`publishedon`
            &sortdir=`ASC`
            &tplFirst=`article_horizontal_tpl`
            &tpl=`article_prim_tpl`
        ]]
        Буду рад любым подсказкам
        1. Александр Мальцев
          03 октября 2020, 17:06
          Здравствуйте! Наиболее простой вариант — это просто при создании тегов сохранять в label их названия через || с указанием ключа языка.
          Например:
          ru=Кухня||en=Kitchen
          Затем в приведённом вызове сниппета заменить «NameTag.alias» на «NameTag.label».
          Теперь в чанке они будут выводиться в формате через ||.
          Далее можно, например, используя Fenom преобразовать это значение в массив, и при переборе найти среди них значение, отвечающее языковой версии и вывести его. Получить ключ текущего языка можно из системного параметра cultureKey. Если Fenom использовать не хочется, то для этого дела можно написать простенький сниппет, который будет разбирать такое значение и в соответствии с текущим ключом языка возвращать соответствующее значение тега.
        2. Игорь
          23 сентября 2020, 14:13
          Здравствуйте.
          Почему может не меняться [[+countTags]]?
          Есть страница «Поиск по тегам», где выводятся все теги (вывод полностью по вашим примерам).
          Некоторые ресурсы были уничтожены совсем. При этом [[+countTags]] остался таким, как если бы они были.
          Теги в категориях блога считаются при этом верно: там выборка по &where=`{«modResource.parent:=»:[[*id]]}`.
          Кэш чистил. Вроде всё перепроверил, и не могу понять. Здесь в комментариях ответа не нашёл.

          Заранее спасибо за ответ и помощь.
          1. Александр Мальцев
            26 сентября 2020, 15:30
            Здравствуйте!
            Попробуйте перенести код шаблона в чанк и указать его имя в качестве значения параметра tpl.
            Ещё измените плейсхолдер на некэшируемый:
            [[!+countTags]]
            
          2. GoldBird
            23 июля 2020, 19:00
            Почему-то выводит не все теги, например, которые были добавлены при редактировании ресурса не показываются.

            Код:

            [[!pdoResources?
              &loadModels=`tagger`
              &class=`TaggerTag`
              &innerJoin=`{
                "TaggerTagResources": {
            	  "class": "TaggerTagResource",
            	  "on": "TaggerTag.id = TaggerTagResources.tag"
                }
              }`
              &select=`{
                "TaggerTag": "*",
            	  "TaggerTagResources": "COUNT(TaggerTagResources.tag) as countTags"
            	}`
              &groupby=`TaggerTag.id`
              &where=`{
                  "TaggerTag.group": "1"
                }`
              &sortby=`TaggerTag.tag`
              &sortdir=`ASC`  
              &tplWrapper=`@INLINE <div class="panel panel-primary tags"><div class="panel-body">[[+output]]</div></div>`
              &tpl=`@INLINE <a href="{'tagPage' | config | url}?tag=[[+alias]]" title="[[+tag]]" class="btn btn-primary">[[+tag]] <span class="badge">[[+countTags]]</span></a>`
            ]]
            
            Стоит только группировка, так как 2 контекста, выше выведен для русского языка.
            1. Maksim
              16 июля 2020, 00:37
              Добрый вечер! Сделал все по гайду и многие ответы нашел в отзывах.
              Вопросы:
              1.На странице вывода по тегу — вывожу теги у каждой статьи, у одной статьи 7 тегов, но выводит 7 одинаковых тегов — как поправить? Так же publishedon не подцепляется.
              Чанк для вывода:
                             <div class="col-lg-12 col-md-12" >
                                  <div class="blog_box">                    
                                      <div class="blog_details">
                                                  <div class="date">[[+publishedon:date=`%d %B %Y`]]</div>
                                                  <h2>
                                                      <a href="[[~[[+id]]]]">[[+pagetitle:ellipsis=`50`]]</a>
                                                  </h2>
                                                  	<p>	 [[TaggerGetTags? &resources=`[[+id]]` &rowTpl=`@INLINE <a href="[[~1046]]?tag=[[+alias]]">[[+tag]]/a>`]]
              					</p>	
                                                  <p>[[+description:ellipsis=`100`]]</p>
                                                  <a class="readmore" href="[[~[[+id]]]]">Подробнее</a>
                                       </div>
                                  </div>
                            </div>
              
              Вывод статей:
              [[!pdoPage?
                &element = `pdoResources`
                &limit=`14`
                &loadModels=`tagger`
                &class=`TaggerTagResource`
                  &sortdir=`DESC`
                &leftJoin=`{
                  "NameTag": {
                    "class": "TaggerTag",
                    "on": "TaggerTagResource.tag = NameTag.id"
                  },
                  "Posts": {
                    "class": "modResource",
                    "on": "TaggerTagResource.resource = Posts.id"
                  }
                }`
                &select=`{
                  "TaggerTagResource": "*",
                  "NameTag": "NameTag.tag, NameTag.alias",
                  "Posts": "Posts.id, Posts.pagetitle, Posts.description"
                }`
                &where=`{
                  "NameTag.alias": "[[!#GET.tag]]",
                  "Posts.published": "1",
                  "Posts.deleted": "0"
                }`
                &sortby=`TaggerTagResource.resource`
                &tpl= `blog.tpl.search`
              ]]

              2. Как сделать выбор тегов на странице, например, услуги по TV и чтобы подгружать из этих тегов статьи на страницу?
              1. Александр Мальцев
                20 июля 2020, 15:49
                Привет!
                1. Замените вызов сниппета TaggerGetTags на не кэшируемый.
                2. Добавьте publishedon в выбираемые поля:
                "Posts": "Posts.id, Posts.pagetitle, Posts.description, Posts.publishedon"
                1. Maksim
                  20 июля 2020, 16:42
                  Благодарю за ответ!
                  А такой вопрос:
                  Как сделать выбор тегов на странице, например, услуги по TV и чтобы подгружать из этих тегов статьи на страницу?
                  1. Александр Мальцев
                    22 июля 2020, 15:06
                    Добавить к запросу с помощью параметра &leftJoin необходимые для выборки TV поля.
              2. Олег
                25 мая 2020, 16:32
                Здравствуйте, Александр!
                Осваивая MODX, нашел вашу статью, создал по инструкции вывод тегов, все классно.
                Но есть пара «НО».
                Почему-то у меня на странице вывода результатов по тегу не выводится описание (introtext) + не получается вывести изображение статьи из phpThumboff.
                Кроме того, ссылка на страницу никак не ЧПУ (
                .../show-posts?tag=…
                Подскажете где «копать»?
                1. Александр Мальцев
                  27 мая 2020, 15:21
                  Здравствуйте!
                  Для подцепления данных из других таблиц нужно при выборке добавить их в запрос через leftJoin. В случае с introtext проверьте наличия данного поля в select.
                  Для реализации ЧПУ нужно добавить соответствующие правила в конфигурационный файл сервера или реализовывать это посредством создания плагина в MODX и написание в нём определённой логики.
                2. cheizer
                  21 мая 2020, 15:12
                  Подскажите пожалуйста как вывести на странице тега, НАЗВАНИЕ тега а не ПСЕВДОНИМ?

                  Если нахожусь на странице тега «планируем» вот URL(регуляркой изменен) tag/planiruem

                  Вывожу на странице «РЕЗУЛЬТАТ ПО ТЕГУ #[[+tag]]» так вообще не выводит название тега.
                  А вот так «РЕЗУЛЬТАТ ПО ТЕГУ #[[!#GET.tag]]» выводит ALIAS а он на английском и получается
                  РЕЗУЛЬТАТ ПО ТЕГУ #PLANIRUEM а нужно ПЛАНИРУЕМ, тоесть поле tag нужно, в нем сам тег, но его не выводит на странице :( Как вывести?
                  1. cheizer
                    22 мая 2020, 01:32
                    Вроде нашел ответ в других комментариях про #[[+tag]] на странице, но есть другой вопрос, я не могу понять, как вывести все записи по одному тегу без гет параметра??????? Как его указать руками??? И какой сниппет использовать? Памагите!!! :(((
                    1. Александр Мальцев
                      27 мая 2020, 15:24
                      Нужно его указать в where:
                      &where=`{
                        "NameTag.alias": "имя_алиаса"
                      }`
                      
                      1. cheizer
                        09 июня 2020, 21:59
                        Подскажите пожалуйста, теперь пытаюсь имя тега вписать не руками, а в цикле подставить в виде переменной, все на FENOM пишу, не пойму, может синтаксис неправильный, цикл работает, распечатывает все как надо, но если я добавляю в цикл вызов снипета, то выводит все записи с одинаковым тегом

                        Вот как подставляю переменную $row.section в снипете так:
                        'where' => '{«NameTag.alias»: $row.section}',

                        Вот целиком, этот вызов в цикле подставляется.
                        {'!pdoResources' | snippet : [
                            'limit' => 1,
                        	'loadModels' => 'tagger',
                        	'class' => 'TaggerTagResource',
                            'leftJoin' => '{
                        		 "NameTag": {
                              "class": "TaggerTag",
                              "on": "TaggerTagResource.tag = NameTag.id"
                            },
                            "Posts": {
                              "class": "modResource",
                              "on": "TaggerTagResource.resource = Posts.id"
                            },
                            "intronews": {
                        		"class": "modTemplateVarResource",
                        		"on": "Posts.id = intronews.contentid and intronews.tmplvarid = 20"
                        	    },
                        	"autor": {
                        		"class": "modTemplateVarResource",
                        		"on": "Posts.id = autor.contentid and autor.tmplvarid = 19"
                        	   },
                        	   "image": {
                        		"class": "modTemplateVarResource",
                        		"on": "Posts.id = image.contentid and image.tmplvarid = 1"
                        	   }
                        	}',
                        	'select' => '{
                        	"TaggerTagResource": "*",
                            "NameTag": "NameTag.tag, NameTag.alias",
                            "Posts": "Posts.id, Posts.pagetitle",
                            "intronews": "intronews.value as intronews",
                            "autor": "autor.value as autor",
                            "image": "image.value as image"
                        	}',
                        	'where' => '{"NameTag.alias" : $row.section}',
                        	'sortby' => 'createdon',
                        	'sortdir' => 'desc',
                        	'tplWrapper' => '@INLINE {$output}'
                        	'tpl' => 'news_block',
                        ]} 
                        
                        Вот и не пойму, толи он не видит переменную в цикле, или из за того что я не правильно прописал ее?
                        'where' => '{«NameTag.alias»: $row.section}',
                        1. cheizer
                          27 мая 2020, 15:43
                          Благодарю!
                    2. _Iris_
                      30 апреля 2020, 00:29
                      Здравствуйте, Александр!
                      Использую компонент Tickets, в том числе с созданием тикетов через фронтенд зарегистрированными пользователями.
                      Вы не сталкивались случайно с такой задачей как вывод на странице галереи изображений из TicketFile?
                      Не могу разобраться как это сделать, если используется Fenom.
                      Есть такой пример:
                      [[pdoResources:default=`/path/заглушка.png`? &class=`TicketFile` &where=`{"parent":[[*id]]}`  &sortby=`createdon`  &sortdir=`ASC`  &limit=`1`  &tpl=`@INLINE [[+url]]`]]
                      Но здесь выводится только одно изображение и не используется Fenom
                      1. _Iris_
                        03 мая 2020, 13:10
                        Для вывода изображений использую
                        {'!pdoResources' | snippet:[
                        					'class'=>'TicketFile',
                        					'where'=>'{ "parent":[[*id]] }',
                        					'sortby'=>'createdon',
                        					'sortdir'=>'ASC',
                        					'tpl'=>'tpl.image' 
                        				]}
                        Но не получается доработать код чанка tpl.image:
                        <div class="big-gallery owl-carousel">									
                        {set $where = array('deleted' => 0, 'class' => 'Ticket', 'parent' => $ticket->id) }
                        {set $collection = $pdoFetch->getCollection('TicketFile', $where, array('sortby' => 'createdon', 'sortdir' => 'ASC') ) }
                        {foreach $collection as $item}
                        	<div class="item">
                        		<a href="{$item['url']}" rel="gallery" class="fancybox" data-fancybox="gal">
                        		<img src="{$item['url']}"></a>
                        	</div>
                        {/foreach}
                        </div>
                        
                        1. Александр Мальцев
                          06 мая 2020, 14:30
                          Здравствуйте! Комментарий, добавленный к этой теме не соответствует ей. Если не знаете куда написать, то лучше создать новый вопрос.
                          Вывести изображения прикреплённые к тикету на Fenom можно так:
                          {'!pdoResources' | snippet:[
                            'class' => 'TicketFile',
                            'where' => ['parent' => $_modx->resource.id],
                            'sortby' => 'createdon',
                            'sortdir' => 'ASC',
                            'tpl' => '@INLINE <li><a href="{$url}">{$name}</a></li>',
                            'showLog' => 1
                          ]}
                          1. _Iris_
                            06 мая 2020, 16:21
                            Здравствуйте! Да, тема не соответствует, сначала показалось, что близкая. А удалить комментарий потом не получилось.
                            Спасибо большое за ответ! Как раз правильно задать параметр where И не получалось)
                            А решение нашлось такое, через сниппет:
                            <?php
                            $idx = $modx->resource->get('id');
                            $pdo = $modx->getService('pdoFetch');
                            $pdo->setConfig(array(
                                'class' => 'TicketFile',
                                'loadModels' => 'tickets'
                            ));
                            $resources = $pdo->getCollection('TicketFile', array(
                                'deleted' => false,
                                'class' => 'Ticket',
                                 'parent' => $idx,
                            ), array(
                                 'sortby' => 'TicketFile.id',
                                  )
                                );
                            $tpl = '@INLINE <div class="item"><a href="{$url}" title="{$title}" rel="gallery" class="fancybox" data-fancybox="gal"><img src="{$url}" alt="{$_modx->resource.pagetitle | htmlent}" title="{$pagetitle | htmlent}" itemprop="image"></a></div>';
                            $output = '';
                            foreach ($resources as $resource) {
                                $output .= $pdo->getChunk($tpl, $resource);
                            }
                            return $output;
                            И далее вызываем сниппет в нужной части. Только наверное правильнее назвать это слайдером из подгружаемых изображений, а не галереей.
                      2. Илья
                        29 апреля 2020, 20:12
                        Подскажите, а возможно к данным страницам добавить мета-тег «description».
                        Заранее спасибо!
                        1. Александр Мальцев
                          01 мая 2020, 15:02
                          Можно! Посмотрите как у вас это выполнено и добавьте его через &leftJoin.
                        2. Александр
                          09 марта 2020, 21:38
                          Александр, огромное спасибо за урок. Не могли бы Вы помочь в таком моменте, сделал все по аналогии с Вашим примером, все работает, но не все элементы содержат теги, можно ли при загрузке страницы выводить все элементы, и с тегами и без, а если кликать по облаку, то те, что к нему относятся. За ранее спасибо. Код использую вот такой
                          [[!pdoPage?
                            &element=`pdoResources`        
                            &limit=`4`        
                            &loadModels=`tagger` 
                            &class=`TaggerTagResource`
                            &leftJoin=`{
                              "NameTag": {
                                "class": "TaggerTag",
                                "on": "TaggerTagResource.tag = NameTag.id"
                              },
                              "Posts": {
                                "class": "modResource",
                                "on": "TaggerTagResource.resource = Posts.id"
                              }
                            }`
                            &select=`{
                              "TaggerTagResource": "*",
                                "NameTag": "NameTag.tag, NameTag.alias",
                                "Posts": "Posts.id, Posts.pagetitle, Posts.description"
                            }`
                            &where=`{
                              "NameTag.alias": "[[!#GET.tag]]"
                            }`
                            &sortby=`TaggerTagResource.resource`
                            &sortdir=`ASC`               
                            &tpl=`info-tpl`
                            &parents=`5`
                            &includeTVs=`video`  
                            &tplPageWrapper=`@INLINE <nav aria-label=""><ul class="pagination justify-content-center align-items-center">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul></nav>`
                          ]]
                          
                          1. Александр Мальцев
                            10 марта 2020, 14:57
                            Самый простой вариант — это использовать модификатор вывода. Т.е. когда нет get-параметра tag вызывать сниппет pdoPage без блока where, а когда есть, то с where.
                            Например:
                            [[!#GET.tag:is=``:then=`
                              [[!pdoPage?
                                ...
                              ]]
                            `:else=`
                              [[!pdoPage?
                                ...
                                &where=`{
                                  "NameTag.alias": "[[!#GET.tag]]"
                                }`
                                ...
                              ]]
                            `]]
                            
                            1. Александр
                              08 апреля 2020, 12:09
                              Помогите пожалуйста, может кто сталкивался с такой ситуацией, Воспользовался советом Александра, и сделал вывод с условием (что бы при загрузке страницы выводились все новости, если нажать на тег, то только новости по тегу), но при такой реализации почему то пропадает вывод пагинации страниц, т.е. не выводиться навигация пагинации, причем если условие убрать и оставить какой то один вариант, то все работает нормально. Код использую слудующий:


                              [[!pdoResources?
                              &loadModels=`tagger`
                              &class=`TaggerTag`
                              &leftJoin=`{
                              «TaggerTagResources»: {
                              «class»: «TaggerTagResource»,
                              «on»: «TaggerTag.id = TaggerTagResources.tag»
                              }
                              }`
                              &select=`{
                              «TaggerTag»: "*",
                              «TaggerTagResources»: «COUNT(TaggerTagResources.tag) as countTags»
                              }`
                              &groupby=`TaggerTag.id`
                              &sortby=`TaggerTag.tag`
                              &sortdir=`ASC`
                              &tplWrapper=`@INLINE
                              [[+output]]
                              `
                              &tpl=`@INLINE
                              [[+tag]]
                              [[+countTags]]
                              `
                              ]]

                              [[!#GET.tag:is=``:then=`
                              [[!pdoPage?
                              &element=`pdoResources`
                              &tpl=`info-tpl`
                              &limit=`10`
                              &parents=`[[*context_key:is=`web`:then=`5`:else=`[[BabelTranslation:default=`5`? &resourceId=`5` &contextKey=`eng`]]`]]`
                              &sortby=`publishedon`
                              &sortdir=`DESC`
                              &includeContent=`1`
                              &includeTVs=`video`
                              &tplPageWrapper=`@INLINE
                                [[+first]][[+prev]][[+pages]][[+next]][[+last]]
                              </nav`
                              ]]
                              `:else=`
                              [[!pdoPage?
                              &element=`pdoResources`
                              &limit=`6`
                              &loadModels=`tagger`
                              &class=`TaggerTagResource`
                              &leftJoin=`{
                              «NameTag»: {
                              «class»: «TaggerTag»,
                              «on»: «TaggerTagResource.tag = NameTag.id»
                              },
                              «Posts»: {
                              «class»: «modResource»,
                              «on»: «TaggerTagResource.resource = Posts.id»
                              }
                              }`
                              &select=`{
                              «TaggerTagResource»: "*",
                              «NameTag»: «NameTag.tag, NameTag.alias»,
                              «Posts»: «Posts.id, Posts.pagetitle, Posts.description»
                              }`
                              &where=`{
                              «NameTag.alias»: "[[!#GET.tag]]"
                              }`
                              &sortby=`TaggerTagResource.resource`
                              &sortdir=`ASC`
                              &tpl=`info-tpl`
                              &parents=`[[*context_key:is=`web`:then=`5`:else=`[[BabelTranslation:default=`5`? &resourceId=`5` &contextKey=`eng`]]`]]`
                              &includeTVs=`video`
                              &tplPageWrapper=`@INLINE
                                [[+first]][[+prev]][[+pages]][[+next]][[+last]]
                              </nav`
                              ]]
                              `]]


                              [[!+page.nav]]
                              1. Александр Мальцев
                                08 апреля 2020, 14:07
                                Попробуйте переписать этот код на Fenom.
                              2. Александр
                                10 марта 2020, 16:58
                                Спасибо огромное, Александр.
                            2. Вадим
                              04 марта 2020, 13:03
                              Хороший урок, с modx не дружу и возник такой вопрос.
                              Как на странице категории, вывести теги товаров данной категории?
                              Заранее спасибо
                              1. Александр Мальцев
                                07 марта 2020, 09:13
                                Спасибо! А зачем тогда используете, если вы с MODX не дружите )
                                Для этого необходимо просто добавить условие:
                                [[!pdoResources?
                                  &loadModels=`tagger`
                                  &class=`TaggerTag`
                                  &leftJoin=`{
                                    "TaggerTagResources": {
                                	  "class": "TaggerTagResource",
                                	  "on": "TaggerTag.id = TaggerTagResources.tag"
                                    },
                                    "modResource": {
                                	  "class": "modResource",
                                	  "on": "TaggerTagResources.resource = modResource.id"
                                    }
                                  }`
                                  &select=`{
                                    "TaggerTag": "*", "TaggerTagResources": "COUNT(TaggerTagResources.tag) as countTags"
                                	}`
                                  &where=`{"modResource.parent:=":[[*id]]}`
                                  &groupby=`TaggerTag.id`
                                  &sortby=`TaggerTag.tag`
                                  &sortdir=`ASC`  
                                  &tplWrapper=`@INLINE <div class="panel panel-primary"><div class="panel-heading"><span class="glyphicon glyphicon-tags"></span> Теги</div><div class="panel-body">[[+output]]</div></div>`
                                  &tpl=`@INLINE <a href="[[~20]]?tag=[[+alias]]" class="btn btn-primary">[[+tag]] <span class="badge">[[+countTags]]</span></a>`
                                ]]
                                
                                1. Вадим
                                  10 марта 2020, 08:08
                                  Сайт перешел по наследству.
                                  Вставил ваш код, в итоге он выводит все товары категории (если в категории есть товар с тегом). А необходимо вывести теги товаров из этой категории.
                                  1. Александр Мальцев
                                    10 марта 2020, 14:33
                                    Нет, он выводит теги, какие есть у товаров в этой категории. Вместе с тегом выводится цифра, показывающая какое количество тегов, имеются в данной категории у товаров. Посмотрите, может что-то не так сделали.
                                    1. Вадим
                                      10 марта 2020, 14:44
                                      Спасибо, конфликтовало с &tplWrapper, убрал, и теги вывелись.
                              2. Анатолий
                                08 октября 2019, 10:00
                                Добрый день! Вот уже два дня бьюсь как мне кажется над тривиальной задачей)
                                Есть несколько категорий тегов (групп тегов), например Цвет (белый, синий, красный), Размер (большой, малый) и т.д.
                                Как подключить эти группы в leftJoin pdoResources чтобы их вывести по группам с заголовками?
                                Родные параметры &rowTpl, &outTpl, [[+group_name]] тут не работают, я правильно понимаю что их как-то нужно добавить в выборку? Уже думал вызвать pdoResources 3 раза и в каждом указать свою группу, но &groups тоже не работает, выводятся все теги из всех групп подряд.
                                [[!pdoResources?
                                              &loadModels=`tagger`
                                              &class=`TaggerTag`
                                              &leftJoin=`{
                                                "TaggerTagResources": {
                                            	  "class": "TaggerTagResource",
                                            	  "on": "TaggerTag.id = TaggerTagResources.tag"
                                                }
                                              }`
                                              &select=`{
                                                "TaggerTag": "*",
                                            	  "TaggerTagResources": "COUNT(TaggerTagResources.tag) as countTags"
                                            	}`
                                              &groupby=`TaggerTag.id`
                                              &sortby=`TaggerTag.group`
                                              &sortdir=`ASC`
                                              &tplWrapper=`@INLINE Теги[[+group_name]]<div class="panel-body">[[+output]]</div>`
                                              &tpl=`@INLINE <a href="[[~56]]?tag=[[+alias]]" class="btn btn-primary">[[+tag]] <span class="badge">[[+countTags]]</span></a>`
                                            ]]
                                1. Александр Мальцев
                                  08 октября 2019, 15:30
                                  Привет!
                                  Это можно решить через сниппет:
                                  <?php
                                  $modx->addPackage('tagger', MODX_CORE_PATH . 'components/tagger/model/');
                                  $query = $modx->newQuery('TaggerGroup');
                                  $query->select('TaggerGroup.id as id, TaggerGroup.alias as alias');
                                  $query->sortby('TaggerGroup.alias','ASC');
                                  $query->prepare();
                                  $query->stmt->execute();
                                  $rows = $query->stmt->fetchAll(PDO::FETCH_ASSOC);
                                  $output = '';
                                  foreach ($rows as $row) {
                                    $output_inner = '';
                                    $query_inner = $modx->newQuery('TaggerTag');
                                    $query_inner->leftJoin('TaggerTagResource','Resources');
                                    $query_inner->select('TaggerTag.tag as tag, TaggerTag.alias as alias, COUNT(Resources.tag) as countTags');
                                    $query_inner->groupby('TaggerTag.id');
                                    $query_inner->sortby('TaggerTag.tag','ASC');
                                    $query_inner->where(array('TaggerTag.group' => $row['id']));
                                    $query_inner->prepare();
                                    $query_inner->stmt->execute();
                                    $rows_inner = $query_inner->stmt->fetchAll(PDO::FETCH_ASSOC);
                                    foreach ($rows_inner as $row_inner) {
                                      $output_inner .= $modx->getChunk('tpl.Tagger.tag.row',array(
                                        'tag' => $row_inner['tag'],
                                        'alias' => $row_inner['alias'],
                                        'countTags' => $row_inner['countTags']
                                      ));
                                    }
                                    $output .= $modx->getChunk('tpl.Tagger.group.row',array(
                                      'output_inner' => $output_inner,
                                      'alias' => $row['alias'],
                                      'id' => $row['id']
                                    ));
                                  }
                                  
                                  return $output;
                                  
                                  Чанк tpl.Tagger.group.row:
                                  <div>Название группы тегов: [[+alias]]</div>
                                  [[+output_inner]]
                                  
                                  Чанк tpl.Tagger.tag.row:
                                  <a href="[[~56]]?tag=[[+alias]]" class="btn btn-primary">[[+tag]] <span class="badge">[[+countTags]]</span></a>
                                  
                                  1. Анатолий
                                    08 октября 2019, 17:12
                                    Саша, шикарно работает, благодарю!
                                    Только заменил
                                    $query->select('TaggerGroup.id as id, TaggerGroup.alias as alias');
                                    $query->sortby('TaggerGroup.alias','ASC');
                                    на:
                                    $query->select('TaggerGroup.id as id, TaggerGroup.name as alias');
                                    $query->sortby('TaggerGroup.name','ASC');
                                    чтобы выводились именно названия групп)
                                    Так получается родные сниппеты taggera не могут решать подобные задачи?
                                    Приходится писать свой сниппет?
                                    1. Александр Мальцев
                                      09 октября 2019, 02:13
                                      Родные сниппеты это не позволяют сделать. Тут только писать что-то самому.
                                      К тому же свой сниппет, предназначенный для конкретной задачи будет намного быстрее работать, т.к. он заточен именно под неё, а не представляет собой универсальное решение.
                                2. Александр
                                  02 октября 2019, 23:14
                                  Помогите разобраться.
                                  Вместо /tag.html?tag=[[+alias]] выводится ссылка /tag.html?tag=statya-1 (statya-1 это url текущей статьи, к которой относятся тэги)

                                  Код такой:
                                          <ul>
                                  [[!pdoPage?
                                  &parents=`12`
                                  &depth=`0`
                                  &tpl=`TplStatia`
                                  &sortdir=`ASC`
                                  &limit=`2`
                                  &includeContent=`1`
                                  &tplPageWrapper=`@INLINE <div class="pagination"><div class="container"><ul>[[+pages]]</ul></div></div>`
                                  &tplPage=`@INLINE <li><a href="[[+href]]">[[+pageNo]]</a></li>`
                                  &tplPageActive=`@INLINE <li class="active"><a href="[[+href]]">[[+pageNo]]</a></li>`
                                  ]]
                                          </ul>
                                      </div>
                                  </div>
                                  [[!+page.nav]]
                                  
                                  Чанк такой:
                                  <li>
                                  <h3><a href="[[+uri]]">[[+pagetitle]]</a></h3>
                                  [[+content:ellipsis=`300`]]
                                  <div class="article_cell_info">
                                      <span>[[+publishedon:date=`%d.%m.%Y`]]</span>
                                  [[!pdoResources?
                                    &loadModels=`tagger`
                                    &class=`TaggerTag`
                                    &leftJoin=`{
                                      "TaggerTagResources": {
                                  	  "class": "TaggerTagResource",
                                  	  "on": "TaggerTag.id = TaggerTagResources.tag"
                                      }
                                    }`
                                    &select=`{
                                      "TaggerTag": "*"
                                  	}`
                                    &groupby=`TaggerTag.id`
                                    &sortby=`TaggerTag.tag`
                                    &sortdir=`ASC`  
                                    &tplWrapper=`@INLINE <div class="tags">[[+output]]</div>`
                                    &tpl=`@INLINE <a href="[[~14]]?tag=[[+alias]]">[[+tag]]</a>`
                                  ]]
                                  </div>
                                  </li>
                                  
                                  1. Александр Мальцев
                                    03 октября 2019, 03:20
                                    Для производительности лучше конечно сразу выбрать данные и не помещать сниппет в чанк.
                                    У ресурса тоже есть alias. В этом случае нужно установить плейсхолдеру другое имя:
                                    &select=`{
                                      "TaggerTag": "TaggerTag.alias as tagalias, TaggerTag.tag as tag"
                                    }`
                                    &tpl=`@INLINE <a href="[[~14]]?tag=[[+tagalias]]">[[+tag]]</a>`
                                    
                                    Можно поступить по другому, в сниппете, где выбираете поля ресурса, укажите в параметре select только те, которые нужны.
                                    1. Александр
                                      03 октября 2019, 11:39
                                      Как здесь переопределить?
                                      [[TaggerGetTags?
                                      &resources=`[[+id]]`
                                      &rowTpl=`@INLINE <a href="[[~14]]?tag=[[+alias]]">[[+tag]]</a>`
                                      ]]
                                      
                                      1. Александр Мальцев
                                        03 октября 2019, 14:34
                                        Чтобы не было проблем лучше всё писать на Fenom:
                                        {'!TaggerGetTags' | snippet : [
                                          'resources' => $id,
                                          'rowTpl' => '@INLINE <a href="{$_modx->makeUrl(14)}?tag={$alias}">{$tag}</a>'
                                        ]}  
                                        
                                      2. Александр
                                        03 октября 2019, 11:28
                                        Что-то все равно не работает. Всем статьям выводит одни и те же теги, даже если у статьи вообще нет тегов.
                                      3. Александр
                                        02 октября 2019, 23:32
                                        Переделал чанк так, тоже не помогает:
                                        <li>
                                        <h3><a href="[[+uri]]">[[+pagetitle]]</a></h3>
                                        [[+content:ellipsis=`300`]]
                                        <div class="article_cell_info">
                                            <span>[[+publishedon:date=`%d.%m.%Y`]]</span>
                                        <div class="tags">
                                        [[TaggerGetTags?
                                          &resources=`[[+id]]`
                                          &rowTpl=`@INLINE <a href="[[~14]]?tag=[[+alias]]">[[+tag]]</a>`
                                        ]]
                                        </div>
                                        </div>
                                        </li>
                                      4. Amsterdam
                                        28 марта 2019, 06:44
                                        Не могу понять, почему на странице с результатами, облако тегов не выводится?
                                        1. Amsterdam
                                          28 марта 2019, 12:52
                                          Методом проб, удалось выяснить, что облако тегов на странице результатов не выводит, если вывод идет через pdoPage. Если поменять на pdoResources, то облако появляется. Не могу понять взаимосвязь…
                                          1. Александр Мальцев
                                            28 марта 2019, 14:30
                                            С pdoPage тоже должно выводиться. Может что-то не так настроили… Если у вас на странице несколько pdoPage, то их необходимо соответственно настроить…
                                            1. Amsterdam
                                              28 марта 2019, 14:47
                                              Нет, вывод pdoPage был только один. Так и не смог понять, в чем дело. Может быть позже дойдет, отпишусь здесь…

                                              И попутно возник такой вопрос — не использовали ли вы для вывода превьюшек к статьям каталога ресурсов Asset Manager в качестве галереи? Не получается пока его заинклюдить. Непосредственно в tpl чанке pdoResources выводом через сниппет getPageAssets картинка выводится, но это конечно не слишком хороший вариант
                                              1. Amsterdam
                                                28 марта 2019, 15:16
                                                Вывод сейчас такой:

                                                {$_modx->runSnippet('pdoResources', [
                                                    'parents' => 4,
                                                    'limit' => 0,
                                                    'tpl' => 'faceResults',
                                                    'tplWrapper' => '@INLINE <div class="vp-portfolio__items-wrap">{$output}</div>'
                                                ])}
                                                а уже в чанке faceResults обработка и вытягивание картинок:

                                                [[getPageAssets? 
                                                 &page_id=`[[+id]]` 
                                                 &limit=`1` 
                                                 &outerTpl=`[[+content]]` 
                                                 &innerTpl=`<img src="[[+Asset.url]]" alt="">`
                                                 ]]
                                                1. Александр Мальцев
                                                  30 марта 2019, 07:22
                                                  Его не получится присоединить, т.к. дополнение «Asset Manager» создаёт таблицы в БД без префикса. Необходимо либо ждать когда пофиксят компонент, либо писать свой сниппет для этого дела.
                                                  1. Amsterdam
                                                    30 марта 2019, 11:10
                                                    Понял. Спасибо, Александр. Чрезвычайно жаль. Компонент весьма хороший. В качестве галереи подходит прекрасно. Присутствует drag n drop, фото сортируются перетаскиванием, есть поля для alt и title. Единственное, пока нет пагинации в админке, если фото много, то становится не слишком удобно. Но по сути пустяк.

                                                    Самое обидное, что, получается, нет возможности заинключидь. Подтолкнуть бы автора к этой доработке. К сожалению, не знаю английский достаточно хорошо, что бы адекватно написать об этом
                                                    1. Александр Мальцев
                                                      30 марта 2019, 14:43
                                                      Стоит попробовать. Для этого можно воспользоваться переводчиком (например, Google Translate). Написать текст на русском, а затем его перевести на английский.
                                                2. Amsterdam
                                                  28 марта 2019, 15:02
                                                  Речь об этом плагине github.com/craftsmancoding/assetmanager/wiki/getPageAssets
                                            2. Amsterdam
                                              28 марта 2019, 07:49
                                              PS При этом, если убрать вывод результатов, то теги в сайдбаре начинают выводиться. Что за конфликт получается. Подскажите пожалуйста?
                                            3. Михаил
                                              21 марта 2019, 22:06
                                              Добрый вечер. Бьюсь уже часов 5 не могу вывести на новом сайте текстовое превью статей на главной.
                                              [[pdoResources?
                                                &parents=`4`
                                                &limit=`3`
                                                &includeContent=`1`
                                                &includeTVs=`images`
                                                &tpl=`main_news`
                                              ]]
                                              
                                              Чанк:
                                              <div class="one-third columns">
                                                <div class="blog-item">
                                                  <div class="image"><img src="[[+tv.images:phpthumbof=`w=350&h=236&zc=1`]]" alt="" /></div>
                                                  <div class="date-position">
                                                    <div class="title"><a href="[[~[[+id]]]]">[[+pagetitle]]</a></div>
                                                    <div class="date"><i class="fa fa-calendar"></i> <span>[[+publishedon:date=`%d.%m.%Y`]]</span></div>
                                                  </div>
                                                  <div class="hr-line"></div>
                                                  <div class="content-box">
                                                    <div class="description">[[+introtext]]</div>
                                                    <div class="readmore"><a href="[[~[[+id]]]]"><i class="fa fa-genderless"></i><i class="fa fa-genderless"></i><i class="fa fa-genderless"></i>
                                                      </a></div>
                                                  </div>
                                                </div>
                                              </div>
                                              
                                              [[+introtext]] — этот плейс не срабатывает и на старых сайтах я заметил частично исчезли превьюшки.
                                              1. Max V.
                                                18 октября 2018, 19:31
                                                Добрый день. Ещё вот такой вопрос.
                                                Сделал человекоподобные юрл через .htaccess (типа, как здесь — itchief.ru/lessons/modx-revo/modx-tag-cloud#comment-1350), но столкнулся со следующей проблемой.
                                                По неправильным ссылкам, типа сайт.ру/tags/ и сайт.ру/tags/любые_буквы показывает — «Всего результатов: 0».
                                                Как сделать так, что бы отдавало ошибку 404? Не хочется на сайте дубли плодить.
                                                1. Александр Мальцев
                                                  29 октября 2018, 14:47
                                                  Добрый! Можно создать плагин, который будет отслеживать событие OnWebPageInit. В данном плагине проверять страницу, количество результатов. И если результатов 0, то выдавать ошибку 404 с помощью $modx->sendErrorPage().
                                                2. Борис
                                                  12 октября 2018, 15:32
                                                  Александр привет, помогите с реализацией!
                                                  Никак не получается вывести изображение в tv на странице статей по тегам, которые реализованы Tagger'ом. А сами статьи работают через Tickets.
                                                  Делал вывод тегов по этой вашей статье, все получилось, но картинку не получается вывести, точнее она выводится, но в таком виде:
                                                  <img src="picture.jpg">
                                                  То есть начало урла не подставляется.

                                                  В шаблоне статей по тегам вывожу таким образом:
                                                  [[!pdoPage?
                                                  	&element = `pdoResources`
                                                  	&limit=`2`
                                                  	&loadModels=`tagger`
                                                  	&class=`TaggerTagResource`
                                                  	&leftJoin=`{
                                                  	"NameTag": {
                                                  	"class": "TaggerTag",
                                                  	"on": "TaggerTagResource.tag = NameTag.id"
                                                  	},
                                                  	"Posts": {
                                                  	"class": "modResource",
                                                  	"on": "TaggerTagResource.resource = Posts.id"
                                                  	},
                                                  	"TV1": {
                                                  	"class": "modTemplateVarResource",
                                                  	"on": "Posts.id = TV1.contentid and TV1.tmplvarid = 1"
                                                  	}
                                                  	}`
                                                  	&select=`{
                                                  	"TaggerTagResource": "*",
                                                  	"NameTag": "NameTag.tag, NameTag.alias",
                                                  	"Posts": "Posts.id, Posts.pagetitle, Posts.introtext, Posts.publishedon",
                                                  	"TV1": "TV1.value as tv1"
                                                  	}`
                                                  	&where=`{
                                                  	"NameTag.alias": "[[!#GET.tag]]",
                                                  	"Posts.published": "1"
                                                  	}`
                                                  	&sortby=`TaggerTagResource.resource`
                                                  	&sortdir=`ASC`  
                                                  	&tplWrapper =`@INLINE <h2 class="sayit_element_heading sayit_view_type_1">Всего результатов: [[+page.total]]</h2>[[+output]]`
                                                  	&tpl= `tag.tpl`
                                                  ]]
                                                  Чанк tag.tpl такой:
                                                  <div class="panel panel-default">
                                                    <div class="panel-body">
                                                      <h3 class="h4">[[+pagetitle]]</h3>
                                                  	<p>[[+introtext]]</p>
                                                  	<p>[[+publishedon:date=`%d %b %Y`]]</p>
                                                      <p class="text-right"><a href="[[~[[+id]]]]" class="btn btn-primary" role="button">Читать далее...	</a></p>
                                                  	<img src="[[+tv1]]">
                                                    </div>
                                                  </div>
                                                  Что не так делаю, подскажите пожалуйста!
                                                  1. Александр Мальцев
                                                    14 октября 2018, 04:48
                                                    Если в TV поле хранятся только имена файлов изображений, то можно просто добавить путь до них:
                                                    <img src="assets/path_to/[[+tv1]]">
                                                    
                                                    1. Борис
                                                      14 октября 2018, 21:59
                                                      Ну так я пробовал делать, но у меня некоторые статьи без фоток превьюшек, а ещё я бы хотел эти превьюшки уменьшать к примеру через phpthumbon, потому что я на странице с выводом всех статей, вывожу превью как раз уменьшенной копии, хотел так же делать и на странице статей по тегам!
                                                      1. Борис
                                                        15 октября 2018, 17:45
                                                        Написал в итоге условие которое в зависимости есть или нет картинки у поста, выводит нужную, ну и ресайзит снипетом, а урл подставлять пришлось, другого выхода не нашел:
                                                        {if $_pls['tv1']}
                                                        	  <div class="col col-3 sayit_blog_item_fimage_cont sayit_js_bg_image" data-src="[[!phpthumbon? &input=`[[++assets_url]]images/tickets/[[+tv1]]` &options=`w=164&h=164&zc=1&q=96`]]"></div>
                                                        	  {else}
                                                        	  <div class="col col-3 sayit_blog_item_fimage_cont sayit_js_bg_image" data-src="[[++assets_url]]tpl/img/clipart/places/hashtag.jpg" style="height:164px;"></div>
                                                        	  {/if}
                                                        1. Александр Мальцев
                                                          18 октября 2018, 15:47
                                                          У TV поля есть такая настройка как источники файлов. Попробуйте установить в этой настройке правильное значение источника файлов. Это настройка должна добавлять к адресу картинки путь до него.
                                                          1. Борис
                                                            19 октября 2018, 09:58
                                                            Да это понятно, я источник файлов настроил специально отдельный под тикеты, и там пути прописаны у меня корректные типа от assets/…
                                                            1. Александр Мальцев
                                                              29 октября 2018, 14:33
                                                              Значит, он их не подхватывает. В этом случае можно написать свой сниппет, результаты которого уже разбивать на страницы с помощью pdoPage.
                                                  2. Михаил
                                                    07 сентября 2018, 13:43
                                                    Спасибо за статью. Ваши уроки самые внятные в рунете.
                                                    Вы не могли бы подсказать как на странице вывода результатов выводились новости с картинками? Уже несколько раз и чанк с одиночным выводом новости проверил, в обычном пдо выводе с картинками выходит, а через теги без.
                                                    1. Max V.
                                                      09 сентября 2018, 11:50
                                                      Добавьте в pdoPage:
                                                      &processTVs=`1`
                                                      &includeTVs=`tv_изображения`
                                                      1. Борис
                                                        12 октября 2018, 15:28
                                                        Да нет же, тут в коментах ниже Александр же писал о том, что tv не будут работать через класс TaggerTagResource, так как у этого класа нет никаких TV, поэтому нужно джойтить и выводить так к примеру:
                                                        &class=`TaggerTagResource`
                                                        &leftJoin=`{
                                                        "NameTag": {
                                                        "class": "TaggerTag",
                                                        "on": "TaggerTagResource.tag = NameTag.id"
                                                        },
                                                        "Posts": {
                                                        "class": "modResource",
                                                        "on": "TaggerTagResource.resource = Posts.id"
                                                        },
                                                        "TV1": {
                                                        "class": "modTemplateVarResource",
                                                        "on": "Posts.id = TV1.contentid and TV1.tmplvarid = 1"
                                                        }
                                                        }`
                                                        &select=`{
                                                        "TaggerTagResource": "*",
                                                        "NameTag": "NameTag.tag, NameTag.alias",
                                                        "Posts": "Posts.id, Posts.pagetitle, Posts.introtext, Posts.publishedon",
                                                        "TV1": "TV1.value as tv1"
                                                        }`
                                                    2. Max V.
                                                      01 сентября 2018, 23:04
                                                      Здравствуйте!
                                                      Подскажите, а возможен вывод [[+countTags]] в отдельной статье, через TaggerGetTags?
                                                      Что-то типа:
                                                      [[TaggerGetTags?
                                                      &resources=`[[*id]]`
                                                      &rowTpl=`@INLINE <div class="btn-group"><span class="btn btn-primary btn-sm">[[+countTags]]</span><a class="btn btn-info btn-sm" href="[[~20]]?tag=[[+alias]]">[[+tag]]</a></div>`
                                                      ]]
                                                      1. Александр Мальцев
                                                        03 сентября 2018, 13:26
                                                        Здравствуйте!
                                                        Укажите в параметре &resources необходимый идентификатор статьи.
                                                        &resources=`5`
                                                        
                                                        1. Max V.
                                                          03 сентября 2018, 21:13
                                                          Вы меня не поняли)
                                                          Задача просто вывести счётчик тэгов [[+countTags]] на страницах ресурсов (а не в ленте или сайдбаре). Вывожу через сниппет TaggerGetTags (код привёл выше) — счётчик не отображается.
                                                      2. Дмитрий
                                                        23 мая 2018, 18:31
                                                        Добрый день, подскажите пожалуйста можно ли реализовать 2 таких момента:
                                                        синтегрировать с формой поиска по сайту (напр. simplesearch) что бы при вводе поискового запроса в форму, подтянулись не только страницы с этим словом но и с тегами.
                                                        И можно ли вывести автоматически через pdoTools группировку: все группы тегов+список тегов к группам?
                                                        1. Александр Мальцев
                                                          28 мая 2018, 14:07
                                                          Добрый! В simplesearch есть параметр customPackages, который позволяет включить поиск по таблицам. Но готового решения нет. Нужно попробовать настроить этот параметр.
                                                          Да, с помощью pdoTools можно вывести группы и список тегов к каждой из них.
                                                          1. Дмитрий
                                                            14 июня 2018, 17:18
                                                            Спасибо, все получилось, только проблема есть не хочет выводить TV картинку, вывожу так:
                                                            <div id="pdopage" class="aligncenter">
                                                              [[!+page.nav]]
                                                              <div class="rows aligncenter category-rows">
                                                            [[!pdoPage?
                                                              &element = `pdoResources`
                                                              &parents=`18`
                                                              &limit=`10`
                                                              &loadModels=`tagger,simplerating`
                                                              &class=`TaggerTagResource`
                                                              &leftJoin=`{ 
                                                                "NameTag": { "class": "TaggerTag", "on": "TaggerTagResource.tag = NameTag.id" },
                                                                "Posts": { "class": "modResource", "on": "TaggerTagResource.resource = Posts.id" },
                                                                "SimpleRating": { "class":"SimpleRating", "on": "Posts.id = SimpleRating.resource" },
                                                                "TV": { "class": "modTemplateVarResource", "on": "TaggerTagResource.resource = TV.contentid and TV.tmplvarid = 3" } }`
                                                              &select=`{
                                                                "TaggerTagResource": "*",
                                                                "NameTag": "NameTag.tag, NameTag.alias",
                                                                "Posts": "Posts.id, Posts.pagetitle, Posts.description, Posts.introtext",
                                                                "SimpleRating":"rating_value,rating_count",
                                                                "TV": "TV.value as image"
                                                              }`
                                                              &where=`{
                                                                "NameTag.alias": "[[!#GET.tag]]"
                                                              }`
                                                              &sortby=`TaggerTagResource.resource`
                                                              &includeTVs=`image`
                                                              &sortdir=`ASC`  
                                                              &tpl= `product-card-tpl`
                                                              &ajaxMode=`scroll`
                                                            ]]
                                                            </div>
                                                            </div>
                                                            содержимое product-card-tpl:
                                                            <div class="product-list">
                                                                <div class="product-card-title">
                                                                        <a href="[[~16]]?id=[[+id]]">[[+pagetitle]]</a>
                                                                    <p>Рейтинг посетителей:</p> 
                                                                    <div class="rating zoom_07">
                                                                    <div class="rating__best">
                                                                      <div class="rating__current" data-id="[[+id]]" style="display: block; width: [[+rating_value:mpy=`130`:div=`5`]]px;"></div>
                                                                      <div class="rating__star rating__star_5" data-title="5"></div>
                                                                      <div class="rating__star rating__star_4" data-title="4"></div>
                                                                      <div class="rating__star rating__star_3" data-title="3"></div>
                                                                      <div class="rating__star rating__star_2" data-title="2"></div>
                                                                      <div class="rating__star rating__star_1" data-title="1"></div>
                                                                    </div>
                                                                    </div>
                                                                </div>
                                                            <div class="product-card-body">
                                                                <div>
                                                                    <p>[[+introtext:ellipsis=`450`]]</p>
                                                                </div>
                                                                <div class="product-card-right">
                                                                        <a href="[[~16]]?id=[[+id]]"><img src="[[+tv.image:default=`[[+tv.image2]]`:phpthumbon=`w=150&q=80`]]" alt=""></a>
                                                                    
                                                                        <div class="btn-group"><a class="btn btn-info btn-sm product-card-btn" href="[[~16]]?id=[[+id]]">ОФОРМИТЬ</a></div>
                                                                        
                                                                    <a href="[[~[[+id]]]]" class="portfolio-button">Подробнее</a>
                                                                </div>
                                                            </div>
                                                            </div>
                                                            Пробовал вариант строки
                                                            "TV": {    "class": "modTemplateVarResource", "on": "TV.contentid = Ticket.id AND TV.tmplvarid = 6" }
                                                            1. Александр Мальцев
                                                              16 июня 2018, 07:35
                                                              Вы же TV значения поля выбираете так:
                                                              TV.value as image
                                                              
                                                              А в чанке обращаетесь вот так tv.image:
                                                              [[+tv.image:default=`[[+tv.image2]]`:phpthumbon=`w=150&q=80`]]
                                                              
                                                              Т.е. вам необходимо:
                                                              [[+image:default=`[[+tv.image2]]`:phpthumbon=`w=150&q=80`]]
                                                              
                                                              Параметр &includeTVs использовать не нужно, вы это сделали самостоятельно с помощью &leftJoin.
                                                              1. Влад
                                                                13 июля 2018, 15:29
                                                                Здравствуйте Александр!
                                                                Я в тупике, помогите пожалуйста разобраться…

                                                                Оформляю каталог, состоящий их карточек товаров. Вывожу ресурсы с помощью pdoPage.
                                                                В товаре используются 2 плагина: tagger и simplerating (как и в примере выше)

                                                                [[!pdoPage?
                                                                    &parents=`[[*id]]`
                                                                    &element = `pdoResources`
                                                                    &limit=`9`
                                                                    &tpl=`product-item`
                                                                    &ajaxMode=`scroll`
                                                                    &ajaxElemWrapper=`#products`
                                                                    &ajaxElemRows=`#products .rows`
                                                                    &ajaxElemPagination=`#products .pagination`
                                                                    &ajaxElemLink=`#products .pagination a`
                                                                    &frontend_css=`0`
                                                                    &processTVs=`1`
                                                                    &includeTVs=`product-image`
                                                                    &loadModels=`tagger, simplerating`
                                                                    &class=`TaggerTagResource`
                                                                    &leftJoin=`{ 
                                                                       "NameTag": {
                                                                          "class": "TaggerTag",
                                                                          "on": "TaggerTagResource.tag = NameTag.id" 
                                                                       },
                                                                          "Posts": {
                                                                          "class": "modResource", 
                                                                          "on": "TaggerTagResource.resource = Posts.id" 
                                                                       },
                                                                       "SimpleRating": {
                                                                           "class":"SimpleRating", 
                                                                          "on": "Posts.id = SimpleRating.resource" 
                                                                       }
                                                                    }`
                                                                    &select=`{
                                                                       "TaggerTagResource": "*",
                                                                       "NameTag": "NameTag.tag, NameTag.alias",
                                                                       "Posts": "Posts.id, Posts.pagetitle, Posts.description, Posts.introtext",
                                                                       "SimpleRating":"rating_value, rating_count"
                                                                    }`
                                                                ]]
                                                                
                                                                Таким образом формируется каталог и на первый взгляд все работает, но нет… Проблема в том, что параметр &parents=`[[*id]]` теперь игнорируется. И во всех категориях отображаются все товары которые вообще есть на сайте.

                                                                С проблемой воевал сам, но решения не нашел. Буду признателен за любую помощь.
                                                                1. Влад
                                                                  13 июля 2018, 18:29
                                                                  Отбой, понял, что копипастить нехорошо. Поэтому разобрался как работает join, проанализировал лог и сделал наконец сам.

                                                                  &loadModels=`tagger, simplerating`
                                                                  &leftJoin=`{
                                                                    "TaggerTagResource": {
                                                                      "class": "TaggerTagResource", 
                                                                      "on": "modResource.id = TaggerTagResource.resource" 
                                                                    },
                                                                    "NameTag": {
                                                                      "class": "TaggerTag",
                                                                      "on": "TaggerTagResource.tag = NameTag.id" 
                                                                    },
                                                                    "SimpleRating": {
                                                                      "class": "SimpleRating", 
                                                                      "on": "modResource.id = SimpleRating.resource" 
                                                                    }
                                                                  }`
                                                                  &select=`{
                                                                    "modResource": "*",
                                                                    "TaggerTagResource": "*",
                                                                    "NameTag": "NameTag.tag, NameTag.alias",
                                                                    "SimpleRating":"rating_value, rating_count"
                                                                  }`
                                                                  
                                                                  1. Александр Мальцев
                                                                    14 июля 2018, 04:39
                                                                    Отлично!
                                                        2. Дмитрий
                                                          21 мая 2018, 22:56
                                                          Скажите, как можно реализовать вывод тегов (Tagger) в форму TicketForm, чтобы когда пользователь пишет статью смог сам выбрать теги.
                                                          Спасибо за ответ
                                                          1. Александр Мальцев
                                                            28 мая 2018, 13:47
                                                            Ответ на аналогичный вопрос есть в этом комментарии.
                                                            1. Дмитрий
                                                              28 мая 2018, 13:59
                                                              Не видел того комментария, но именно так и сделал ).
                                                              Спасибо Вам. Крутой сайт. Многое для себя тут взял!!!
                                                          2. Игорь
                                                            15 февраля 2018, 21:34
                                                            Доброго времени суток.
                                                            Подскажите, а как отсортировать теги в облаке тегов не по алфавиту, а по полую Rank?
                                                            Чтобы иметь возможность вывести метки/теги в нужном порядке редактируя Rank у каждой метки.
                                                            Спасибо заранее.
                                                            		[[!mFilter2?
                                                            			&element=`pdoResources`
                                                            			&parents=`[[*id]]`
                                                            			&limit=`10`
                                                            			&showUnpublished=`1`
                                                            			&showHidden=`1`
                                                            			&sortby=`menuindex`
                                                            			&sortdir=`DESC`
                                                            			&ajaxMode=`default`
                                                            			&includeContent=`1`
                                                            			&includeTVs=`klient-logo,klient-gorod,data-zakaza,img-zakaza,gallery-rabota,nashi-raboti`
                                                            			&filters=`
                                                            				tagger|2:nashi-raboti,
                                                            			`
                                                            			&suggestionsRadio=`tv|nashi-raboti`
                                                            			&_filterOptions=`{"autoLoad":1}`
                                                            			&showLog=`0`
                                                            			&tplOuter=`proects-filter-outer`
                                                            			&tpls=`poslednie-proekti-tpl-razdel`
                                                            			&tplFilter.outer.proects=`nashi-raboti.tpl.filter.outer`
                                                            			&tplFilter.row.proects=`nashi-raboti.tpl.filter.radio`
                                                            			&aliases=`
                                                            				tagger|2==proects`
                                                            		]]
                                                            1. Александр Мальцев
                                                              28 мая 2018, 14:13
                                                              Добрый вечер.
                                                              Попробуйте задать сортировку по этому полю в фильтре.
                                                            2. Александр
                                                              29 января 2018, 11:56
                                                              Добрый день! Возникло 2 вопроса. Надеюсь на вашу помощь, и сразу прошу прощения, если не нашел ответа здесь сам.
                                                              1. Как вывести название тега в общем списке всех статей?

                                                              Вывожу все статьи следующим образом:
                                                              {'!pdoPage' | snippet : [
                                                              'ajaxMode' => 'default',
                                                              'tpl' => '@INLINE <div>
                                                              {$pagetitle}
                                                              
                                                              <p>НАЗВАНИЕ ТЕГА: ???</p>
                                                              
                                                              <a class="btn btn-very-small" href="{$uri}">Читать</a>
                                                              </div>',
                                                              'limit' => 6,
                                                              'includeTVs' => 'blog_cover',
                                                              'tvPrefix' => '',
                                                              'includeContent' => 1,
                                                              'pageLinkScheme' => '/[[+pageVarKey]]-[[+page]]',
                                                              'tplPageWrapper' => '@INLINE <div class="col-md-12 col-sm-12 col-xs-12 text-center margin-100px-top sm-margin-50px-top position-relative wow fadeInUp" style="visibility: hidden; animation-name: none;">
                                                              <div class="pagination text-small text-uppercase text-extra-dark-gray"><ul>{$prev}{$pages}{$next}</ul></div></div>',
                                                              'tplPage' => '@INLINE <li><a href="{$href}">{$pageNo}</a></li>',
                                                              'tplPageActive' => '@INLINE <li class="active"><a href="{$href}">{$pageNo}</a></li>',
                                                              'tplPagePrev' => '@INLINE <li rel="prev"><a href="{$href}"><i class="fa fa-long-arrow-left margin-5px-right xs-display-none"></i> Назад</a></li>',
                                                              'tplPageNext' => '@INLINE <li rel="next"><a href="{$href}">Дальше <i class="fa fa-long-arrow-right margin-5px-left xs-display-none"></i></a></li>',
                                                              'tplPagePrevEmpty' => '@INLINE ',
                                                              'tplPageNextEmpty' => '@INLINE ',
                                                              'ajaxElemWrapper' => '#child_list',
                                                              'ajaxElemRows' => '#child_list .rows',
                                                              'ajaxElemPagination' => '#child_list .pagination',
                                                              'ajaxElemLink' => '#child_list .pagination a',
                                                              ]}
                                                              {$_modx->getPlaceholder('page.nav')}
                                                              
                                                              2. Как вывести название тегов в приложении collections? Т.е. там нужно добавить столбец с названием тега.
                                                              1. Александр Мальцев
                                                                28 мая 2018, 14:33
                                                                Добрый день!
                                                                1. Поместить вызов сниппета в чанк, указанный в качестве значения параметра tpl:
                                                                [[!TaggerGetTags?
                                                                  &resources=`[[+id]]`
                                                                  &rowTpl=`@INLINE <div class="btn-group"><span class="btn btn-primary btn-sm">#</span><a class="btn btn-info btn-sm" href="[[~20]]?tag=[[+alias]]">[[+tag]]</a></div>`
                                                                ]]
                                                                2. Не сталкивался с такой задачей. Можно попробовать это осуществить с помощью @Bindings.
                                                              2. Alexander F.
                                                                23 января 2018, 16:27
                                                                Если зайти в сниппет TaggerGetCurrentTag, закомментировать последнюю строку, и дописать:
                                                                return implode($tagSeparator, $tags);
                                                                А потом вызвать сниппет так:
                                                                [[!TaggerGetCurrentTag? &tagTpl=`@INLINE [[+tag]]`]]
                                                                то сниппет выведет текущий выбранный тэг.

                                                                Просто и удобно :)
                                                                1. Женя
                                                                  16 января 2018, 01:39
                                                                  Александр, приветствую. Как можно осуществить «Похожие статьи» по тегам, если:
                                                                  — в параметр GET ничего не передается (т.е. если зайти через облако тегов, формируется страница «Поиск по тегам» через GET параметр, а дальше идет сама статья, где нет параметра GET
                                                                  — тегов у статьи больше одного
                                                                  1. Александр Мальцев
                                                                    04 февраля 2018, 06:27
                                                                    Для этого GET параметр и не нужен. У страницы есть поле id. Посредством него можно узнать связанные с ним теги. А на основании них получить похожие ресурсы.
                                                                    Это сделать можно с помощью создания сниппета (например, RelatedResources).
                                                                    Код сниппета RelatedResources:
                                                                    <?php
                                                                    
                                                                    // 1. Получаем теги текущего ресурса
                                                                    $modx->addPackage('tagger', MODX_CORE_PATH . 'components/tagger/model/');
                                                                    $query = $modx->newQuery('TaggerTagResource');
                                                                    $query->where(array('resource' => $id));
                                                                    $query->select('TaggerTagResource.tag as tag, TaggerTagResource.resource as resource');
                                                                    $query->prepare();
                                                                    $query->stmt->execute();
                                                                    $rows = $query->stmt->fetchAll(PDO::FETCH_ASSOC);
                                                                    $tags = array();
                                                                    foreach ($rows as $row) {
                                                                      $tags[] = $row['tag'];
                                                                    }
                                                                    
                                                                    // 2. Получаем другие ресурсы, в которых есть полученные теги
                                                                    $query = $modx->newQuery('TaggerTagResource');
                                                                    $query->where(array('tag:IN' => $tags, 'resource:!=' => $id));
                                                                    $query->select('DISTINCT TaggerTagResource.resource as resource');
                                                                    $query->sortby('RAND()');
                                                                    $query->limit(5);
                                                                    $query->prepare();
                                                                    $query->stmt->execute();
                                                                    $rows = $query->stmt->fetchAll(PDO::FETCH_ASSOC);
                                                                    $resources = array();
                                                                    foreach ($rows as $row) {
                                                                      $resources[] = $row['resource'];
                                                                    }
                                                                    
                                                                    // 3. Получаем поля похожих ресурсов
                                                                    $query = $modx->newQuery('modResource');
                                                                    $query->where(array('id:IN' => $resources));
                                                                    $query->select('modResource.id as id, modResource.pagetitle as pagetitle');
                                                                    $query->prepare();
                                                                    $query->stmt->execute();
                                                                    $rows = $query->stmt->fetchAll(PDO::FETCH_ASSOC);
                                                                    $result = '';
                                                                    foreach ($rows as $row) {
                                                                      $result .= $modx->getChunk('tpl.RelatedResources.row',array(
                                                                        'id' => $row['id'],
                                                                        'pagetitle' => $row['pagetitle']
                                                                      ));
                                                                    }
                                                                    
                                                                    return $result;
                                                                    
                                                                    Кроме этого необходимо ещё создать чанк tpl.RelatedResources.row (для оформления строки результата):
                                                                    <li><a href="[[~[[+id]]]]">[[+pagetitle]]</a></li>
                                                                    
                                                                    Использование сниппета в шаблоне:
                                                                    <ol>
                                                                    [[!RelatedResources? 
                                                                        &id=`[[*id]]`
                                                                    ]]    
                                                                    </ol>
                                                                    
                                                                    1. wry
                                                                      18 мая 2018, 19:41
                                                                      Добрый день. Вы не подскажете, как добавить сюда TV? Хотел бы подключить изображения для выводимых ресурсов. Заранее благодарю.
                                                                      1. wry
                                                                        18 мая 2018, 20:02
                                                                        Получилось через такую конструкцию:
                                                                        [[pdoResources? 
                                                                        &parents=`0`
                                                                        &includeContent=`1`
                                                                        &tpl=`crosslink_tpl_text`
                                                                        &where=`[[TaggerGetRelatedWhere? &groups=`1`]]`
                                                                        ]]
                                                                        Может кому-то понадобится
                                                                  2. spanik
                                                                    14 октября 2017, 23:35
                                                                    Здравствуйте.
                                                                    Возникла такая проблема — после переноса папки core за пределы public_html не работает больше фильтр.
                                                                    Ошибка такая:
                                                                    msearch2/msearch2.class.php : 242) [mSearch2] Custom path is not exists: "полный путь/public_html/снова полный путь но уже правильный/core/components/msearch2/custom/filters"
                                                                    msearch2.class.php : 1135) [mSearch2] Method "getTaggerValues" not exists in class "mse2FiltersHandler". Could not retrieve filters from "tagger"
                                                                    
                                                                    Подскажите, почему так происходит? Это лечится или придется жертвовать защитой сайта?
                                                                    1. Александр Мальцев
                                                                      18 октября 2017, 14:58
                                                                      Здравствуйте.
                                                                      Жертвовать защитой сайта не стоит. Просто проверьте, как формируются пути в методе getTaggerValues. Исправьте их на правильные.
                                                                    2. ALex
                                                                      04 октября 2017, 12:07
                                                                      Добрый день. Воспользовался данным гайдом для создания тегов на сайте. Указал возможность вписывать тег именно в окне ресурса. После сохранения ресурса иногда случается зависание админки с бесконечным сохранением.
                                                                      В логах вот такая штука
                                                                      Maximum execution time of 60 seconds exceeded
                                                                      после увеличение времени ожидания вот такая
                                                                      4016661 upstream timed out (110: Connection timed out) while reading response header from upstream, client
                                                                      Premature end of script headers: index.php
                                                                      
                                                                      1. Александр Мальцев
                                                                        18 октября 2017, 15:00
                                                                        В журнале MODX есть ошибки? Если поменять расположение тегов в ресурсу, ситуация повторяется?
                                                                      2. Дмитрий
                                                                        20 сентября 2017, 13:17
                                                                        Приветствую!

                                                                        Александр, благодарю за отличное руководство – все изложено очень доступно и понятно. Класс!

                                                                        Прошу помоши по вопросу:

                                                                        Требуется вывести главный тег, который является основным для страницы.
                                                                        Например: у страницы есть теги – «Окрашивание», «Уход за волосами», «Услуги».

                                                                        Основной тег – «Уход за волосами». Выводится в одном месте шаблона

                                                                        Остальные теги – в конце статьи.

                                                                        Вопрос: как можно назначить и вывести основной тег?

                                                                        В админке теги размещаются в собственном порядке, который соответствует их id. Я посмотрел на таблицу в базе данных modx_tagger_tag_resources – там видно, что при назначении тегов они сортируются уже по порядку их присвоения к ресурсу.

                                                                        Как вариант – можно сделать вывод тегов страницы с лимитом в 1. И сортировкой от старых тегов к новым. Основным тегом будет тот, что добавлен первым. Здесь есть минус – с админки не понятно, какой тег – основной.

                                                                        Второй вариант – делать отдельно две группы тегов: одна – для основного тега, другая – для остальных, но мне кажется – это лишнее дублирование сущностей.

                                                                        Возможно сталкивались с подобной задачей – в какую сторону лучше смотреть?

                                                                        Благодарю!
                                                                        1. Александр Мальцев
                                                                          21 сентября 2017, 17:06
                                                                          Здравствуйте!

                                                                          С помощью Tagger вы такое не сможете осуществить. В Tagger нет основных тегов, есть только ранг. Ранг — это просто некоторое число, которое можно использовать для сортировки. Но оно привязано к тегу, а не к ресурсу. Поэтому использовать его для решения данной задачи не получится.

                                                                          Про сортировку не совсем понял. При назначении тега ресурсу в базу данных не сохраняется никакая временная метка, поэтому узнать какой тег был добавлен первым, а какой вторым не удастся. Компонент Tagger позволяет сортировать теги только по alias или рангу.

                                                                          Решить задачу можно различными способами, но я наверно бы сделал так. Создал бы просто какое-то дополнительное поле (например, с помощью TV). Это поле использовал бы для указания основного тега из списка уже добавленных к данному ресурсу тегов с помощью Tagger. Наполнение списка нужными значениями организовал бы посредством сниппета или использовал бы @SELECT Binding.
                                                                          1. Дмитрий
                                                                            22 сентября 2017, 15:24
                                                                            Александр, благодарю за консультацию!

                                                                            Буду реализовывать!
                                                                        2. spanika
                                                                          11 сентября 2017, 16:33
                                                                          Добрый день, совершенно не поняла, как мне сделать поиск по тегам. Установлен msearch2 и tagger

                                                                          Обычно, когда делала поиск, то вызывала дополнительные поля (чекбоксы, радиобатоны). А как сделать такую фильтрацию по tagger не понимаю. Вот предположим у меня статьи. У них есть метка «новость, статья, полезно». Как на страницу вывести все новости и дать аякс поиск по меткам?

                                                                          [[!mFilter2?
                                                                              &filters=`
                                                                              tv|vid`
                                                                              &showEmptyFilters=`1`
                                                                              &tpls=`tpl-new`
                                                                              &limit=`12`
                                                                              &parents=`[[*id]]`
                                                                              &processTVs=`1`
                                                                              &sort=`createdon:asc`
                                                                              &tvPrefix=``
                                                                              &ajaxMode=`default`
                                                                              &element=`pdoResources`
                                                                             	&includeTVs=`vid,images`
                                                                              &tplFilter.outer.vid=`tpl.mFilter2.filter.outer`
                                                                              &tplFilter.row.vid=`tpl.mFilter2.filter.checkbox`
                                                                              &aliases=`
                                                                                  tv|vid==vid`
                                                                          ]]
                                                                          
                                                                          1. Александр Мальцев
                                                                            15 сентября 2017, 15:34
                                                                            Добрый вечер.
                                                                            В mSearch2 нет готового класса-обработчика фильтров для Tagger.
                                                                            Чтобы это осуществить необходимо:
                                                                            1. Скачать класс-обработчик фильтров для mSearch2 (для работы с Tagger): yadi.sk/d/YIDLToaX3Mv5QZ.
                                                                            2. Поместить его в директорию filter (\core\components\msearch2\custom\filter\).
                                                                            3. В системных настройка в качестве значения параметра mse2_filters_handler_class ввести значение taggerCustomFilter.

                                                                            После этого использовать его так (1 — id группы):
                                                                            [[!mFilter2? 
                                                                                &filters=`
                                                                                    tagger|1:tgroup
                                                                                `
                                                                            ]]
                                                                            
                                                                            Несколько групп:
                                                                            [[!mFilter2?
                                                                                &filters=`
                                                                                    tagger|1:tgroup,
                                                                                    tagger|2:tgroup
                                                                                `
                                                                            ]]
                                                                            
                                                                            1. Игорь
                                                                              16 февраля 2018, 19:36
                                                                              Вот только не выстраиваются теги по параметру Rank. То есть, если есть тег с Ранк 1, и ему его заменить на другой, он по факту так и остаётся на той же позиции, что и до смены его Rank. В чем может быть ситуация?
                                                                          2. Сергей
                                                                            24 июля 2017, 13:30
                                                                            Добрый день!
                                                                            Подскажите пожалуйста, как сделать вывод по 1 или нескольким alias указанных в TV поле ресурса (alias указаны через запятую)?
                                                                            [[!pdoPage?
                                                                              &element = `pdoResources`
                                                                              &limit=`12`
                                                                              &loadModels=`tagger`
                                                                              &class=`TaggerTagResource`
                                                                              &leftJoin=`{
                                                                                "NameTag": {
                                                                                  "class": "TaggerTag",
                                                                                  "on": "TaggerTagResource.tag = NameTag.id"
                                                                                },
                                                                                "modResource": {
                                                                                  "class": "modResource",
                                                                                  "on": "TaggerTagResource.resource = modResource.id"
                                                                                },
                                                                                "300x225": {
                                                                                  "class":"msResourceFile",
                                                                                  "alias":"300x225",
                                                                                  "on": "300x225.resource_id = modResource.id AND 300x225.path LIKE '%/300x225/' AND 300x225.rank=0"
                                                                                },
                                                                                "Posts": {
                                                                                  "class": "modResource",
                                                                                  "on": "TaggerTagResource.resource = Posts.id"
                                                                                }
                                                                              }`
                                                                              &select=`{
                                                                                "modResource":"*",
                                                                                "300x225":"300x225.url as 300x225"
                                                                              }`
                                                                              &where=`{
                                                                                "NameTag.alias": "tag-tv",
                                                                                "Posts.published": "1"
                                                                              }`
                                                                              &sortby=`TaggerTagResource.resource`
                                                                              &sortdir=`ASC`  
                                                                              &tplWrapper =`@INLINE <p class="text-right">Всего результатов: [[+page.total]]</p><div class="catalog-menu">[[+output]]</div>`
                                                                              &tpl=`TagChunkRow`
                                                                            ]]
                                                                            
                                                                            [[!+page.nav]]
                                                                            1. Александр Мальцев
                                                                              24 июля 2017, 17:14
                                                                              Условие:
                                                                              &where=`{
                                                                                "NameTag.alias:IN": [ [[*tag-tv]] ],
                                                                                "modResource.published": "1"
                                                                              }`
                                                                              
                                                                              В ресурсе указывать теги через запятую в двойных кавычках:
                                                                              "алиас1","алиас2"
                                                                              1. Сергей
                                                                                03 августа 2017, 18:05
                                                                                Подскажите пожалуйста, как отсортировать по очерёдности как в меню админки с учетом расположения в меню родителей и про родителей?
                                                                                1. Александр Мальцев
                                                                                  06 августа 2017, 17:47
                                                                                  По умолчанию ресурсы в дереве меню выстраиваются в соответствии со значением menuindex:
                                                                                  &sortby=`modResource.menuindex`
                                                                                  &sortdir=`ASC`
                                                                                  1. Сергей
                                                                                    06 августа 2017, 20:37
                                                                                    Здравствуйте!
                                                                                    Не срабатывает, вложенность выводимых страниц от 1 до 7, menuindex родителей и всех про родителей по цепочки вверх нужно учесть при выводе. Подскажите пожалуйста решение.

                                                                                    Я так понял, это довольно частая проблема, может снипет кто напишет!
                                                                                    1. Александр Мальцев
                                                                                      08 августа 2017, 17:44
                                                                                      Здравствуйте!
                                                                                      Если ресурсов немного, то каждому ресурсу можно присвоить menuindex:
                                                                                      --ресурс (1)
                                                                                      --ресурс (2)
                                                                                      --ресурс (3)
                                                                                      --контейнер (4)
                                                                                      --ресурс (401)
                                                                                      --ресурс (402)
                                                                                      --ресурс (5)
                                                                                      --контейнер (6)
                                                                                      --ресурс (601)
                                                                                      --ресурс (602)
                                                                                      --ресурс (603)
                                                                                      --ресурс (7)

                                                                                      Если же писать какой-то алгоритм, то… Есть же ресурсы, которые не показываются в дереве. Кроме этого, частенько бывает так, что ресурсы имеют одинаковый menuindex. Кроме этого в системных настройках можно изменить поле, по которому будут сортироваться ресурсы в дереве. Т.е. нюансов много…
                                                                                      Можно просто назначать menuindex с помощью плагина при сохранении ресурса.
                                                                                      1. Сергей
                                                                                        11 августа 2017, 19:29
                                                                                        Спасибо за ответ! Ресурсов очень много и их часто перемещают по дереву нужен сниппет! Может кто сниппет создаст под любое количество вложенности?
                                                                                        1. Александр Мальцев
                                                                                          13 августа 2017, 14:57
                                                                                          Так сниппет для этого уже есть и называется он pdoMenu.
                                                                                          [[!pdoMenu?
                                                                                            &loadModels=`tagger`
                                                                                            &parents = `0`
                                                                                            &leftJoin=`{
                                                                                              "TaggerTagResource": {
                                                                                                "class": "TaggerTagResource",
                                                                                                "on": "TaggerTagResource.resource = modResource.id"
                                                                                              },
                                                                                              "TaggerTag": {
                                                                                                "class": "TaggerTag",
                                                                                                "on": "TaggerTagResource.tag = TaggerTag.id"
                                                                                              }
                                                                                            }`
                                                                                            &where=`{
                                                                                              "TaggerTag.alias": "ПСЕВДОНИМ_ТЕГА",
                                                                                              "modResource.published": "1"
                                                                                            }`
                                                                                            &sortby=`menuindex`
                                                                                            &sortdir=`ASC`
                                                                                          ]]
                                                                                          
                                                                                          1. Сергей
                                                                                            13 августа 2017, 18:42
                                                                                            Не понял в чем разница, Ваш пример с pdoMenu сортирует также, по меню индекс без учёта родителей и про радетелей!
                                                                                            1. Александр Мальцев
                                                                                              14 августа 2017, 14:54
                                                                                              Как в админке: скриншот.
                                                                                              1. Сергей
                                                                                                14 августа 2017, 18:31
                                                                                                Вот как получается
                                                                                2. Сергей
                                                                                  24 июля 2017, 23:36
                                                                                  Огромное спасибо!
                                                                              2. Сергей
                                                                                11 июля 2017, 15:46
                                                                                Здравствуйте! Подскажите пожалуйста, как добавить фотки к выборке из ms2gallery.
                                                                                Фотки вывожу на сайте используя вот такой код, не пойму как его добавить на страницу «Статьи по тегу»?
                                                                                ...
                                                                                &leftJoin=`{
                                                                                		"300x225": {"class":"msResourceFile","alias":"300x225", "on": "300x225.resource_id = modResource.id AND 300x225.path LIKE '%/300x225/' AND 300x225.rank=0"}
                                                                                	}`
                                                                                &select=`{
                                                                                		"modResource":"*"
                                                                                		,"300x225":"300x225.url as 300x225"
                                                                                	}`
                                                                                
                                                                                1. Александр Мальцев
                                                                                  13 июля 2017, 09:25
                                                                                  Не проверял, но должно быть что-то наподобие этого:
                                                                                  [[!pdoPage?
                                                                                    &element = `pdoResources`
                                                                                    &limit=`2`
                                                                                    &loadModels=`tagger`
                                                                                    &class=`TaggerTagResource`
                                                                                    &leftJoin=`{
                                                                                      "NameTag": {
                                                                                        "class": "TaggerTag",
                                                                                        "on": "TaggerTagResource.tag = NameTag.id"
                                                                                      },
                                                                                      "modResource": {
                                                                                        "class": "modResource",
                                                                                        "on": "TaggerTagResource.resource = modResource.id"
                                                                                      },
                                                                                      "300x225": {
                                                                                        "class":"msResourceFile",
                                                                                        "alias":"300x225",
                                                                                        "on": "300x225.resource_id = modResource.id AND 300x225.path LIKE '%/300x225/' AND 300x225.rank=0"
                                                                                      }
                                                                                    }`
                                                                                    &select=`{
                                                                                      "modResource":"*",
                                                                                      "300x225":"300x225.url as 300x225"
                                                                                    }`
                                                                                    &where=`{
                                                                                      "NameTag.alias": "[[!#GET.tag]]"
                                                                                    }`
                                                                                    &sortby=`TaggerTagResource.resource`
                                                                                    &sortdir=`ASC`  
                                                                                    &tplWrapper =`@INLINE <h2 class="h3">Всего результатов: [[+page.total]]</h2>[[+output]]`
                                                                                    &tpl= `chunkTagRow`
                                                                                  ]]
                                                                                  [[!+page.nav]]
                                                                                  
                                                                                  1. Сергей
                                                                                    13 июля 2017, 09:51
                                                                                    Не работает выводит Array…
                                                                                    1. Сергей
                                                                                      13 июля 2017, 10:15
                                                                                      Спасибо огромное работает!!! (не заметил tpl у меня другой)
                                                                                2. Сергей
                                                                                  06 июля 2017, 17:19
                                                                                  Добрый день!
                                                                                  Подскажите как вывести имя выбранного тега на странице «Статьи по тегу» в эту строчку

                                                                                  [[!pdoPage?
                                                                                  .....
                                                                                    &tplWrapper =`@INLINE <h2 class="h3">Всего результатов по тегу "ИМЯ ТЕГА": [[+page.total]]</h2>[[+output]]`
                                                                                  ....
                                                                                  ]]
                                                                                  [[!+page.nav]]
                                                                                  
                                                                                  1. Александр Мальцев
                                                                                    06 июля 2017, 17:29
                                                                                    [[!#GET.tag]]
                                                                                    
                                                                                    1. Сергей
                                                                                      06 июля 2017, 19:48
                                                                                      Спасибо огромное! в коментах нашел ваше решение «сниппет showTag»
                                                                                      1. Сергей
                                                                                        06 июля 2017, 17:39
                                                                                        Так выводит Псевдоним, а нужно Название
                                                                                    2. Archi
                                                                                      25 июня 2017, 15:03
                                                                                      Здравствуйте! Почему на странице «Вывод по категориям» не отображается [[+publishedon]]?!
                                                                                      Вывод в шаблоне:
                                                                                      	[[!pdoPage?
                                                                                      									  &element=`pdoResources`
                                                                                      									  &loadModels=`tagger`
                                                                                      									  &class=`TaggerTagResource`
                                                                                      									  &leftJoin=`{
                                                                                      									    "NameTag": {
                                                                                      									      "class": "TaggerTag",
                                                                                      									      "on": "TaggerTagResource.tag = NameTag.id"
                                                                                      									    },
                                                                                      									    "Posts": {
                                                                                      									      "class": "modResource",
                                                                                      									      "on": "TaggerTagResource.resource = Posts.id"
                                                                                      									    }
                                                                                      									  }`
                                                                                      									  &select=`{
                                                                                      									    "TaggerTagResource": "*",
                                                                                      									    "NameTag": "NameTag.tag, NameTag.alias",
                                                                                      									    "Posts": "Posts.id, Posts.pagetitle, Posts.description"
                                                                                      									  }`
                                                                                      									  &where=`{
                                                                                      									    "NameTag.alias": "[[!#GET.tag]]"
                                                                                      									  }`
                                                                                      									  &sortby=`TaggerTagResource.resource`
                                                                                      									  &sortdir=`ASC`  
                                                                                      									  &tplWrapper=`@INLINE <h2>Всего результатов: [[+page.total]]</h2>[[+output]]`
                                                                                      									  &tpl=`tpl-postPreview`
                                                                                      										&limit=`6`
                                                                                      										&includeTVs=`postImage`
                                                                                      										&tplPagePrev=`@INLINE <li class="control"><a href="[[+href]]"><i class="fa fa-angle-left"></i></a></li>`
                                                                                      										&tplPageNext=`@INLINE <li class="control"><a href="[[+href]]"><i class="fa fa-angle-right"></i></a></li>`
                                                                                      										&tplPageWrapper=`@INLINE <div class="pagination"><ul class="pagination">[[+prev]][[+pages]][[+next]]</ul></div>`
                                                                                      										&tplPage=`@INLINE <li class="page"><a href="[[+href]]">[[+pageNo]]</a></li>`
                                                                                      										&tplPageActive=`@INLINE <li class="page active"><a href="[[+href]]">[[+pageNo]]</a></li>`
                                                                                      										]]
                                                                                      										[[!+page.nav]]
                                                                                      
                                                                                      Tpl:
                                                                                      <div class="post-preview">
                                                                                      									<a href="[[~[[+id]]]]" class="btn post-preview-link">
                                                                                      										<div class="post-preview-image">
                                                                                      											<img src="[[!pdoField? &id=`[[+id]]` &field=`postImage`]]" alt="[[+pagetitle]]" class="responsive-img">
                                                                                      											<div class="image-plus"><i class="fa fa-plus-circle"></i></div>
                                                                                      										</div>
                                                                                      									</a>
                                                                                      									<div class="post-preview-content">
                                                                                      										<span class="post-preview-author">[[+longtitle]]</span>
                                                                                      										<span class="post-preview-title"><h2>[[+pagetitle]]</h2></span>
                                                                                      										<span class="post-preview-tag">
                                                                                      											[[TaggerGetTags?
                                                                                      											&resources=`[[+id]]`
                                                                                      											&separator=` | `
                                                                                      											&limit=`3`
                                                                                      											&rowTpl=`tpl-tagLink-article`
                                                                                      											]]
                                                                                      										</span>
                                                                                      										<span class="post-preview-date">								
                                                                                                                                                                         [[+publishedon:date=`%d.%m.%Yг.`]]
                                                                                                                                                                      </span>
                                                                                      									</div>
                                                                                      								</div>
                                                                                      
                                                                                      Даже если менять Phx для publishedon — ничего не происходит
                                                                                      1. Александр Мальцев
                                                                                        27 июня 2017, 15:07
                                                                                        Добрый день. Это связано с тем, что вы его не добавили в выборку:
                                                                                        "Posts": "Posts.id, Posts.pagetitle, Posts.description, Posts.publishedon"
                                                                                        
                                                                                      2. Серый
                                                                                        06 июня 2017, 21:39
                                                                                        Народ, а что за плэйсхолдер у этого Taggera такой [[+active]]?
                                                                                        Я его помещаю, в tpl тега, а он пустой везде.
                                                                                        Я надеялся, что можно сделать что-то на вроде активного пункта меню…
                                                                                        Вот у меня такой чанк Tpl:
                                                                                        <li><a href="[[~18]]?tag=[[+alias]]">[[+tag]]<span class="badge [[+active]]"><!--[[+countTags]]--></span></a></li>
                                                                                        
                                                                                        Что не так делаю?
                                                                                        1. Алексей
                                                                                          15 июня 2017, 12:08
                                                                                          &tpl=`@INLINE <li><a href="[[~12]]?tag=[[+alias]]" class="button small btn btn-info btn-sm [[!#GET.tag:is=`[[+tag]]`:then=`active`]]">[[+tag]]</a></li>`
                                                                                          — пробывал так, не работает
                                                                                          1. Александр Мальцев
                                                                                            17 июня 2017, 15:10
                                                                                            Попробуйте вместо @INLINE кода использовать чанк. Иначе теги которые он содержит будут обработаны до вызова pdoPage.
                                                                                            1. Алексей
                                                                                              20 июня 2017, 12:31
                                                                                              в чанк попробывал, также
                                                                                              1. Александр Мальцев
                                                                                                20 июня 2017, 15:02
                                                                                                Так тоже должно работать…
                                                                                                Попробуйте [[+tag]] заменить на [[+alias]]:
                                                                                                &tpl=`@INLINE <li><a href="[[~12]]?tag=[[+alias]]" class="button small btn btn-info btn-sm [[!#GET.tag:is=`[[+alias]]`:then=`active`]]">[[+tag]]</a></li>`
                                                                                                
                                                                                                1. Алексей
                                                                                                  20 июня 2017, 16:35
                                                                                                  пробывал, не знаю, почему то не работает. Но вам огромное спасибо, с помощью сниппета TagCloud всё получилось.
                                                                                          2. Алексей
                                                                                            15 июня 2017, 12:01
                                                                                            Вам удалось сделать активным пунктом меню? тоже самое хочу сделать, пока не получается.
                                                                                            1. Серый
                                                                                              15 июня 2017, 12:18
                                                                                              Увы… Я плюнул на эту затею и сделал отдельное дерево ресурсов, в теле каждого ресурса вывожу нужный тег, а меню формирую через PdoMenu. Активным подсвечивается, конечно, только когда внутри этого раздела, если зайдешь в публикацию актив слетает и крошек хлебных не сделать при моем уровне путёвых…
                                                                                              Буду на будущее учить ворд-впресс, а то чот никто не пишет как сделать такую же структуру как там, когда один материал может находиться в нескольких разделах и при этом разделы можно отображать в меню :((
                                                                                              1. Алексей
                                                                                                15 июня 2017, 12:31
                                                                                                ошибка
                                                                                            2. Александр Мальцев
                                                                                              07 июня 2017, 17:09
                                                                                              Плейсхолдеры устанавливают в основном сниппеты. Для того чтобы использовать плейсхолдер active, его нужно установить.
                                                                                              1. Алексей
                                                                                                15 июня 2017, 12:44
                                                                                                Уточните как можно плейсхолдер active установить?
                                                                                                1. Александр Мальцев
                                                                                                  17 июня 2017, 17:00
                                                                                                  Например, создания облака тегов (без использования сторонних дополнений):
                                                                                                  1. Сниппет TagCloud:
                                                                                                  <?php
                                                                                                  $modx->addPackage('tagger', MODX_CORE_PATH . 'components/tagger/model/');
                                                                                                  $query = $modx->newQuery('TaggerTag');
                                                                                                  $query->leftJoin('TaggerTagResource','Resources');
                                                                                                  $query->select('TaggerTag.tag as tag, TaggerTag.alias as alias, COUNT(Resources.tag) as countTags');
                                                                                                  $query->groupby('TaggerTag.id');
                                                                                                  $query->sortby('TaggerTag.tag','ASC');
                                                                                                  $query->prepare();
                                                                                                  $query->stmt->execute();
                                                                                                  $rows = $query->stmt->fetchAll(PDO::FETCH_ASSOC);
                                                                                                  if (isset($_GET['tag'])) {
                                                                                                    $tag = filter_var($_GET['tag'], FILTER_SANITIZE_STRING);
                                                                                                  }
                                                                                                  $output = '';
                                                                                                  foreach ($rows as $row) {
                                                                                                    // устанавливаем параметр (плейсхолдер) active, который будет доступен в чанке TagCloudRow
                                                                                                    if (isset($tag)) {
                                                                                                      if ($row['alias']===$tag) {
                                                                                                        $row['active'] = ' active';
                                                                                                      } else {
                                                                                                        $row['active'] = '';      
                                                                                                      }
                                                                                                    }
                                                                                                    // формируем тег для облака (передаём чанку необходимые параметры, включая active)
                                                                                                    $output .= $modx->getChunk('TagCloudRow',array(
                                                                                                      'tag' => $row['tag'],
                                                                                                      'alias' => $row['alias'],
                                                                                                      'countTags' => $row['countTags'],
                                                                                                      'active' => $row['active']
                                                                                                    ));
                                                                                                  }
                                                                                                  
                                                                                                  $output = $modx->getChunk('TagCloudOuter',array(
                                                                                                    'output' => $output  
                                                                                                  ));
                                                                                                  
                                                                                                  return $output;
                                                                                                  
                                                                                                  2. Чанк TagCloudRow:
                                                                                                  <a href="[[~20]]?tag=[[+alias]]" class="btn btn-primary">[[+tag]] <span class="badge[[+active]]">[[+countTags]]</span></a> 
                                                                                                  
                                                                                                  3. Чанк TagCloudOuter:
                                                                                                  <div class="panel panel-primary"><div class="panel-heading"><span class="glyphicon glyphicon-tags"></span> Теги</div><div class="panel-body">[[+output]]</div></div> 
                                                                                                  
                                                                                                  Причём скорость работы этого решения будет выше (т.к. ничего не используем лишнего). Да, и количество запросов к базе будет намного меньше.
                                                                                                  1. Сергей
                                                                                                    12 июля 2017, 16:54
                                                                                                    Подскажите пожалуйста, как передавать в ваш снипет ID группы тегов для выборки?
                                                                                                    [[TagCloud?
                                                                                                    ...???
                                                                                                    ]]
                                                                                                    1. Александр Мальцев
                                                                                                      13 июля 2017, 09:13
                                                                                                      Добавить в сниппет условие where:
                                                                                                      if (isset($group)) {
                                                                                                        $query->where(array('group' => $group));  
                                                                                                      }
                                                                                                      
                                                                                                      После этого передавать в сниппет необходимое значение (id группы):
                                                                                                      [[!TagCloud? &group=`1`]]
                                                                                                      
                                                                                                      1. Сергей
                                                                                                        13 июля 2017, 09:32
                                                                                                        Добрый день! Не срабатывает, выводит все.
                                                                                                        [[!TagCloud? &group=`2`]]
                                                                                                        <?php
                                                                                                        $modx->addPackage('tagger', MODX_CORE_PATH . 'components/tagger/model/');
                                                                                                        $query = $modx->newQuery('TaggerTag');
                                                                                                        $query->leftJoin('TaggerTagResource','Resources');
                                                                                                        $query->select('TaggerTag.tag as tag, TaggerTag.alias as alias, COUNT(Resources.tag) as countTags');
                                                                                                        $query->groupby('TaggerTag.id');
                                                                                                        $query->sortby('TaggerTag.tag','ASC');
                                                                                                        $query->prepare();
                                                                                                        $query->stmt->execute();
                                                                                                        $rows = $query->stmt->fetchAll(PDO::FETCH_ASSOC);
                                                                                                        if (isset($group)) {
                                                                                                          $query->where(array('group' => $group));  
                                                                                                        }
                                                                                                        if (isset($_GET['tag'])) {
                                                                                                          $tag = filter_var($_GET['tag'], FILTER_SANITIZE_STRING);
                                                                                                        }
                                                                                                        $output = '';
                                                                                                        foreach ($rows as $row) {
                                                                                                        
                                                                                                          if (isset($tag)) {
                                                                                                            if ($row['alias']===$tag) {
                                                                                                              $row['active'] = ' active';
                                                                                                            } else {
                                                                                                              $row['active'] = '';
                                                                                                            }
                                                                                                          }
                                                                                                        
                                                                                                          $output .= $modx->getChunk('TagCloudRow',array(
                                                                                                            'tag' => $row['tag'],
                                                                                                            'alias' => $row['alias'],
                                                                                                            'countTags' => $row['countTags'],
                                                                                                            'active' => $row['active']
                                                                                                          ));
                                                                                                        }
                                                                                                        
                                                                                                        $output = $modx->getChunk('TagCloudOuter',array(
                                                                                                          'output' => $output  
                                                                                                        ));
                                                                                                        
                                                                                                        return $output;
                                                                                                        1. Александр Мальцев
                                                                                                          13 июля 2017, 09:38
                                                                                                          Условие добавили не туда.
                                                                                                          <?php
                                                                                                          $modx->addPackage('tagger', MODX_CORE_PATH . 'components/tagger/model/');
                                                                                                          $query = $modx->newQuery('TaggerTag');
                                                                                                          $query->leftJoin('TaggerTagResource','Resources');
                                                                                                          if (isset($group)) {
                                                                                                            $query->where(array('group' => $group));  
                                                                                                          }
                                                                                                          ...
                                                                                                          
                                                                                                          1. Сергей
                                                                                                            18 июля 2017, 17:49
                                                                                                            Подскажите пожалуйста ещё, как убрать в облаке тегов не Опубликованные ресурсы (количество)?
                                                                                                            1. Александр Мальцев
                                                                                                              19 июля 2017, 14:46
                                                                                                              Необходимо присоединить таблицу modResource и добавить условие:
                                                                                                              <?php
                                                                                                              $modx->addPackage('tagger', MODX_CORE_PATH . 'components/tagger/model/');
                                                                                                              $query = $modx->newQuery('TaggerTag');
                                                                                                              $query->innerJoin('TaggerTagResource','Resources');
                                                                                                              $query->leftJoin('modResource', 'modResource', "Resources.resource = modResource.id");
                                                                                                              if (isset($group)) {
                                                                                                                $query->where(array('group' => $group));  
                                                                                                              }
                                                                                                              $query->where(array('modResource.published' => 1));
                                                                                                              $query->select('TaggerTag.tag as tag, TaggerTag.alias as alias, COUNT(Resources.tag) as countTags');
                                                                                                              ...
                                                                                                              
                                                                                                              1. Сергей
                                                                                                                19 июля 2017, 22:32
                                                                                                                Всё работает отлично!!! Спасибо за Ваш труд и помощь! Поддержу сайт!
                                                                                                                1. Александр Мальцев
                                                                                                                  20 июля 2017, 08:21
                                                                                                                  Спасибо!
                                                                                                            2. Сергей
                                                                                                              13 июля 2017, 09:44
                                                                                                              Спасибо! Работает и ещё один вопрос как отключить пустые теги (у которых 0)?
                                                                                                              1. Александр Мальцев
                                                                                                                13 июля 2017, 10:03
                                                                                                                Замените leftJoin на innerJoin.
                                                                                                                1. Игорь
                                                                                                                  24 сентября 2020, 21:19
                                                                                                                  А у меня почему то везде работает, кроме одной страницы: основной раздел.
                                                                                                                  Почему-то показывает пустые и неправильно, соответственно, считает кол-во ресурсов с ними.
                                                                                                                  Вывожу так:
                                                                                                                  [[!pdoResources?
                                                                                                                                      &limit=`0`
                                                                                                                                      &loadModels=`tagger`
                                                                                                                                      &class=`TaggerTag`
                                                                                                                                      &innerJoin=`{
                                                                                                                                          "TaggerTagResources": {
                                                                                                                                          "class": "TaggerTagResource",
                                                                                                                                          "on": "TaggerTag.id = TaggerTagResources.tag"
                                                                                                                                          }
                                                                                                                                      }`
                                                                                                                                      &select=`{
                                                                                                                                          "TaggerTag": "*",
                                                                                                                                          "TaggerTagResources": "COUNT(TaggerTagResources.tag) as countTags"
                                                                                                                                      }`
                                                                                                                                      &groupby=`TaggerTag.id`
                                                                                                                                      &sortby=`TaggerTag.tag`
                                                                                                                                      &sortdir=`ASC` 
                                                                                                                                      &tpl=`tag-cloud-tpl`
                                                                                                                  ]]
                                                                                                                  
                                                                                                                  1. Александр Мальцев
                                                                                                                    25 сентября 2020, 14:11
                                                                                                                    Может у ресурса флажок «Кэшируемый» установлен?
                                                                                                                    1. Игорь
                                                                                                                      25 сентября 2020, 14:16
                                                                                                                      Да, именно так :-) Написал тут, и потом сразу же дошло) Спасибо за ответ.
                                                                                                                      Тут еще вопрос заодно: как присвоить активному тегу класс? :-)
                                                                                                                      1. Александр Мальцев
                                                                                                                        25 сентября 2020, 15:25
                                                                                                                        Для этого нужно в чанке сравнить tag с тем который у вас запросе и добавить в класс active.
                                                                                                                        В комментариях есть пример сниппета TagCloud. Он позволяет создать облако тегов и присвоить активному тегу класс active.
                                                                                                                        1. Игорь
                                                                                                                          25 сентября 2020, 15:34
                                                                                                                          Благодарю.
                                                                                                                  2. Сергей
                                                                                                                    13 июля 2017, 10:09
                                                                                                                    Спасибо всё работает отлично!!!
                                                                                                        2. Алексей
                                                                                                          20 июня 2017, 13:04
                                                                                                          спасибо, так и сделал.
                                                                                                  2. Алексей
                                                                                                    31 мая 2017, 17:15
                                                                                                    Доброго дня, уже всю голову сломал. Вывожу теги на текущей странице. И хочу, чтобы текущая страница исключалась при выводе, т.к. она является контейнером. Подскажите пожалуйста.
                                                                                                    Вывожу так:
                                                                                                    [[!pdoPage?
                                                                                                      &element = `pdoResources`
                                                                                                      &limit=`10`
                                                                                                      &loadModels=`tagger`
                                                                                                      &class=`TaggerTagResource`
                                                                                                      &leftJoin=`{
                                                                                                        "NameTag": {
                                                                                                          "class": "TaggerTag",
                                                                                                          "on": "TaggerTagResource.tag = NameTag.id"
                                                                                                        },
                                                                                                        "Posts": {
                                                                                                          "class": "modResource",
                                                                                                          "on": "TaggerTagResource.resource = Posts.id"
                                                                                                        }
                                                                                                      }`
                                                                                                      &select=`{
                                                                                                        "TaggerTagResource": "*",
                                                                                                        "NameTag": "NameTag.tag, NameTag.alias",
                                                                                                        "Posts": "Posts.id, Posts.pagetitle, Posts.description, Posts.introtext, Posts.publishedon"
                                                                                                      }`
                                                                                                      &where=`{
                                                                                                        "NameTag.alias": "[[!#GET.tag]]"
                                                                                                      }`
                                                                                                      &sortby=`publishedon`
                                                                                                      &includeContent=`1`
                                                                                                    &includeTVs=`image_post`
                                                                                                    &processTVs=`1`
                                                                                                    &pageNavVar=`podrazdel.navi`
                                                                                                    &pageVarKey=`podrazdel`
                                                                                                    
                                                                                                      &tpl= `menu_chunkTagRow`
                                                                                                      &tplPage=`	@INLINE <li><a class="page" href="[[+href]]">[[+pageNo]]</a></li>`
                                                                                                    &tplPageWrapper=`	@INLINE <div class="pagination"><ul class="pagination">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul></div>`
                                                                                                    &tplPageActive=`	@INLINE <li class="active"><a class="page active" href="[[+href]]">[[+pageNo]]</a></li>`
                                                                                                    &tplPageFirst=`	@INLINE <li class="control"><a class="button" href="[[+href]]">Первая</a></li>`
                                                                                                    &tplPageLast=`	@INLINE <li class="control"><a class="button" href="[[+href]]">Последняя</a></li>`
                                                                                                    &tplPagePrev=`	@INLINE <li class="control"><a class="button small" href="[[+href]]">назад</a></li>`
                                                                                                    &tplPageNext=`	@INLINE <li class="control"><a class="button small" href="[[+href]]">вперед</a></li>`
                                                                                                    &tplPageSkip=`	@INLINE <li class="disabled"><span>...</span></li>`
                                                                                                    &tplPageFirstEmpty=`	@INLINE <li class="control"><span class="button disabled">Первая</span></li>`
                                                                                                    &tplPageLastEmpty=`	@INLINE <li class="control"><span class="button disabled">Последняя</span></li>`
                                                                                                    &tplPagePrevEmpty=`	@INLINE <li class="disabled"><span class="button small disabled">назад</span></li>`
                                                                                                    &tplPageNextEmpty=`	@INLINE <li class="disabled"><span class="button small disabled">вперед</span></li>`
                                                                                                    ]]
                                                                                                    1. Александр Мальцев
                                                                                                      31 мая 2017, 17:26
                                                                                                      Добавьте в условие parent (например, только ресурсы, имеющие в качестве родителя ресурс с id=5).
                                                                                                      &where=`{
                                                                                                        "NameTag.alias": "[[!#GET.tag]]",
                                                                                                        "Posts.parent" : 5
                                                                                                      }`
                                                                                                      
                                                                                                      1. Алексей
                                                                                                        31 мая 2017, 17:32
                                                                                                        &where=`{
                                                                                                            "NameTag.alias": "[[!#GET.tag]]",
                                                                                                            "modResource.parent:=":"-5"
                                                                                                          }`
                                                                                                        Так?
                                                                                                        1. Александр Мальцев
                                                                                                          31 мая 2017, 17:43
                                                                                                          Чтобы просто исключить ресурс:
                                                                                                          &where=`{
                                                                                                            "NameTag.alias": "[[!#GET.tag]]",
                                                                                                            "Posts.id:!=": "5"
                                                                                                          }`
                                                                                                          
                                                                                                          1. Алексей
                                                                                                            01 июня 2017, 09:29
                                                                                                            Доброго дня, если несколько ресурсов? Попытался через запятую указать, так не работает. Получается, что работает только на ресурс под id 5, остальные почему-то игнорирует.
                                                                                                            &where=`{
                                                                                                              "NameTag.alias": "[[!#GET.tag]]",
                                                                                                              "Posts.parent" : 5,6,7
                                                                                                            }`
                                                                                                            1. Александр Мальцев
                                                                                                              01 июня 2017, 16:54
                                                                                                              Добрый! Необходимо использовать IN:
                                                                                                              "Posts.parent:IN": [5,6,7]
                                                                                                              
                                                                                                              1. Алексей
                                                                                                                01 июня 2017, 16:55
                                                                                                                Спасибо
                                                                                                          2. Алексей
                                                                                                            31 мая 2017, 17:36
                                                                                                            Круто, спасибо!!!
                                                                                                            1. Алексей
                                                                                                              31 мая 2017, 17:54
                                                                                                              Возможно, чтобы тег title страницу менялся при поиске по тегу?
                                                                                                              1. Александр Мальцев
                                                                                                                01 июня 2017, 16:56
                                                                                                                При формировании на сервере можно так:
                                                                                                                <title>Поиск по тегу [[!#GET.tag]]</title>
                                                                                                                
                                                                                                                1. Amsterdam
                                                                                                                  28 марта 2019, 18:16
                                                                                                                  Выводит. Но английское url. А что бы именно название тега на кириллице?
                                                                                                                  1. Александр Мальцев
                                                                                                                    29 марта 2019, 15:23
                                                                                                                    Для этого нужно выбрать, например, посредством pdoResources alias тега по tag:
                                                                                                                    [[!pdoResources?
                                                                                                                      &loadModels=`tagger`
                                                                                                                      &class=`TaggerTag`
                                                                                                                      &select=`{"TaggerTag": "alias as alias"}`
                                                                                                                      &sortby=`TaggerTag.alias`
                                                                                                                      &where = `{"TaggerTag.tag":"[[#GET.tag]]"}`
                                                                                                                      &tpl = `@INLINE [[+alias]]`
                                                                                                                      &limit = `1`
                                                                                                                    ]]
                                                                                                                    
                                                                                                      2. Anton
                                                                                                        16 мая 2017, 14:37
                                                                                                        Добрый день.
                                                                                                        Подскажите пожалуйста не разумному)!,
                                                                                                        а как при помощи такого вывода в pdoResources,
                                                                                                        с использованием &select указать, что мне нужно выводить и tv параметры.
                                                                                                        И можно-ли вообще это сделать.
                                                                                                        Я хочу чтобы статьи относящиеся к данному тегу выводились с изображениями.

                                                                                                        Стандартным вызовом &includeTVs=`img-article,title-img` tv параметры не выводятся,
                                                                                                        как их правильно указать в &select?

                                                                                                        Заранее спасибо!!!
                                                                                                        1. Александр Мальцев
                                                                                                          16 мая 2017, 16:28
                                                                                                          Добрый! Перед тем как что-то выбирать из таблицы, её сначала необходимо присоединить (например, с помощью leftJoin). Стандартным способом это может не работать, когда в качестве базового класса используется не modResource, а какой-то другой класс… Синтаксис формата leftJoin будет зависеть от того, какой вы используете запрос.
                                                                                                          1. Anton
                                                                                                            16 мая 2017, 18:17
                                                                                                            Спасибо.
                                                                                                            Только сразу другие вопросы возникли.
                                                                                                            Почему в принципе в случае если в сниппете pdoResources используется
                                                                                                            &select, то стандартный &includeTVs=`tv-1,tv-2`, не выводит эти параметры.
                                                                                                            И где можно посмотреть в какой таблице находятся tv параметры и синтаксис,
                                                                                                            как эту таблицу можно подключить и потом использовать её элементы?
                                                                                                            1. Александр Мальцев
                                                                                                              17 мая 2017, 14:02
                                                                                                              Например, в сниппете, с помощью которого мы осуществляем вывод статьей по тегу, в качестве базового класса используется не ресурс (modResource), а TaggerTagResource. У данного класса (таблицы) нет никаких TV полей, поэтому выбрать их нельзя. Если вы хотите в этом разобраться, то почитайте статью про xPDO. xPDO — это основа, на которой положена работа всей системы MODX. Но, также не помешают знания по SQL и PDO.
                                                                                                              Посмотреть таблицы MODX можно, например, с помощью инструмента phpMyAdmin.
                                                                                                              Добавления TV (id которого равно 1) к сниппету, с помощью которого осуществляется выбор статей по тегу, будет выполняться так:
                                                                                                              [[!pdoPage?
                                                                                                                &element = `pdoResources`
                                                                                                                &loadModels=`tagger`
                                                                                                                &class=`TaggerTagResource`
                                                                                                                &leftJoin=`{
                                                                                                                  "NameTag": {
                                                                                                                    "class": "TaggerTag",
                                                                                                                    "on": "TaggerTagResource.tag = NameTag.id"
                                                                                                                  },
                                                                                                                  "Posts": {
                                                                                                                    "class": "modResource",
                                                                                                                    "on": "TaggerTagResource.resource = Posts.id"
                                                                                                                  },
                                                                                                                  "TV1": {
                                                                                                                    "class": "modTemplateVarResource",
                                                                                                                    "on": "Posts.id = TV1.contentid and TV1.tmplvarid = 1"
                                                                                                                  }
                                                                                                                }`
                                                                                                                &select=`{
                                                                                                                  "TaggerTagResource": "*",
                                                                                                                  "NameTag": "NameTag.tag, NameTag.alias",
                                                                                                                  "Posts": "Posts.id, Posts.pagetitle, Posts.description",
                                                                                                                  "TV1": "TV1.value as tv1"
                                                                                                                }`
                                                                                                                ...
                                                                                                              
                                                                                                              В чанке chunkTagRow получить значение поля tv1 можно так:
                                                                                                              <p>Значение TV1: [[+tv1]]</p>
                                                                                                              
                                                                                                              Если вам необходимо выбрать ещё одно TV:
                                                                                                              "TV1": {
                                                                                                                "class": "modTemplateVarResource",
                                                                                                                "on": "Posts.id = TV1.contentid and TV1.tmplvarid = 1"
                                                                                                              },
                                                                                                              "TV2": {
                                                                                                                "class": "modTemplateVarResource",
                                                                                                                "on": "Posts.id = TV2.contentid and TV2.tmplvarid = 5"
                                                                                                              }
                                                                                                              ...
                                                                                                              &select=`{
                                                                                                                "TaggerTagResource": "*",
                                                                                                                "NameTag": "NameTag.tag, NameTag.alias",
                                                                                                                "Posts": "Posts.id, Posts.pagetitle, Posts.description",
                                                                                                                "TV1": "TV1.value as tv1",
                                                                                                                "TV2": "TV2.value as tv2",
                                                                                                              }`
                                                                                                              ...
                                                                                                              
                                                                                                              1. Anton
                                                                                                                17 мая 2017, 14:17
                                                                                                                Спасибо большое!
                                                                                                        2. Валерий
                                                                                                          07 мая 2017, 17:56
                                                                                                          Хочу уточнить (только что протестил).
                                                                                                          Понял, что Tagger перестал работать с кириллицей. На другом проекте и на старой своей версии он спокойно преобразовывал кириллицу в латиницу. Теперь Tagger для первого тега создает псевдоним "-1", для второго " " (пустая строка), а дальше начинает бесконечно сохранять материал, как бы намекая, что ничего у меня не выйдет :)
                                                                                                          1. Александр Мальцев
                                                                                                            10 мая 2017, 13:11
                                                                                                            Есть такая ошибка. Об этом разработчику компонента уже сообщили (https://github.com/modxcms/Tagger/issues/105). Самое простое решение (пока автор не обновит компонент) откатиться на старую его версию Tagger (1.8).
                                                                                                          2. Валерий
                                                                                                            07 мая 2017, 17:26
                                                                                                            Добрый день!

                                                                                                            Такой вопрос: вы уже пользовались новой версией Tagger? Т.е. последним его обновлением.
                                                                                                            Дело в том, что он перестал формировать «псевдоним», когда добавляется новый тег. Я ставил его на чистую систему, кеш очищал, переустанавливал. НО, после добавления второго тега (да, именно второго рандомного тега), третий в таблице в колонке «псевдоним» показывает -1 и все. Тега нет, сохранить он его не может.

                                                                                                            Вручную я могу поменять псевдоним и все работает, но это же не дело… Возможно, вы уже нашли решение?
                                                                                                            1. alex87.ru
                                                                                                              22 апреля 2017, 20:36
                                                                                                              Спасибо за статью. Подскажите пожалуйста что добавить в ваш код (прикреплен ниже) для вывода облака тегов, чтобы выводились не все теги, а только теги к примеру из 2й группы (пусть ее имя будет tag2)

                                                                                                              [[!pdoResources?
                                                                                                                &loadModels=`tagger`
                                                                                                                &class=`TaggerTag`
                                                                                                                &leftJoin=`{
                                                                                                                  "TaggerTagResources": {
                                                                                                              	  "class": "TaggerTagResource",
                                                                                                              	  "on": "TaggerTag.id = TaggerTagResources.tag"
                                                                                                                  }
                                                                                                                }`
                                                                                                                &select=`{
                                                                                                                  "TaggerTag": "*",
                                                                                                              	  "TaggerTagResources": "COUNT(TaggerTagResources.tag) as countTags"
                                                                                                              	}`
                                                                                                                &groupby=`TaggerTag.id`
                                                                                                                &sortby=`TaggerTag.tag`
                                                                                                                &sortdir=`ASC`  
                                                                                                                &tplWrapper=`@INLINE <div class="panel panel-primary"><div class="panel-heading"><span class="glyphicon glyphicon-tags"></span> Теги</div><div class="panel-body">[[+output]]</div></div>`
                                                                                                                &tpl=`@INLINE <a href="[[~20]]?tag=[[+alias]]" class="btn btn-primary">[[+tag]] <span class="badge">[[+countTags]]</span></a>`
                                                                                                              ]]
                                                                                                              1. Александр Мальцев
                                                                                                                23 апреля 2017, 15:18
                                                                                                                Для выбора тегов из определённой группы по её id (например, 2), добавьте в запрос условие:
                                                                                                                &where=`{
                                                                                                                  "TaggerTag.group": "2"
                                                                                                                }`
                                                                                                                
                                                                                                                1. alex87.ru
                                                                                                                  24 апреля 2017, 19:46
                                                                                                                  Спасибо) Помогло)
                                                                                                              2. Женёк
                                                                                                                03 апреля 2017, 22:55
                                                                                                                Нужна помощь!

                                                                                                                Есть Категория (id 8)

                                                                                                                В ней есть ресурсы. У ресурсов указаны теги:
                                                                                                                Проект 1 (тег1 = id1)
                                                                                                                Проект 2 (тег2 = id2)


                                                                                                                Есть ресурсы, у каждого из которых в tv (tags_tv) указан id тега.
                                                                                                                В этих ресурсах нужно вывести все проекты, с id тега, который в tv указан.

                                                                                                                Должно получиться что то вроде такого:
                                                                                                                {'!pdoResources' | snippet : [
                                                                                                                            'parents' => '8',
                                                                                                                            'limit' => '0',
                                                                                                                            'includeTVs' => 'preview_portfolio_tv,tags_tv',
                                                                                                                            'tvPrefix' => '',
                                                                                                                            'processTVs' => '1',
                                                                                                                            'where' => '[[!TaggerGetResourcesWhere? &tags=`[[*tags_tv]]`]]',
                                                                                                                            'tpl' => 'portfolio_row.tpl'
                                                                                                                ]}
                                                                                                                
                                                                                                                1. Александр Мальцев
                                                                                                                  05 апреля 2017, 16:16
                                                                                                                  Попробуйте сделать следующее. Подсоединить к запросу с помощью leftJoin ещё два класса (таблицы) TaggerTagResource и TaggerTag. После этого у вас будут доступны теги ресурсов. Теперь просто изменить условие where на следующее (выберем только те ресурсы, у которых (alias или tag) имеет значение tags_tv текущего ресурса):
                                                                                                                  "TaggerTag.alias": "[[*tags_tv]]"
                                                                                                                  
                                                                                                                  1. Женёк
                                                                                                                    05 апреля 2017, 17:10
                                                                                                                    Не могли бы вы подробнее написать как leftJoin составить правильно?
                                                                                                                    Для меня пока сложно все это.
                                                                                                                    1. Александр Мальцев
                                                                                                                      06 апреля 2017, 15:53
                                                                                                                      В статье и комментариях много разных примеров.
                                                                                                                      Не совсем понятно, что у вас и с чем там как связано.
                                                                                                                      Например, для того чтобы получить все ресурсы, у которых родитель имеет id = 8 и один из тегов равен bootstrap будет так:
                                                                                                                      [[!pdoResources?
                                                                                                                        &loadModels=`tagger`
                                                                                                                        &class=`modResource`
                                                                                                                        &parents=`8`
                                                                                                                        &leftJoin=`{
                                                                                                                          "TaggerTagResource": {
                                                                                                                            "class": "TaggerTagResource",
                                                                                                                            "on": "TaggerTagResource.resource = modResource.id"
                                                                                                                          },
                                                                                                                          "TaggerTag": {
                                                                                                                            "class": "TaggerTag",
                                                                                                                            "on": "TaggerTag.id = TaggerTagResource.tag"
                                                                                                                          }
                                                                                                                        }`
                                                                                                                        &select=`{
                                                                                                                          "modResource": "*",
                                                                                                                          "TaggerTag": "TaggerTag.tag, TaggerTag.alias"
                                                                                                                        }`
                                                                                                                        &where=`{
                                                                                                                          "TaggerTag.tag": "bootstrap"
                                                                                                                        }`
                                                                                                                        &sortdir=`ASC`  
                                                                                                                        &tplWrapper =`@INLINE Всего результатов: [[+page.total]]
                                                                                                                      <ul>[[+output]]</ul>`
                                                                                                                        &tpl= `@INLINE <li>[[+pagetitle]]</li>`
                                                                                                                        &showLog=`1`
                                                                                                                      ]]
                                                                                                                      
                                                                                                                      1. Женёк
                                                                                                                        06 апреля 2017, 16:35
                                                                                                                        Все правильно вы поняли.
                                                                                                                        Спасибо огромное, все работает как надо!
                                                                                                                2. atszenara
                                                                                                                  28 февраля 2017, 16:47
                                                                                                                  Вопрос на миллион)) Как сделать добавление тегов при создании тикета с фронта?
                                                                                                                  1. Александр Мальцев
                                                                                                                    08 марта 2017, 16:40
                                                                                                                    В этом случае теги лучше организовать с помощью TV, т.к. сниппет TicketForm по умолчанию с ними работает.
                                                                                                                    Для этого необходимо будет создать копию чанка tpl.Tickets.form.create, например, под именем tplTicketsFormCreate. Открыть его и в HTML форму добавить input с именем созданного TV-поля (например, tags).
                                                                                                                    <div class="form-group">
                                                                                                                      <label for="ticket-tags">Теги</label>
                                                                                                                      <input type="text" class="form-control" placeholder="[[%ticket_tags]]" name="tags" value="" maxlength="150" id="ticket-tags">
                                                                                                                      <span class="error"></span>
                                                                                                                    </div>
                                                                                                                    
                                                                                                                    После указать имя TV-поля в вызове сниппета TicketForm:
                                                                                                                    [[!TicketForm? 
                                                                                                                      &allowedFields=`tags`
                                                                                                                      &tplFormCreate=`tplTicketsFormCreate`
                                                                                                                    ]]
                                                                                                                    
                                                                                                                  2. Сергей
                                                                                                                    16 февраля 2017, 13:57
                                                                                                                    Добрый день, спасибо за очень полезную статью! Решил ею воспользоваться, но возникла проблема, и был бы очень благодарен, если бы помогли.

                                                                                                                    Есть магазин на miniShop2 + Babel (2 языка). Хочу вывести в сайдбар TagCloud по товарам, чтобы можно было отдельно фильтровать по тегам. Установил Tagger и добавил каждому товару Теги на разном языке.

                                                                                                                    В сайдбаре теги вывожу для каждого контекста (языка) свои:
                                                                                                                    [[TaggerGetTags? &outTpl=`tag_links_wrap_tpl` &contexts=`[[*context_key]]` &rowTpl=`tag_links_tpl`]]
                                                                                                                    А вот результат по тегу вывожу так:
                                                                                                                    [[!pdoPage?
                                                                                                                      &element = `msProducts`
                                                                                                                      &limit=`2`
                                                                                                                      &loadModels=`tagger`
                                                                                                                      &includeContent=`introtext`
                                                                                                                      &includeThumbs=`220x294`
                                                                                                                      &class=`TaggerTagResource`
                                                                                                                      &leftJoin=`{
                                                                                                                        "NameTag": {
                                                                                                                          "class": "TaggerTag",
                                                                                                                          "on": "TaggerTagResource.tag = NameTag.id"
                                                                                                                        },
                                                                                                                        "Posts": {
                                                                                                                          "class": "modResource",
                                                                                                                          "on": "TaggerTagResource.resource = Posts.id"
                                                                                                                        }
                                                                                                                      }`
                                                                                                                      &select=`{
                                                                                                                        "TaggerTagResource": "*",
                                                                                                                        "NameTag": "NameTag.tag, NameTag.alias",
                                                                                                                        "Posts": "Posts.id, Posts.pagetitle, Posts.description"
                                                                                                                      }`
                                                                                                                      &where=`{
                                                                                                                        "NameTag.alias": "[[!#GET.tag]]"
                                                                                                                      }`
                                                                                                                      &sortby=`TaggerTagResource.resource`
                                                                                                                      &sortdir=`ASC`  
                                                                                                                      &tplWrapper =`@INLINE <h2 class="h3">Всего результатов: [[+page.total]]</h2>[[+output]]`
                                                                                                                      &tpl= `Prod_List_Tpl`
                                                                                                                    ]]
                                                                                                                    Когда использую &element=`msProducts`ничего не выводится, а если ставлю pdoResources, то результат выводится, но не видно Цены [[+price]] и КартинкиПревью [[+thumb]] которые, скорее всего, есть только в msProducts. &includeThumbs=`220x294` только у msProducts есть.

                                                                                                                    Можно как то соединить pdoPage с msProducts и tagger?
                                                                                                                    1. Александр Мальцев
                                                                                                                      18 февраля 2017, 02:21
                                                                                                                      Исходя из модели необходимо вместо modResource просто использовать msProduct. Параметр element не надо изменять, здесь необходимо указывать сниппет (например, pdoResources) который будет выполнять выборку данных.
                                                                                                                      "Posts": {
                                                                                                                        "class": "msProduct",
                                                                                                                        "on": "TaggerTagResource.resource = Posts.id"
                                                                                                                      }
                                                                                                                      1. Сергей
                                                                                                                        21 февраля 2017, 13:05
                                                                                                                        Спасибо Александр!
                                                                                                                        Результат вывода теперь выводится правильно, вот только без цены и картинки как и было раньше, но после часа поисков нашел решение. Нужно было добавить в &leftJoin msProductData и в &select уже добавить Data.price, Data.thumb.
                                                                                                                        Вот может кому понадобиться:

                                                                                                                        [[!pdoPage?
                                                                                                                          &element = `pdoResources`
                                                                                                                          &limit=`2`
                                                                                                                          &loadModels=`tagger`
                                                                                                                          &class=`TaggerTagResource`
                                                                                                                          &leftJoin=`{
                                                                                                                            "NameTag": {
                                                                                                                              "class": "TaggerTag",
                                                                                                                              "on": "TaggerTagResource.tag = NameTag.id"
                                                                                                                            },
                                                                                                                            "Posts": {
                                                                                                                              "class": "msProduct",
                                                                                                                              "on": "TaggerTagResource.resource = Posts.id"
                                                                                                                            },
                                                                                                                            "Data": {
                                                                                                                              "class": "msProductData",
                                                                                                                              "on": "TaggerTagResource.resource = Data.id"
                                                                                                                            }
                                                                                                                          }`
                                                                                                                          &select=`{
                                                                                                                            "TaggerTagResource": "*",
                                                                                                                            "NameTag": "NameTag.tag, NameTag.alias",
                                                                                                                            "Posts": "Posts.id, Posts.pagetitle, Data.price, Data.thumb"
                                                                                                                          }`
                                                                                                                          &where=`{
                                                                                                                            "NameTag.alias": "[[!#GET.tag]]"
                                                                                                                          }`
                                                                                                                          &includeThumbs=`220x294`
                                                                                                                          &sortby=`TaggerTagResource.resource`
                                                                                                                          &sortdir=`ASC`  
                                                                                                                          &tplWrapper =`@INLINE <h2 class="h3">Всего результатов: [[+page.total]]</h2>[[+output]]`
                                                                                                                          &tpl= `Prod_List_Tpl`
                                                                                                                        ]]
                                                                                                                        А в ТэгКлауд что в сайдбаре я сделал так:
                                                                                                                        [[TaggerGetTags? &outTpl=`tag_links_wrap_tpl` &contexts=`[[*context_key]]` 
                                                                                                                        &rowTpl=`tag_links_tpl_[[++cultureKey]]`]]
                                                                                                                        для каждого языка создал разные чанки tag_links_tpl_ru и tag_links_tpl_en чтобы можно было проставить правильные ссылки на теги.
                                                                                                                        <a class="tag-link" href="[[~520]]?tag=[[+alias]]">[[+tag]] <span>([[+cnt]])</span></a>
                                                                                                                        где 520 — это ID документа для вывода результата на RU, а для EN id 519
                                                                                                                    2. Серый
                                                                                                                      13 февраля 2017, 12:03
                                                                                                                      Подскажите пожалуйста, как должен выглядеть код для pdoTools, что бы вывести все ресурсы, имеющие определенный набор тегов?
                                                                                                                      Я делаю такую штуку и у меня ничего не получается:
                                                                                                                      [[!pdoResources? &where=`[[!TaggerGetResourcesWhere? &id=`«1»,«2»`]]`]]
                                                                                                                      Делал и по алиасам тегов Tagger`a, и по русским названиям — не пашет.
                                                                                                                      Так-то инструмент прикольный, хотелось бы разобраться…
                                                                                                                      1. Серый
                                                                                                                        13 февраля 2017, 13:10
                                                                                                                        Сделал такой код:
                                                                                                                        [[!pdoPage?
                                                                                                                          &element = `pdoResources`
                                                                                                                          &loadModels=`tagger`
                                                                                                                          &class=`TaggerTagResource`
                                                                                                                          &leftJoin=`{
                                                                                                                            "NameTag": {
                                                                                                                              "class": "TaggerTag",
                                                                                                                              "on": "TaggerTagResource.tag = NameTag.id"
                                                                                                                            },
                                                                                                                            "Posts": {
                                                                                                                              "class": "modResource",
                                                                                                                              "on": "TaggerTagResource.resource = Posts.id"
                                                                                                                            }
                                                                                                                          }`
                                                                                                                          &select=`{
                                                                                                                            "TaggerTagResource": "*",
                                                                                                                            "NameTag": "NameTag.tag, NameTag.alias",
                                                                                                                            "Posts": "Posts.id, Posts.pagetitle, Posts.description"
                                                                                                                          }`
                                                                                                                          &where=`{
                                                                                                                            "NameTag.alias": "po-derevu"
                                                                                                                          }`
                                                                                                                          &sortby=`TaggerTagResource.resource`
                                                                                                                          &sortdir=`ASC`  
                                                                                                                          &tplWrapper =`@INLINE <h2 class="h3">Всего результатов: [[+page.total]]</h2>[[+output]]`
                                                                                                                          &tpl= `device-card`
                                                                                                                        ]]
                                                                                                                        Вроде работает как надо, но уж больно громоздким кажется.
                                                                                                                        Может что-то лишнее есть, что не обязательно использовать?
                                                                                                                        1. Александр Мальцев
                                                                                                                          13 февраля 2017, 16:39
                                                                                                                          Если по alias то так.
                                                                                                                          Если необходимо по id, то таблицу TaggerTag можно не присоединять:
                                                                                                                          [[!pdoPage?
                                                                                                                            &element = `pdoResources`
                                                                                                                            &loadModels=`tagger`
                                                                                                                            &class=`TaggerTagResource`
                                                                                                                            &leftJoin=`{
                                                                                                                              "Posts": {
                                                                                                                                "class": "modResource",
                                                                                                                                "on": "TaggerTagResource.resource = Posts.id"
                                                                                                                              }
                                                                                                                            }`
                                                                                                                            &select=`{
                                                                                                                              "TaggerTagResource": "*",
                                                                                                                              "Posts": "Posts.id, Posts.pagetitle, Posts.description"
                                                                                                                            }`
                                                                                                                            &where=`{
                                                                                                                              "TaggerTagResource.tag:IN": [1,2]
                                                                                                                            }`
                                                                                                                            &sortby=`TaggerTagResource.resource`
                                                                                                                            &sortdir=`ASC`  
                                                                                                                            &tplWrapper =`@INLINE <h2 class="h3">Всего результатов: [[+page.total]]</h2>[[+output]]`
                                                                                                                            &tpl= `device-card`
                                                                                                                          ]]
                                                                                                                          
                                                                                                                          Если вы хотите это сделать более удобным для использования, то можете создать сниппет.
                                                                                                                          1. Серый
                                                                                                                            13 февраля 2017, 16:47
                                                                                                                            Хотить-то я хотю, но толку покамест маловато))
                                                                                                                            Кстати, в итоге остановился вот на каком варианте:
                                                                                                                            [[!pdoResources? 
                                                                                                                            	&parents=`родитель ресурсов`
                                                                                                                            	&tpl=`чанк`
                                                                                                                            	&where=`[[!TaggerGetResourcesWhere? &matchAll=`1` &tags=`tag1,tag2`]]`
                                                                                                                            	&limit="сколько штук выводить. 0 - если без все что есть"
                                                                                                                            ]]
                                                                                                                            
                                                                                                                            где `tag1,tag2` — список англоязычных алиасов.
                                                                                                                            А вообще, в идеале хотелось бы такую штуку замутить, что делаешь такой шаблон для ресурса которому тоже назначаешь Tagger`ом теги, а он выводит в себе другие ресурсы (например, детей какого-нибудь родителя, которого можно и в шаблоне задать), которые соответствуют либо выбранным для этого ресурся тегам, либо выбранному сочетанию)))
                                                                                                                            И если еще внутри админки в каком-нибудь Collections сделать фильтр по тегам — ваще будет сказка)))
                                                                                                                      2. Женёк
                                                                                                                        24 января 2017, 23:03
                                                                                                                        Статья бомба!

                                                                                                                        Теги выводятся из всех ресурсов, а нужно только из определенного родителя.
                                                                                                                        Подскажите, как вывести облако тегов из определенного parents?
                                                                                                                        [[!pdoResources?
                                                                                                                        &loadModels=`tagger`
                                                                                                                        &class=`TaggerTag`
                                                                                                                        &leftJoin=`{
                                                                                                                            "TaggerTagResources": {
                                                                                                                                "class": "TaggerTagResource",
                                                                                                                                "on": "TaggerTag.id = TaggerTagResources.tag"
                                                                                                                            }
                                                                                                                        }`
                                                                                                                        &select=`{
                                                                                                                        "TaggerTag": "*",
                                                                                                                        "TaggerTagResources": "COUNT(TaggerTagResources.tag) as countTags"
                                                                                                                        }`
                                                                                                                        &groupby=`TaggerTag.id`
                                                                                                                        &sortby=`TaggerTag.tag`
                                                                                                                        &sortdir=`ASC`
                                                                                                                        &tpl=`@INLINE
                                                                                                                            <li class="filter" data-filter=".[[+tag]]">
                                                                                                                                <span>[[+tag]]</span>
                                                                                                                            </li>`
                                                                                                                        ]]
                                                                                                                        1. Александр Мальцев
                                                                                                                          26 января 2017, 13:53
                                                                                                                          Спасибо. Для этого необходимо присоединить объект modResource и добавить условие WHERE:
                                                                                                                          [[!pdoResources?
                                                                                                                          &loadModels=`tagger`
                                                                                                                          &class=`TaggerTag`
                                                                                                                          &innerJoin = `{
                                                                                                                            "TaggerTagResource": {
                                                                                                                              "class": "TaggerTagResource",
                                                                                                                              "on": "TaggerTag.id = TaggerTagResource.tag"
                                                                                                                            },
                                                                                                                            "modResource": {
                                                                                                                              "class": "modResource",
                                                                                                                              "on": "modResource.id = TaggerTagResource.resource"
                                                                                                                            }
                                                                                                                          }`
                                                                                                                          &where=`{
                                                                                                                            "modResource.parent:=":"32"
                                                                                                                          }`
                                                                                                                          &select=`{
                                                                                                                            "TaggerTag": "*",
                                                                                                                            "TaggerTagResource": "COUNT(TaggerTagResource.tag) as countTags, TaggerTagResource.resource"
                                                                                                                          }`
                                                                                                                          &groupby=`TaggerTag.id`
                                                                                                                          &sortby=`TaggerTag.tag`
                                                                                                                          &sortdir=`ASC`
                                                                                                                          &tpl=`@INLINE
                                                                                                                            <li class="filter" data-filter=".[[+tag]]">
                                                                                                                              <span>[[+tag]] ([[+countTags]])</span>
                                                                                                                            </li>`
                                                                                                                          ]]
                                                                                                                          
                                                                                                                          Вместо 32 укажите значение необходимого id родительского ресурса.
                                                                                                                        2. Максим
                                                                                                                          19 января 2017, 12:29
                                                                                                                          Классное дополнение но очень не удобно забивать новые теги, новая вкладка, новый раздел, либо не удобно либо много места занимает в админке мне кажется было бы лучше сделать как стандартное тв поле, по примеру минишопа, группы тегов тоже не понятно зачем, в минишопе их тоже нет а все работает, самый главный минус из за странного размещения поля на данном снипете он не работает в группе товаров modx.
                                                                                                                          1. Александр Мальцев
                                                                                                                            19 января 2017, 13:15
                                                                                                                            Данный пакет позволяет установить место, где будет отображаться поле для ввода тегов в ресурсе. Т.е. кроме отдельной вкладки, там доступны ещё и другие параметры, в том числе и на вкладке дополнительных параметров.
                                                                                                                            Если вам нужные более простой вариант тегов, то их можно выполнить и в виде дополнительного поля (TV). Если же вы хотите иметь какой контроль над тегами, то с TV придётся это всё реализовывать. А здесь многое доступно из «коробки». Например, можно легко переименовать тег, при установлении тегов использовать только созданные, а также ограничить количество тегов, которые можно установить ресурсу. Кроме этого тегам можно назначать псевдонимы и многое другое. Т.е. использовать TV или компонент Tagger решать вам, всё зависит от задачи. Группы тегов нужны для того чтобы разным ресурсам (в зависимости от их привязки к шаблонам) можно было назначать теги из разных групп. Это может понадобиться, например, если у вас на сайте есть разные категории и ресурсам в зависимости от категории, в которой они расположены необходимо назначить теги с той или другой группы.
                                                                                                                            1. Максим
                                                                                                                              19 января 2017, 13:54
                                                                                                                              Я так понимаю в tagger можно заменить строчку, откуда с базы данных будут браться теги?
                                                                                                                              Подскажите что туда можно вписать если я прав?
                                                                                                                              1. Александр Мальцев
                                                                                                                                20 января 2017, 14:02
                                                                                                                                Лучше выбрать какое-то одно дополнение, отвечающее вашей задаче и использовать его. Кроме этого поле для ввода тегов Tagger нормально выводится в категории товаров miniShop2 как в отдельной вкладке, так и в других местах в зависимости от его настройки.
                                                                                                                              2. Максим
                                                                                                                                19 января 2017, 13:26
                                                                                                                                Александр, спасибо, но вот эта проблема остается в категории товаров не выводится поле для ввода тегов, все места перепробовал, на других ресурсах работает, не могли бы вы мне помочь нашел дополнение для ввода тегов tvsuperselect. Возможно ли эти 2 дополнения объединить?
                                                                                                                                itchief.ru/assets/uploadify/a/9/5/a95d93e2d7e43dc37abf2da0a3d8da71.png
                                                                                                                            2. momcom
                                                                                                                              14 января 2017, 07:38
                                                                                                                              На главной странице теги начинают выводить контент статей.
                                                                                                                              _http://buyforex.ru/
                                                                                                                              и на странице «Вывод статей по тегу» тоже подцепляют контент этой страницы.
                                                                                                                              _http://buyforex.ru/tag.html?tag=nachinayushhim
                                                                                                                              Как поправить?
                                                                                                                              1. Александр Мальцев
                                                                                                                                14 января 2017, 13:20
                                                                                                                                Проверьте чанк, который используется для вывода результатов работы сниппета.
                                                                                                                                1. momcom
                                                                                                                                  15 января 2017, 15:52
                                                                                                                                  [[!pdoResources?
                                                                                                                                        &loadModels=`tagger`[[- Список компонентов, через запятую, чьи модели нужно загрузить для
                                                                                                                                                     построения запроса. Например: &loadModels=`ms2gallery,msearch2`.]]
                                                                                                                                        &class=`TaggerTag`
                                                                                                                                        &leftJoin=`{
                                                                                                                                          "TaggerTagResources": {
                                                                                                                                      	  "class": "TaggerTagResource",
                                                                                                                                      	  "on": "TaggerTag.id = TaggerTagResources.tag"
                                                                                                                                          }
                                                                                                                                        }`
                                                                                                                                        &select=`{
                                                                                                                                          "TaggerTag": "*",
                                                                                                                                      	  "TaggerTagResources": "COUNT(TaggerTagResources.tag) as countTags"
                                                                                                                                      	}`
                                                                                                                                        &groupby=`TaggerTag.id`
                                                                                                                                        &sortby=`TaggerTag.tag`
                                                                                                                                        &sortdir=`ASC`  
                                                                                                                                        &tplWrapper=`@INLINE <div class="panel panel-primary"><div class="panel-heading"><span class="glyphicon glyphicon-tags"></span> Теги</div><div class="panel-body">[[+output]]</div></div>`
                                                                                                                                        &tpl=`@INLINE <a href="[[~53]]?tag=[[+alias]]" class="btn btn-primary">[[+tag]] <span class="badge">[[+countTags]]</span></a>`
                                                                                                                                      ]]
                                                                                                                                  То что смог выяснить так это что через output выводятся данные. Дальше продвинуться пока не удалось. Подскажите что делать дальше.
                                                                                                                                  1. Александр Мальцев
                                                                                                                                    16 января 2017, 13:01
                                                                                                                                    Попробуйте заменить содержимое параметра &tplWrapper на обычный чанк.
                                                                                                                                    Или не используйте данный параметр, и содержимое сниппета поместите в эту обёртку:
                                                                                                                                    <div class="panel panel-primary">
                                                                                                                                      <div class="panel-heading">
                                                                                                                                        <span class="glyphicon glyphicon-tags"></span> Теги
                                                                                                                                      </div>
                                                                                                                                      <div class="panel-body">
                                                                                                                                        [[!pdoResources? ... ]]
                                                                                                                                      </div>
                                                                                                                                    </div>
                                                                                                                                    
                                                                                                                                    1. momcom
                                                                                                                                      17 января 2017, 05:32
                                                                                                                                      Получился вариант с обёрткой и удалением параметра &tplWrapper
                                                                                                                                      Спасибо!
                                                                                                                              2. Alex
                                                                                                                                13 января 2017, 11:13
                                                                                                                                Не могли бы вы подсказать правильный вывод тикетов по тегам.
                                                                                                                                1. Александр Мальцев
                                                                                                                                  14 января 2017, 02:56
                                                                                                                                  Просто необходимо вместо класса modResource использовать Ticket.
                                                                                                                                  [[!pdoPage?
                                                                                                                                    &element = `pdoResources`
                                                                                                                                    &limit=`2`
                                                                                                                                    &loadModels=`tagger`
                                                                                                                                    &class=`TaggerTagResource`
                                                                                                                                    &leftJoin=`{
                                                                                                                                      "NameTag": {
                                                                                                                                        "class": "TaggerTag",
                                                                                                                                        "on": "TaggerTagResource.tag = NameTag.id"
                                                                                                                                      },
                                                                                                                                      "Ticket": {
                                                                                                                                        "class": "Ticket",
                                                                                                                                        "on": "TaggerTagResource.resource = Ticket.id"
                                                                                                                                      }
                                                                                                                                    }`
                                                                                                                                    &select=`{
                                                                                                                                      "TaggerTagResource": "*",
                                                                                                                                      "NameTag": "NameTag.tag, NameTag.alias",
                                                                                                                                      "Ticket": "Ticket.id, Ticket.pagetitle, Ticket.description"
                                                                                                                                    }`
                                                                                                                                    &where=`{
                                                                                                                                      "NameTag.alias": "[[!#GET.tag]]"
                                                                                                                                    }`
                                                                                                                                    &sortby=`TaggerTagResource.resource`
                                                                                                                                    &sortdir=`ASC`  
                                                                                                                                    &tplWrapper =`@INLINE <h2 class="h3">Всего результатов: [[+page.total]]</h2>[[+output]]`
                                                                                                                                    &tpl= `chunkTagRow`
                                                                                                                                  ]]
                                                                                                                                  [[!+page.nav]]
                                                                                                                                  
                                                                                                                                  1. Alex
                                                                                                                                    14 января 2017, 07:39
                                                                                                                                    Спасибо но с таким примером оно работает так же как и с классом modResource разницы никакой нет.
                                                                                                                                    Если пытаешься добавить к выводу в чанке дату то ничего не отображается так же как и при добавлении раздела.
                                                                                                                                    Картинку тоже нет возможности вывести если картинка в тв.
                                                                                                                                    1. Александр Мальцев
                                                                                                                                      14 января 2017, 13:17
                                                                                                                                      Для этого необходимо добавить в запрос дополнительные объекты и выбрать из них необходимые поля.
                                                                                                                                      Можете посмотреть этот комментарий:
                                                                                                                                      itchief.ru/lessons/modx-revo/modx-tag-cloud#comment-3767

                                                                                                                                      Например, для того чтобы выбрать дату публикации (publishedon), её просто необходимо добавить в параметр &select:
                                                                                                                                      "Ticket": "Ticket.id, Ticket.pagetitle, Ticket.description, Ticket.publishedon",
                                                                                                                                      
                                                                                                                                      Для вывода раздела необходимо добавить в параметр &leftJoin объект TicketsSection:
                                                                                                                                      "TicketSection": {
                                                                                                                                        "class": "TicketsSection",
                                                                                                                                        "on": "TicketSection.id = Ticket.parent"
                                                                                                                                      },
                                                                                                                                      
                                                                                                                                      А также то, что необходимо выбрать в &select:
                                                                                                                                      "TicketSection": "TicketSection.id as idSection, TicketSection.pagetitle as pagetitleSection",
                                                                                                                                      
                                                                                                                                      Тоже самое и для TV (например, имеющий id=6).
                                                                                                                                      В параметр &leftJoin:
                                                                                                                                          "TV": {
                                                                                                                                            "class": "modTemplateVarResource",
                                                                                                                                            "on": "TV.contentid = Ticket.id AND TV.tmplvarid = 6"
                                                                                                                                          }
                                                                                                                                      
                                                                                                                                      В параметр &select:
                                                                                                                                      "TV": "TV.value as image"
                                                                                                                                      
                                                                                                                                      Например, в итоге вызов сниппета может быть таким:
                                                                                                                                      [[!pdoPage?
                                                                                                                                        &element = `pdoResources`
                                                                                                                                        &limit=`2`
                                                                                                                                        &loadModels=`tagger`
                                                                                                                                        &class=`TaggerTagResource`
                                                                                                                                        &leftJoin=`{
                                                                                                                                          "NameTag": {
                                                                                                                                            "class": "TaggerTag",
                                                                                                                                            "on": "TaggerTagResource.tag = NameTag.id"
                                                                                                                                          },
                                                                                                                                          "Ticket": {
                                                                                                                                            "class": "Ticket",
                                                                                                                                            "on": "TaggerTagResource.resource = Ticket.id"
                                                                                                                                          },
                                                                                                                                          "User": {
                                                                                                                                            "class": "modUser",
                                                                                                                                            "on": "Ticket.publishedby = User.id"
                                                                                                                                          },
                                                                                                                                          "TicketTotal": {
                                                                                                                                            "class": "TicketTotal",
                                                                                                                                            "on": "TicketTotal.id = Ticket.id"
                                                                                                                                          },
                                                                                                                                          "TicketSection": {
                                                                                                                                            "class": "TicketsSection",
                                                                                                                                            "on": "TicketSection.id = Ticket.parent"
                                                                                                                                          },
                                                                                                                                          "TV": {
                                                                                                                                            "class": "modTemplateVarResource",
                                                                                                                                            "on": "TV.contentid = Ticket.id AND TV.tmplvarid = 6"
                                                                                                                                          }
                                                                                                                                        }`
                                                                                                                                        &select=`{
                                                                                                                                          "TaggerTagResource": "*",
                                                                                                                                          "NameTag": "NameTag.tag, NameTag.alias",
                                                                                                                                          "Ticket": "Ticket.id, Ticket.pagetitle, Ticket.description, Ticket.publishedon",
                                                                                                                                          "User": "User.username as username",
                                                                                                                                          "TicketTotal": "*",
                                                                                                                                          "TicketSection": "TicketSection.id as idSection, TicketSection.pagetitle as pagetitleSection",
                                                                                                                                          "TV": "TV.value as image"
                                                                                                                                        }`
                                                                                                                                        &where=`{
                                                                                                                                          "NameTag.alias": "[[!#GET.tag]]"
                                                                                                                                        }`
                                                                                                                                        &sortby=`TaggerTagResource.resource`
                                                                                                                                        &sortdir=`ASC`  
                                                                                                                                        &tplWrapper =`@INLINE <h2 class="h3">Всего результатов: [[+page.total]]</h2>[[+output]]`
                                                                                                                                        &tpl= `chunkTagRow`
                                                                                                                                      ]]
                                                                                                                                      [[!+page.nav]]
                                                                                                                                      
                                                                                                                                      А чанк chunkTagRow таким:
                                                                                                                                      <div class="panel panel-default">
                                                                                                                                        <div class="panel-body">
                                                                                                                                          <h3 class="h4">[[+pagetitle]]</h3><p>[[+description]]</p>
                                                                                                                                          <p>Дата публикации: [[+publishedon:date=`%d.%m.%Y`]]</p>
                                                                                                                                          <p>Раздел: <a href="[[~[[+idSection]]]]">[[+pagetitleSection]]</a></p>
                                                                                                                                          <p>Имя пользователя: [[+username]]</p>
                                                                                                                                          <p>Количество просмотров: [[+views]]</p>
                                                                                                                                          <p>Количество комментариев: [[+comments]]</p>
                                                                                                                                          <p>Избранное (количество): [[+stars]]</p>
                                                                                                                                          <p>Рейтинг: [[+rating]], плюсовой: [[+rating_plus]], минусовой: [[+rating_minus]]</p>
                                                                                                                                          <p>Изображение: [[+image]]</p>
                                                                                                                                          <p class="text-right"><a href="[[~[[+id]]]]" class="btn btn-primary" role="button">Читать далее...	</a></p>
                                                                                                                                        </div>
                                                                                                                                      </div>
                                                                                                                                      
                                                                                                                                      1. Alex
                                                                                                                                        14 января 2017, 15:25
                                                                                                                                        Спасибо огромное думаю многим пригодится.
                                                                                                                                2. Roman
                                                                                                                                  10 января 2017, 02:47
                                                                                                                                  Добрый день,
                                                                                                                                  Есть пару вопросов, может поможете:
                                                                                                                                  1. Как вывести название тега на странице «Вывод статей по тегу»
                                                                                                                                  2. Нашел частичный ответ в комментариях: связать вывод статей по тегам c Tickets — «необходимо настроить параметр &select и при необходимости, если нужны данные из других таблиц (объектов), присоединить их с помощью &leftJoin». Но реализация «хромает». Как получить для тикетов данные: автор, просмотры, рейтинг для вывода?
                                                                                                                                  Спасибо
                                                                                                                                  1. Александр Мальцев
                                                                                                                                    14 января 2017, 02:53
                                                                                                                                    Здравствуйте.
                                                                                                                                    Название тега можно вывести на страницу так:
                                                                                                                                    <h1>Статьи по тегу: [[!#get.tag]]</h1>
                                                                                                                                    
                                                                                                                                    Реализовать вывод статей, выполненных посредством дополнения MODX Revolution Tickets, на странице «Вывод статей по тегу» можно так:
                                                                                                                                    [[!pdoPage?
                                                                                                                                      &element = `pdoResources`
                                                                                                                                      &limit=`5`
                                                                                                                                      &loadModels=`tagger`
                                                                                                                                      &class=`TaggerTagResource`
                                                                                                                                      &leftJoin=`{
                                                                                                                                        "NameTag": {
                                                                                                                                          "class": "TaggerTag",
                                                                                                                                          "on": "TaggerTagResource.tag = NameTag.id"
                                                                                                                                        },
                                                                                                                                        "Ticket": {
                                                                                                                                          "class": "Ticket",
                                                                                                                                          "on": "TaggerTagResource.resource = Ticket.id"
                                                                                                                                        },
                                                                                                                                        "User": {
                                                                                                                                          "class": "modUser",
                                                                                                                                          "on": "Ticket.publishedby = User.id"
                                                                                                                                        },
                                                                                                                                        "TicketTotal": {
                                                                                                                                          "class": "TicketTotal",
                                                                                                                                          "on": "TicketTotal.id = Ticket.id"
                                                                                                                                        }
                                                                                                                                      }`
                                                                                                                                      &select=`{
                                                                                                                                        "TaggerTagResource": "*",
                                                                                                                                        "NameTag": "NameTag.tag, NameTag.alias",
                                                                                                                                        "Ticket": "Ticket.id, Ticket.pagetitle, Ticket.description",
                                                                                                                                        "User": "User.username as username",
                                                                                                                                        "TicketTotal": "*"
                                                                                                                                      }`
                                                                                                                                      &where=`{
                                                                                                                                        "NameTag.alias": "[[!#GET.tag]]"
                                                                                                                                      }`
                                                                                                                                      &sortby=`TaggerTagResource.resource`
                                                                                                                                      &sortdir=`ASC`  
                                                                                                                                      &tplWrapper =`@INLINE <h2 class="h3">Всего результатов: [[+page.total]]</h2>[[+output]]`
                                                                                                                                      &tpl= `chunkTagRow`
                                                                                                                                    ]]
                                                                                                                                    [[!+page.nav]]
                                                                                                                                    
                                                                                                                                    Ну и соответственно добавить необходимые плейсхолдеры в чанк (в данном случае chunkTagRow):
                                                                                                                                    <div class="panel panel-default">
                                                                                                                                      <div class="panel-body">
                                                                                                                                        <h3 class="h4">[[+pagetitle]]</h3><p>[[+description]]</p>
                                                                                                                                        <p>Имя пользователя: [[+username]]</p>
                                                                                                                                        <p>Количество просмотров: [[+views]]</p>
                                                                                                                                        <p>Количество комментариев: [[+comments]]</p>
                                                                                                                                        <p>Избранное (количество): [[+stars]]</p>
                                                                                                                                        <p>Рейтинг: [[+rating]], плюсовой: [[+rating_plus]], минусовой: [[+rating_minus]]</p>
                                                                                                                                        <p class="text-right"><a href="[[~[[+id]]]]" class="btn btn-primary" role="button">Читать далее...	</a></p>
                                                                                                                                      </div>
                                                                                                                                    </div>
                                                                                                                                    
                                                                                                                                    1. Roman
                                                                                                                                      24 января 2017, 04:41
                                                                                                                                      Добрый день, Александр!
                                                                                                                                      Хотел еще спросить, про «вывод названия тега»,
                                                                                                                                      <h1>Статьи по тегу: [[!#get.tag]]</h1>
                                                                                                                                      (Статьи по тегу: derevo)
                                                                                                                                      так выводится alias тега.
                                                                                                                                      Есть возможность вывести именно «название тега» (Статьи по тегу: Дерево), а не alias?
                                                                                                                                      Спасибо
                                                                                                                                      1. Александр Мальцев
                                                                                                                                        25 января 2017, 12:58
                                                                                                                                        Написать сниппет (например, showTag):
                                                                                                                                        $tag = $modx->sanitizeString($_GET['tag']);
                                                                                                                                        $where = '{"tag":"'.$tag.'"}';
                                                                                                                                        return $modx->runSnippet('pdoResources', array(
                                                                                                                                          'loadModels' => 'tagger',
                                                                                                                                          'class' => 'TaggerTag',
                                                                                                                                          'tpl' => '@INLINE <p>Статьи по тегу [[+tag]]</p>',
                                                                                                                                          'where' => $where,
                                                                                                                                          'sortby' => 'id',
                                                                                                                                          'limit' => 1
                                                                                                                                        ));
                                                                                                                                        
                                                                                                                                        Добавить его вызов в необходимое место на странице:
                                                                                                                                        [[!showTag]]
                                                                                                                                        
                                                                                                                                        1. Roman
                                                                                                                                          27 января 2017, 05:11
                                                                                                                                          Попробовал: создал сниппет и добавлял вызов и в шаблон, и в ресурс — тег не выводит.
                                                                                                                                          Если правильно понял, то проблема может $where
                                                                                                                                          или я что-то не так делаю
                                                                                                                                          1. Александр Мальцев
                                                                                                                                            04 февраля 2017, 05:56
                                                                                                                                            Да нет, не должно.
                                                                                                                                            Попробуйте тогда по-другому (без использования сторонних компонентов).
                                                                                                                                            Код сниппета showTag:
                                                                                                                                            $modx->addPackage('tagger',MODX_CORE_PATH.'components/tagger/model/');
                                                                                                                                            if (isset($scriptProperties['alias'])) {
                                                                                                                                              $alias = $scriptProperties['alias'];
                                                                                                                                              $criteria = array(
                                                                                                                                                'alias'=>$alias,
                                                                                                                                              );
                                                                                                                                              $tag = $modx->getObject('TaggerTag',$criteria);
                                                                                                                                              if ($tag) {
                                                                                                                                                $nameTag = $tag->get('tag');
                                                                                                                                                return $nameTag;
                                                                                                                                              }
                                                                                                                                            }
                                                                                                                                            return;
                                                                                                                                            
                                                                                                                                            Вызов сниппета showTag (в качестве параметра &alias указываем алиас тега ):
                                                                                                                                            [[!showTag? &alias=`bootstrap`]]
                                                                                                                                            [[!showTag? &alias=`[[!#get.tag]]`]]
                                                                                                                                            
                                                                                                                                            В качестве результата сниппет возвращает название тега.
                                                                                                                                            1. Roman
                                                                                                                                              05 февраля 2017, 03:08
                                                                                                                                              Приветствую Александр!
                                                                                                                                              Спасибо за помощь! Этот сниппет вывел имя тега.
                                                                                                                                              Еще раз спасибо!
                                                                                                                                          2. Roman
                                                                                                                                            27 января 2017, 03:17
                                                                                                                                            Приветствую Александр,
                                                                                                                                            Спасибо большое! Очень помогли! Может и не только мне
                                                                                                                                        2. Roman
                                                                                                                                          15 января 2017, 20:04
                                                                                                                                          Добрый день, Александр!
                                                                                                                                          Спасибо от всей души! очень помогли!
                                                                                                                                      2. Александр
                                                                                                                                        28 ноября 2016, 10:21
                                                                                                                                        Добрый день!
                                                                                                                                        Возможно ли вывести облако тегов не на странице материала, а только на странице родительского каталога материалов, к которому относится этот материал?
                                                                                                                                        Спасибо!
                                                                                                                                        1. Тим
                                                                                                                                          28 ноября 2016, 10:58
                                                                                                                                          [[*isfolder:is=`1`:then=`[[чанк_облака_тегов]]`:else=`[[чанк_материала]]`]]
                                                                                                                                          Выведет чанк тегов только в документах-контейнерах.
                                                                                                                                          1. Александр
                                                                                                                                            28 ноября 2016, 11:33
                                                                                                                                            Так не работает. Мне нужно что бы соответствующее облако выводилось только в том контейнере, в котором материал имеет тег. Сейчас же во всех контейнерах выводится группа тегов, которая к контейнеру не имеет отношение.

                                                                                                                                            Пример: контейнер1. В нем материал1 с тегом «тест1». И контейнер2. В нем материал2 с тегом «тест2».
                                                                                                                                            Нужно вывести в контейнере1 тег «тест1», а в контейнере2- «тест2».
                                                                                                                                            Может есть возможность присвоить группу тегов к определенному контейнеру?
                                                                                                                                            1. Александр Мальцев
                                                                                                                                              30 ноября 2016, 09:57
                                                                                                                                              Запрос будет сложный. Здесь либо писать свой сниппет, ли использовать группы. Группу можно назначить к шаблонам.
                                                                                                                                        2. Тим
                                                                                                                                          21 ноября 2016, 16:27
                                                                                                                                          Приветствую, никак не получается связать вывод статей по тегам c Tickets.
                                                                                                                                          [[!pdoPage?
                                                                                                                                            &element = `getTickets`
                                                                                                                                            &limit=`2`
                                                                                                                                            &loadModels=`tagger`
                                                                                                                                            &class=`TaggerTagResource`
                                                                                                                                            &leftJoin=`{
                                                                                                                                              "NameTag": {
                                                                                                                                                "class": "TaggerTag",
                                                                                                                                                "on": "TaggerTagResource.tag = NameTag.id"
                                                                                                                                              },
                                                                                                                                              "Posts": {
                                                                                                                                                "class": "Ticket",
                                                                                                                                                "on": "TaggerTagResource.resource = Posts.id"
                                                                                                                                              }
                                                                                                                                            }`
                                                                                                                                            &select=`{
                                                                                                                                              "TaggerTagResource": "*",
                                                                                                                                              "NameTag": "NameTag.tag, NameTag.alias",
                                                                                                                                              "Posts": "Posts.id, Posts.pagetitle, Posts.description"
                                                                                                                                            }`
                                                                                                                                            &where=`{
                                                                                                                                              "NameTag.alias": "[[!#GET.tag]]"
                                                                                                                                            }`
                                                                                                                                            &sortby=`TaggerTagResource.resource`
                                                                                                                                            &sortdir=`ASC`  
                                                                                                                                            &tplWrapper =`@INLINE <h2 class="h3">Всего результатов: [[+page.total]]</h2>[[+output]]`
                                                                                                                                            &tpl= `tpl.main-block-list`
                                                                                                                                            &showLog=`1`
                                                                                                                                          ]]
                                                                                                                                          [[!+page.nav]]
                                                                                                                                          Лог:
                                                                                                                                          0.0000319: Loaded model "tagger" from "/core/components/tagger/model/"
                                                                                                                                          0.0000560: Query parameters are prepared.
                                                                                                                                          0.0000660: xPDO query object created
                                                                                                                                          0.0002029: leftJoined TicketsSection as Section
                                                                                                                                          0.0001142: leftJoined modUser as User
                                                                                                                                          0.0001090: leftJoined modUserProfile as Profile
                                                                                                                                          0.0008969: leftJoined TicketTotal as Total
                                                                                                                                          0.0006142: leftJoined TaggerTag as NameTag
                                                                                                                                          0.0001180: leftJoined Ticket as Posts
                                                                                                                                          0.0000050: Grouped by Ticket.id
                                                                                                                                          0.0001419: Added selection of TicketsSection: SQL_CALC_FOUND_ROWS `id` AS `section.id`, `type` AS `section.type`, `contentType` AS `section.contentType`, `pagetitle` AS `section.pagetitle`, `longtitle` AS `section.longtitle`, `description` AS `section.description`, `alias` AS `section.alias`, `link_attributes` AS `section.link_attributes`, `published` AS `section.published`, `pub_date` AS `section.pub_date`, `unpub_date` AS `section.unpub_date`, `parent` AS `section.parent`, `isfolder` AS `section.isfolder`, `introtext` AS `section.introtext`, `richtext` AS `section.richtext`, `template` AS `section.template`, `menuindex` AS `section.menuindex`, `searchable` AS `section.searchable`, `cacheable` AS `section.cacheable`, `createdby` AS `section.createdby`, `createdon` AS `section.createdon`, `editedby` AS `section.editedby`, `editedon` AS `section.editedon`, `deleted` AS `section.deleted`, `deletedon` AS `section.deletedon`, `deletedby` AS `section.deletedby`, `publishedon` AS `section.publishedon`, `publishedby` AS `section.publishedby`, `menutitle` AS `section.menutitle`, `donthit` AS `section.donthit`, `privateweb` AS `section.privateweb`, `privatemgr` AS `section.privatemgr`, `content_dispo` AS `section.content_dispo`, `hidemenu` AS `section.hidemenu`, `class_key` AS `section.class_key`, `context_key` AS `section.context_key`, `content_type` AS `section.content_type`, `uri` AS `section.uri`, `uri_override` AS `section.uri_override`, `hide_children_in_tree` AS `section.hide_children_in_tree`, `show_in_tree` AS `section.show_in_tree`, `properties` AS `section.properties`
                                                                                                                                          0.0000222: Added selection of modUser: `username`
                                                                                                                                          0.0000350: Added selection of modUserProfile: `internalKey`, `fullname`, `email`, `phone`, `mobilephone`, `blocked`, `blockeduntil`, `blockedafter`, `logincount`, `lastlogin`, `thislogin`, `failedlogincount`, `sessionid`, `dob`, `gender`, `address`, `country`, `city`, `state`, `zip`, `fax`, `photo`, `comment`, `website`, `extended`
                                                                                                                                          0.0000460: Added selection of Ticket: `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`, `properties`
                                                                                                                                          0.0001130: Added selection of TicketTotal: `comments`, `views`, `stars`, `rating`, `rating_plus`, `rating_minus`
                                                                                                                                          0.0000679: Added selection of TaggerTagResource: `tag`, `resource`
                                                                                                                                          0.0000339: Added selection of TaggerTag: NameTag.tag, NameTag.alias
                                                                                                                                          0.0000231: Added selection of Ticket: Posts.id, Posts.pagetitle, Posts.description
                                                                                                                                          0.0001919: Added where condition: class_key=Ticket, NameTag.alias=test
                                                                                                                                          0.0000770: Sorted by TaggerTagResource.resource, ASC
                                                                                                                                          0.0000069: Limited to 2, offset 0
                                                                                                                                          0.0006270: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `Section`.`id` AS `section.id`, `Section`.`type` AS `section.type`, `Section`.`contentType` AS `section.contentType`, `Section`.`pagetitle` AS `section.pagetitle`, `Section`.`longtitle` AS `section.longtitle`, `Section`.`description` AS `section.description`, `Section`.`alias` AS `section.alias`, `Section`.`link_attributes` AS `section.link_attributes`, `Section`.`published` AS `section.published`, `Section`.`pub_date` AS `section.pub_date`, `Section`.`unpub_date` AS `section.unpub_date`, `Section`.`parent` AS `section.parent`, `Section`.`isfolder` AS `section.isfolder`, `Section`.`introtext` AS `section.introtext`, `Section`.`richtext` AS `section.richtext`, `Section`.`template` AS `section.template`, `Section`.`menuindex` AS `section.menuindex`, `Section`.`searchable` AS `section.searchable`, `Section`.`cacheable` AS `section.cacheable`, `Section`.`createdby` AS `section.createdby`, `Section`.`createdon` AS `section.createdon`, `Section`.`editedby` AS `section.editedby`, `Section`.`editedon` AS `section.editedon`, `Section`.`deleted` AS `section.deleted`, `Section`.`deletedon` AS `section.deletedon`, `Section`.`deletedby` AS `section.deletedby`, `Section`.`publishedon` AS `section.publishedon`, `Section`.`publishedby` AS `section.publishedby`, `Section`.`menutitle` AS `section.menutitle`, `Section`.`donthit` AS `section.donthit`, `Section`.`privateweb` AS `section.privateweb`, `Section`.`privatemgr` AS `section.privatemgr`, `Section`.`content_dispo` AS `section.content_dispo`, `Section`.`hidemenu` AS `section.hidemenu`, `Section`.`class_key` AS `section.class_key`, `Section`.`context_key` AS `section.context_key`, `Section`.`content_type` AS `section.content_type`, `Section`.`uri` AS `section.uri`, `Section`.`uri_override` AS `section.uri_override`, `Section`.`hide_children_in_tree` AS `section.hide_children_in_tree`, `Section`.`show_in_tree` AS `section.show_in_tree`, `Section`.`properties` AS `section.properties`, `User`.`username`, `Profile`.`internalKey`, `Profile`.`fullname`, `Profile`.`email`, `Profile`.`phone`, `Profile`.`mobilephone`, `Profile`.`blocked`, `Profile`.`blockeduntil`, `Profile`.`blockedafter`, `Profile`.`logincount`, `Profile`.`lastlogin`, `Profile`.`thislogin`, `Profile`.`failedlogincount`, `Profile`.`sessionid`, `Profile`.`dob`, `Profile`.`gender`, `Profile`.`address`, `Profile`.`country`, `Profile`.`city`, `Profile`.`state`, `Profile`.`zip`, `Profile`.`fax`, `Profile`.`photo`, `Profile`.`comment`, `Profile`.`website`, `Profile`.`extended`, `Ticket`.`id`, `Ticket`.`type`, `Ticket`.`contentType`, `Ticket`.`pagetitle`, `Ticket`.`longtitle`, `Ticket`.`description`, `Ticket`.`alias`, `Ticket`.`link_attributes`, `Ticket`.`published`, `Ticket`.`pub_date`, `Ticket`.`unpub_date`, `Ticket`.`parent`, `Ticket`.`isfolder`, `Ticket`.`introtext`, `Ticket`.`richtext`, `Ticket`.`template`, `Ticket`.`menuindex`, `Ticket`.`searchable`, `Ticket`.`cacheable`, `Ticket`.`createdby`, `Ticket`.`createdon`, `Ticket`.`editedby`, `Ticket`.`editedon`, `Ticket`.`deleted`, `Ticket`.`deletedon`, `Ticket`.`deletedby`, `Ticket`.`publishedon`, `Ticket`.`publishedby`, `Ticket`.`menutitle`, `Ticket`.`donthit`, `Ticket`.`privateweb`, `Ticket`.`privatemgr`, `Ticket`.`content_dispo`, `Ticket`.`hidemenu`, `Ticket`.`class_key`, `Ticket`.`context_key`, `Ticket`.`content_type`, `Ticket`.`uri`, `Ticket`.`uri_override`, `Ticket`.`hide_children_in_tree`, `Ticket`.`show_in_tree`, `Ticket`.`properties`, `Total`.`comments`, `Total`.`views`, `Total`.`stars`, `Total`.`rating`, `Total`.`rating_plus`, `Total`.`rating_minus`, `TaggerTagResource`.`tag`, `TaggerTagResource`.`resource`, NameTag.tag, NameTag.alias, Posts.id, Posts.pagetitle, Posts.description FROM `modx_tagger_tag_resources` AS `TaggerTagResource` LEFT JOIN `modx_site_content` `Section` ON `Section`.`id` = `Ticket`.`parent` LEFT JOIN `modx_users` `User` ON `User`.`id` = `Ticket`.`createdby` LEFT JOIN `modx_user_attributes` `Profile` ON `Profile`.`internalKey` = `User`.`id` LEFT JOIN `modx_tickets_totals` `Total` ON  LEFT JOIN `modx_tagger_tags` `NameTag` ON TaggerTagResource.tag = NameTag.id LEFT JOIN `modx_site_content` `Posts` ON TaggerTagResource.resource = Posts.id WHERE  ( `TaggerTagResource`.`class_key` = 'Ticket' AND `NameTag`.`alias` = 'test' )  GROUP BY Ticket.id ORDER BY TaggerTagResource.resource ASC LIMIT 2 "
                                                                                                                                          0.0003991: Could not process query, error #1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'JOIN `modx_tagger_tags` `NameTag` ON TaggerTagResource.tag = NameTag.id LEFT JOI' at line 1
                                                                                                                                          0.0000250: Returning processed chunks
                                                                                                                                          0.0156150: Total time
                                                                                                                                          13 631 488: Memory usage
                                                                                                                                          Пробовал использовать стандартный &where=`[[!TaggerGetResourcesWhere? &tags=`tag` &where=`{«isfolder»: 0}`]]` тоже не получилось.
                                                                                                                                          Посмотрите, пожалуйста, что может быть не так.
                                                                                                                                          1. Александр Мальцев
                                                                                                                                            24 ноября 2016, 12:53
                                                                                                                                            Не используйте getTickets. Вместо него применяйте pdoResources. Это связано с тем, что сниппет getTicket не может выполнить то же самое, что и pdoResources, хоть и базируется на его основе.
                                                                                                                                            1. Тим
                                                                                                                                              28 ноября 2016, 10:48
                                                                                                                                              Спасибо за ответ! Пробовал такой вариант, не получилось с помощью pdoResources получить переменные getTickets.
                                                                                                                                              1. Александр Мальцев
                                                                                                                                                30 ноября 2016, 09:28
                                                                                                                                                Для этого необходимо настроить параметр &select и при необходимости, если нужны данные из других таблиц (объектов), присоединить их с помощью &leftJoin.
                                                                                                                                          2. Валерий
                                                                                                                                            15 ноября 2016, 11:26
                                                                                                                                            Александр, добрый день.
                                                                                                                                            В комментариях не нашел ответа, может быть так подскажите.

                                                                                                                                            Я использую вывод материалов через pdoPage с TV-полями (4 поля). У меня так и не вышло заставить систему видеть эти поля на страничке вывода тегов. Большее, что вышло — это вывести одно из полей. Такой записью (лишнее удалил):

                                                                                                                                            &leftJoin=`{
                                                                                                                                            "Tv": {
                                                                                                                                                "class": "modTemplateVarResource",
                                                                                                                                                "on": "TaggerTagResource.resource = Tv.contentid AND Tv.tmplvarid = 28"
                                                                                                                                            }
                                                                                                                                            }`
                                                                                                                                            &select=`{
                                                                                                                                                "Tv": "Tv.value as switch_style"
                                                                                                                                            }`
                                                                                                                                            Если добавлять в строку «Tv.value as switch_style» через запятую «Tv.value as preview_300_img», то выводится все равно одно поле, последнее. Это и понятно. А как сформировать конструкцию так, чтобы подключить 4 TV?

                                                                                                                                            Спасибо.
                                                                                                                                            1. Александр Мальцев
                                                                                                                                              16 ноября 2016, 14:01
                                                                                                                                              Здравствуйте, Валерий.
                                                                                                                                              Для этого необходимо подключить несколько TV-полей (а не одно):
                                                                                                                                              &leftJoin=`{
                                                                                                                                                ...,  
                                                                                                                                                "TV1": {
                                                                                                                                                  "class": "modTemplateVarResource",
                                                                                                                                                  "on": "TaggerTagResource.resource = TV1.contentid and TV1.tmplvarid=2"
                                                                                                                                                },
                                                                                                                                                "TV2": {
                                                                                                                                                  "class": "modTemplateVarResource",
                                                                                                                                                  "on": "TaggerTagResource.resource = TV2.contentid and TV2.tmplvarid=3"
                                                                                                                                                },
                                                                                                                                                ...
                                                                                                                                              }`
                                                                                                                                              &select=`{
                                                                                                                                                ...,
                                                                                                                                                "TV1": "TV1.value as tv1",
                                                                                                                                                "TV2": "TV2.value as tv2",
                                                                                                                                                ...
                                                                                                                                              }`
                                                                                                                                              
                                                                                                                                              1. Валерий
                                                                                                                                                16 ноября 2016, 14:17
                                                                                                                                                Все-таки наращивать таким образом… Спасибо за пример! :) Так заработало. Но забавный момент — эта запись оказалось занимает больше времени, чем моя версия с FastField… При этом, первый раз FastField отнимает почти столько же секунд (около 0.28) и чуть больше оперативной памяти (если я правильно читаю логи — 11 010 048), но во второй и последующие уже почти на 1 секунды быстрее и памяти столько же, сколько запись через LeftJoin.
                                                                                                                                                1. Александр Мальцев
                                                                                                                                                  24 ноября 2016, 13:05
                                                                                                                                                  Тогда можно написать свой собственный сниппет.
                                                                                                                                              2. Валерий
                                                                                                                                                15 ноября 2016, 15:32
                                                                                                                                                На данный момент сделал при помощи FastField — [[#[[+id]].switch_style]], но эта конструкция выполняется почти в 12 раз медленней (Total time: ~ 0.01 без нее против ~ 0.12 с ней). Что ужасно, с учетом, что всего 4 записи выводится…
                                                                                                                                              3. Алексей
                                                                                                                                                14 сентября 2016, 15:37
                                                                                                                                                Добрый день, Александр.
                                                                                                                                                Нашел ваш сайт, при попытке настроить Tagger для работы с магазином Minishop2 и mfilter2.
                                                                                                                                                Я понимаю, что вполне может быть вы не сталкивались с этими дополнениями, но решил попытать удачу.
                                                                                                                                                Если сможете, подскажите пожалуйста, как можно заставить товары фильтроваться по тегам Taggera.
                                                                                                                                                Насколько я знаю для вывода в minishop используется тот же pdopage и pdoresources.
                                                                                                                                                Я нашел заметку, все сделал вроде как нужно modx.pro/news/6318-minishop2-tagger/
                                                                                                                                                Осталось лишь написать правильный вызов сниппета, а с этим беда(
                                                                                                                                                Заранее огромная благодарнасть за любую помощь, даже за намек куда копать.
                                                                                                                                                1. Александр Мальцев
                                                                                                                                                  16 сентября 2016, 12:36
                                                                                                                                                  Добрый. В minishop 2 есть же своя система тегов.
                                                                                                                                                  1. Алексей
                                                                                                                                                    16 сентября 2016, 12:52
                                                                                                                                                    Беда в том, что эти теги не совсем полноценные в части построения урл, если использовать их, то будут например такие ссылки:
                                                                                                                                                    sitename.ru/catalog/odezhda/?tag=Для детей
                                                                                                                                                    А требовались нормальные с транслитом и без get запросов, поэтому пришлось воспользоваться сторонним плагином, с отдельной таблицей, в которой есть поле alias.
                                                                                                                                                    В любом случае спасибо, что откликнулись. Два дня мучений и я справился с этим, расширив класс mfiter2.
                                                                                                                                                2. Шведов Дмитрий
                                                                                                                                                  17 августа 2016, 09:18
                                                                                                                                                  Здравствуйте, у меня такая проблема!
                                                                                                                                                  Начал тестировать сайт и вот что заметил.

                                                                                                                                                  1) Главный вопрос! После удаления нескольких статей, у которых были теги, в облаке тегов они продолжали висеть. Сейчас в итоге есть одна статья с двумя тегами, остальные удалил, почистил кэш. В облаке тегов остались все теги активными и количество статей осталось прежним, как будто он запомнил id статей и продолжает их выводить, не смотря на то что они удалены.

                                                                                                                                                  Облако вставлено на самой странице «Статьи» и «Поиск по тегам».
                                                                                                                                                  Теги выводятся в «Статьи», «Поиск по тегам», «Статья»
                                                                                                                                                  Код облака:
                                                                                                                                                  [[!pdoResources?
                                                                                                                                                      &loadModels=`tagger`
                                                                                                                                                      &class=`TaggerTag`
                                                                                                                                                      &leftJoin=`{
                                                                                                                                                          "TaggerTagResources": {
                                                                                                                                                              "class": "TaggerTagResource",
                                                                                                                                                              "on": "TaggerTag.id = TaggerTagResources.tag"
                                                                                                                                                          }
                                                                                                                                                      }`
                                                                                                                                                      &select=`{
                                                                                                                                                          "TaggerTag": "*",
                                                                                                                                                          "TaggerTagResources": "COUNT(TaggerTagResources.tag) as countTags"
                                                                                                                                                      }`
                                                                                                                                                      &groupby=`TaggerTag.id`
                                                                                                                                                      &sortby=`TaggerTag.tag`
                                                                                                                                                      &sortdir=`ASC`  
                                                                                                                                                      &tpl=`@INLINE <a href="[[~70]]?tag=[[+alias]]">[[+tag]] <span class="badge">[[+countTags]]</span></a>`
                                                                                                                                                  ]]
                                                                                                                                                  
                                                                                                                                                  2) Так же в настройках пакета обнаружил, что настройки не работают вообще. Какие бы я галочки не убирал или ставил, они не на что не влияют.
                                                                                                                                                  a) Создать тег в настройках статьи я не могу, не смотря на то что галочка стоит (Разрешать создание новых).
                                                                                                                                                  b) Удалять не используемые теги — не удаляет
                                                                                                                                                  c) При попытке ввести новый тег, выпадает список из уже имеющихся, хотя в настройках стоит показывать «Поле тегов». Но показывает и поле и список.
                                                                                                                                                  Может что у меня не так, не знаю.
                                                                                                                                                  Заранее спасибо :)
                                                                                                                                                  1. Александр Мальцев
                                                                                                                                                    17 августа 2016, 12:43
                                                                                                                                                    Для создания новых — одной галочки «Разрешать создание новых» недостаточно. Ещё необходимо установить галочку «Разрешённые типы», иначе Вы не сможете вводить значение в это поле.

                                                                                                                                                    Удалять не используемые теги работает только если этих тегов нет в базе данных.

                                                                                                                                                    Там всё просто достаточно разобраться, что означает каждая из галочек.
                                                                                                                                                    1. Шведов Дмитрий
                                                                                                                                                      17 августа 2016, 13:30
                                                                                                                                                      Все работает, огромное спасибо. Отдельное спасибо за оперативность!
                                                                                                                                                    2. Шведов Дмитрий
                                                                                                                                                      17 августа 2016, 12:37
                                                                                                                                                      Вот еще проблема, я думаю это связанно как то с привязкой к id. Если запись не опубликована, то в «Поиск по тегам она отображается» :(
                                                                                                                                                      1. Александр Мальцев
                                                                                                                                                        17 августа 2016, 12:55
                                                                                                                                                        Да, по связям в таблицах.
                                                                                                                                                        Добавьте условие, чтобы вызов сниппета выбирал только опубликовынные:
                                                                                                                                                        [[!pdoPage?
                                                                                                                                                          &element = `pdoResources`
                                                                                                                                                          &limit=`5`
                                                                                                                                                          &loadModels=`tagger`
                                                                                                                                                          &class=`TaggerTagResource`
                                                                                                                                                          &leftJoin=`{
                                                                                                                                                            "NameTag": {
                                                                                                                                                              "class": "TaggerTag",
                                                                                                                                                              "on": "TaggerTagResource.tag = NameTag.id"
                                                                                                                                                            },
                                                                                                                                                            "Posts": {
                                                                                                                                                              "class": "modResource",
                                                                                                                                                              "on": "TaggerTagResource.resource = Posts.id"
                                                                                                                                                            }
                                                                                                                                                          }`
                                                                                                                                                          &select=`{
                                                                                                                                                            "TaggerTagResource": "*",
                                                                                                                                                            "NameTag": "NameTag.tag, NameTag.alias",
                                                                                                                                                            "Posts": "Posts.id, Posts.pagetitle, Posts.description, Posts.published"
                                                                                                                                                          }`
                                                                                                                                                          &where=`{
                                                                                                                                                            "NameTag.alias": "[[!#GET.tag]]",
                                                                                                                                                            "Posts.published": "1"
                                                                                                                                                          }`
                                                                                                                                                          &sortby=`TaggerTagResource.resource`
                                                                                                                                                          &sortdir=`ASC`
                                                                                                                                                          &tplWrapper =`@INLINE <h2 class="h3">Всего результатов: [[+page.total]]</h2>[[+output]]`
                                                                                                                                                          &tpl= `chunkTagRow`
                                                                                                                                                        ]]
                                                                                                                                                        [[!+page.nav]]
                                                                                                                                                        
                                                                                                                                                        Тогда и выше в коде замени
                                                                                                                                                        "Posts.deleted": "0"
                                                                                                                                                        
                                                                                                                                                        на
                                                                                                                                                        "Posts.published": "1"
                                                                                                                                                        
                                                                                                                                                      2. Александр Мальцев
                                                                                                                                                        17 августа 2016, 12:22
                                                                                                                                                        Добавьте условие, чтобы он не выбирал удалённые:
                                                                                                                                                        [[!pdoResources?
                                                                                                                                                            &loadModels=`tagger`
                                                                                                                                                            &class=`TaggerTag`
                                                                                                                                                            &leftJoin=`{
                                                                                                                                                                "TaggerTagResources": {
                                                                                                                                                                    "class": "TaggerTagResource",
                                                                                                                                                                    "on": "TaggerTag.id = TaggerTagResources.tag"
                                                                                                                                                                },
                                                                                                                                                                "Posts": {
                                                                                                                                                                  "class": "modResource",
                                                                                                                                                                  "on": "TaggerTagResources.resource = Posts.id"
                                                                                                                                                                }
                                                                                                                                                            }`
                                                                                                                                                            &where=`{
                                                                                                                                                              "Posts.deleted": "0"
                                                                                                                                                            }`
                                                                                                                                                            &select=`{
                                                                                                                                                                "TaggerTag": "*",
                                                                                                                                                                "TaggerTagResources": "COUNT(TaggerTagResources.tag) as countTags"
                                                                                                                                                            }`
                                                                                                                                                            &groupby=`TaggerTag.id`
                                                                                                                                                            &sortby=`TaggerTag.tag`
                                                                                                                                                            &sortdir=`ASC`  
                                                                                                                                                            &tpl=`@INLINE <a href="[[~70]]?tag=[[+alias]]">[[+tag]] <span class="badge">[[+countTags]]</span></a>`
                                                                                                                                                        ]]
                                                                                                                                                        
                                                                                                                                                        1. Шведов Дмитрий
                                                                                                                                                          17 августа 2016, 11:22
                                                                                                                                                          Второй пункт исправил, пришлось все переустановить. Но вот с удаление все так же. Причем на странице «Поиск по тегам» выводит пустые чанки удаленных статей. Я думаю это не сложно делается, но понятия не имею как это исправить.
                                                                                                                                                        2. Данил
                                                                                                                                                          21 июля 2016, 21:24
                                                                                                                                                          Была страница на которой с помощью pdoresources выводились дочерние. После установки tagger и прикрепления группы к шаблону дочерних элементов, перестало заходить на страницу где выводились дочерние, 404. Тэгов даже создать не успел. Что я сделал не так?
                                                                                                                                                          1. Александр Мальцев
                                                                                                                                                            24 июля 2016, 12:49
                                                                                                                                                            Смотрите журнал ошибок MODX, может он что подскажет.
                                                                                                                                                          2. Владимир
                                                                                                                                                            09 июня 2016, 14:05
                                                                                                                                                            Привет всем.
                                                                                                                                                            show for templates без доп. условия (например связи с родительским ресурсом) расстроил. В трех контекстах у меня одинаковые шаблоны для трех разных языков, а вот теги надо разные. Соответственно, в админке сейчас выводятся все три варианта (три группы), боюсь менеджеры будут путаться.
                                                                                                                                                            Может у кого то есть мысли, простой костыль, что бы показывать в админке строго в связи с родительским ресурсом?
                                                                                                                                                            1. Андрей
                                                                                                                                                              19 апреля 2016, 15:32
                                                                                                                                                              Сделал такую выборку вместе с ms2Gallery:
                                                                                                                                                              [[!pdoPage?
                                                                                                                                                              	&element=`getTickets`
                                                                                                                                                              	&tpl=`tpl.begin.blog` 
                                                                                                                                                              	&includeContent=`1`
                                                                                                                                                              	&ajaxMode=`default`
                                                                                                                                                              	&limit=`6`
                                                                                                                                                              	&hideContainers=`1`
                                                                                                                                                                      &class=`TaggerTagResource`
                                                                                                                                                              	&loadModels=`ms2gallery,tagger` 
                                                                                                                                                              	&tplPageWrapper=`@INLINE <nav class="pagination-wrapper"><ul class="pagination">[[+prev]][[+pages]][[+next]]</ul></nav>`
                                                                                                                                                              	&leftJoin=`{
                                                                                                                                                              	"600x400": {"class":"msResourceFile","alias":"600x400", "on": "600x400.resource_id = Ticket.id AND 600x400.path LIKE '%/600x400/' AND 600x400.rank=0"},
                                                                                                                                                              	"NameTag": {"class": "TaggerTag","on": "TaggerTagResource.tag = NameTag.id"},
                                                                                                                                                                  "Posts": {"class": "modResource","on": "TaggerTagResource.resource = Posts.id"}
                                                                                                                                                              	}`
                                                                                                                                                              	&select=`{
                                                                                                                                                              	"Ticket":"*",
                                                                                                                                                              	"600x400":"600x400.url as 600x400",
                                                                                                                                                              	"TaggerTagResource": "*",
                                                                                                                                                                  "NameTag": "NameTag.tag, NameTag.alias",
                                                                                                                                                                  "Posts": "Posts.id, Posts.pagetitle, Posts.description"
                                                                                                                                                              	}`
                                                                                                                                                              	&where=`{
                                                                                                                                                                  "NameTag.alias": "[[!#GET.tag]]"
                                                                                                                                                              	}`
                                                                                                                                                              	&sortby=`TaggerTagResource.resource`
                                                                                                                                                              	&sortdir=`ASC`
                                                                                                                                                              	&showLog=`1`
                                                                                                                                                              	]]
                                                                                                                                                              Пишет что у него поля выборки нет
                                                                                                                                                              0.0000272: Loaded model "ms2gallery" from "//home/admin/web/10lic.ru/private/core/components/ms2gallery/model/"
                                                                                                                                                              0.0000100: Loaded model "tagger" from "//home/admin/web/10lic.ru/private/core/components/tagger/model/"
                                                                                                                                                              0.0000472: Query parameters are prepared.
                                                                                                                                                              0.0000439: xPDO query object created
                                                                                                                                                              0.0002000: leftJoined TicketsSection as Section
                                                                                                                                                              0.0001440: leftJoined modUser as User
                                                                                                                                                              0.0001509: leftJoined modUserProfile as Profile
                                                                                                                                                              0.0001478: leftJoined msResourceFile as 600x400
                                                                                                                                                              0.0006709: leftJoined TaggerTag as NameTag
                                                                                                                                                              0.0001569: leftJoined modResource as Posts
                                                                                                                                                              0.0000041: Grouped by Ticket.id
                                                                                                                                                              0.0001259: Added selection of TicketsSection: SQL_CALC_FOUND_ROWS `id` AS `section.id`, `type` AS `section.type`, `contentType` AS `section.contentType`, `pagetitle` AS `section.pagetitle`, `longtitle` AS `section.longtitle`, `description` AS `section.description`, `alias` AS `section.alias`, `link_attributes` AS `section.link_attributes`, `published` AS `section.published`, `pub_date` AS `section.pub_date`, `unpub_date` AS `section.unpub_date`, `parent` AS `section.parent`, `isfolder` AS `section.isfolder`, `introtext` AS `section.introtext`, `richtext` AS `section.richtext`, `template` AS `section.template`, `menuindex` AS `section.menuindex`, `searchable` AS `section.searchable`, `cacheable` AS `section.cacheable`, `createdby` AS `section.createdby`, `createdon` AS `section.createdon`, `editedby` AS `section.editedby`, `editedon` AS `section.editedon`, `deleted` AS `section.deleted`, `deletedon` AS `section.deletedon`, `deletedby` AS `section.deletedby`, `publishedon` AS `section.publishedon`, `publishedby` AS `section.publishedby`, `menutitle` AS `section.menutitle`, `donthit` AS `section.donthit`, `privateweb` AS `section.privateweb`, `privatemgr` AS `section.privatemgr`, `content_dispo` AS `section.content_dispo`, `hidemenu` AS `section.hidemenu`, `class_key` AS `section.class_key`, `context_key` AS `section.context_key`, `content_type` AS `section.content_type`, `uri` AS `section.uri`, `uri_override` AS `section.uri_override`, `hide_children_in_tree` AS `section.hide_children_in_tree`, `show_in_tree` AS `section.show_in_tree`, `properties` AS `section.properties`
                                                                                                                                                              0.0000241: Added selection of modUser: `username`
                                                                                                                                                              0.0000470: Added selection of modUserProfile: `internalKey`, `fullname`, `email`, `phone`, `mobilephone`, `blocked`, `blockeduntil`, `blockedafter`, `logincount`, `lastlogin`, `thislogin`, `failedlogincount`, `sessionid`, `dob`, `gender`, `address`, `country`, `city`, `state`, `zip`, `fax`, `photo`, `comment`, `website`, `extended`
                                                                                                                                                              0.0002232: Added selection of Ticket: `id`, `type`, `contentType`, `pagetitle`, `longtitle`, `description`, `alias`, `link_attributes`, `published`, `pub_date`, `unpub_date`, `parent`, `isfolder`, `introtext`, `content`, `richtext`, `template`, `menuindex`, `searchable`, `cacheable`, `createdby`, `createdon`, `editedby`, `editedon`, `deleted`, `deletedon`, `deletedby`, `publishedon`, `publishedby`, `menutitle`, `donthit`, `privateweb`, `privatemgr`, `content_dispo`, `hidemenu`, `class_key`, `context_key`, `content_type`, `uri`, `uri_override`, `hide_children_in_tree`, `show_in_tree`, `properties`
                                                                                                                                                              0.0000331: Added selection of msResourceFile: 600x400.url as 600x400
                                                                                                                                                              0.0000858: Added selection of TaggerTagResource: `tag`, `resource`
                                                                                                                                                              0.0000339: Added selection of TaggerTag: NameTag.tag, NameTag.alias
                                                                                                                                                              0.0000319: Added selection of modResource: Posts.id, Posts.pagetitle, Posts.description
                                                                                                                                                              0.0002210: Added where condition: class_key=Ticket, NameTag.alias=esn
                                                                                                                                                              0.0000720: Sorted by TaggerTagResource.resource, ASC
                                                                                                                                                              0.0000060: Limited to 6, offset 0
                                                                                                                                                              0.0007141: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `Section`.`id` AS `section.id`, `Section`.`type` AS `section.type`, `Section`.`contentType` AS `section.contentType`, `Section`.`pagetitle` AS `section.pagetitle`, `Section`.`longtitle` AS `section.longtitle`, `Section`.`description` AS `section.description`, `Section`.`alias` AS `section.alias`, `Section`.`link_attributes` AS `section.link_attributes`, `Section`.`published` AS `section.published`, `Section`.`pub_date` AS `section.pub_date`, `Section`.`unpub_date` AS `section.unpub_date`, `Section`.`parent` AS `section.parent`, `Section`.`isfolder` AS `section.isfolder`, `Section`.`introtext` AS `section.introtext`, `Section`.`richtext` AS `section.richtext`, `Section`.`template` AS `section.template`, `Section`.`menuindex` AS `section.menuindex`, `Section`.`searchable` AS `section.searchable`, `Section`.`cacheable` AS `section.cacheable`, `Section`.`createdby` AS `section.createdby`, `Section`.`createdon` AS `section.createdon`, `Section`.`editedby` AS `section.editedby`, `Section`.`editedon` AS `section.editedon`, `Section`.`deleted` AS `section.deleted`, `Section`.`deletedon` AS `section.deletedon`, `Section`.`deletedby` AS `section.deletedby`, `Section`.`publishedon` AS `section.publishedon`, `Section`.`publishedby` AS `section.publishedby`, `Section`.`menutitle` AS `section.menutitle`, `Section`.`donthit` AS `section.donthit`, `Section`.`privateweb` AS `section.privateweb`, `Section`.`privatemgr` AS `section.privatemgr`, `Section`.`content_dispo` AS `section.content_dispo`, `Section`.`hidemenu` AS `section.hidemenu`, `Section`.`class_key` AS `section.class_key`, `Section`.`context_key` AS `section.context_key`, `Section`.`content_type` AS `section.content_type`, `Section`.`uri` AS `section.uri`, `Section`.`uri_override` AS `section.uri_override`, `Section`.`hide_children_in_tree` AS `section.hide_children_in_tree`, `Section`.`show_in_tree` AS `section.show_in_tree`, `Section`.`properties` AS `section.properties`, `User`.`username`, `Profile`.`internalKey`, `Profile`.`fullname`, `Profile`.`email`, `Profile`.`phone`, `Profile`.`mobilephone`, `Profile`.`blocked`, `Profile`.`blockeduntil`, `Profile`.`blockedafter`, `Profile`.`logincount`, `Profile`.`lastlogin`, `Profile`.`thislogin`, `Profile`.`failedlogincount`, `Profile`.`sessionid`, `Profile`.`dob`, `Profile`.`gender`, `Profile`.`address`, `Profile`.`country`, `Profile`.`city`, `Profile`.`state`, `Profile`.`zip`, `Profile`.`fax`, `Profile`.`photo`, `Profile`.`comment`, `Profile`.`website`, `Profile`.`extended`, `Ticket`.`id`, `Ticket`.`type`, `Ticket`.`contentType`, `Ticket`.`pagetitle`, `Ticket`.`longtitle`, `Ticket`.`description`, `Ticket`.`alias`, `Ticket`.`link_attributes`, `Ticket`.`published`, `Ticket`.`pub_date`, `Ticket`.`unpub_date`, `Ticket`.`parent`, `Ticket`.`isfolder`, `Ticket`.`introtext`, `Ticket`.`content`, `Ticket`.`richtext`, `Ticket`.`template`, `Ticket`.`menuindex`, `Ticket`.`searchable`, `Ticket`.`cacheable`, `Ticket`.`createdby`, `Ticket`.`createdon`, `Ticket`.`editedby`, `Ticket`.`editedon`, `Ticket`.`deleted`, `Ticket`.`deletedon`, `Ticket`.`deletedby`, `Ticket`.`publishedon`, `Ticket`.`publishedby`, `Ticket`.`menutitle`, `Ticket`.`donthit`, `Ticket`.`privateweb`, `Ticket`.`privatemgr`, `Ticket`.`content_dispo`, `Ticket`.`hidemenu`, `Ticket`.`class_key`, `Ticket`.`context_key`, `Ticket`.`content_type`, `Ticket`.`uri`, `Ticket`.`uri_override`, `Ticket`.`hide_children_in_tree`, `Ticket`.`show_in_tree`, `Ticket`.`properties`, 600x400.url as 600x400, `TaggerTagResource`.`tag`, `TaggerTagResource`.`resource`, NameTag.tag, NameTag.alias, Posts.id, Posts.pagetitle, Posts.description FROM `lic10_tagger_tag_resources` AS `TaggerTagResource` LEFT JOIN `lic10_site_content` `Section` ON `Section`.`id` = `Ticket`.`parent` LEFT JOIN `lic10_users` `User` ON `User`.`id` = `Ticket`.`createdby` LEFT JOIN `lic10_user_attributes` `Profile` ON `Profile`.`internalKey` = `User`.`id` LEFT JOIN `lic10_ms2_resource_files` `600x400` ON 600x400.resource_id = Ticket.id AND 600x400.path LIKE '%/600x400/' AND 600x400.rank=0 LEFT JOIN `lic10_tagger_tags` `NameTag` ON TaggerTagResource.tag = NameTag.id LEFT JOIN `lic10_site_content` `Posts` ON TaggerTagResource.resource = Posts.id WHERE  ( `TaggerTagResource`.`class_key` = 'Ticket' AND `NameTag`.`alias` = 'esn' )  GROUP BY Ticket.id ORDER BY TaggerTagResource.resource ASC LIMIT 6 "
                                                                                                                                                              0.0009739: Could not process query, error #1054: Unknown column 'Ticket.id' in 'field list'
                                                                                                                                                              0.0000122: Returning processed chunks
                                                                                                                                                              0.3597610: Total time
                                                                                                                                                              13 893 632: Memory usage
                                                                                                                                                              Помогите пожалуйста
                                                                                                                                                              1. Александр Мальцев
                                                                                                                                                                19 апреля 2016, 16:36
                                                                                                                                                                У Вас ошибка в первом leftJoin, т.к. она, не как ни связана с TaggerTagResource.
                                                                                                                                                                1. Андрей
                                                                                                                                                                  19 апреля 2016, 16:53
                                                                                                                                                                  Такой вывод нужен из-за использования 1-го изображения галереи ms2gallery, чтобы потом не заполнять отдельно фото анонса. Как же быть в этой ситуации, сможете подсказать? Спасибо
                                                                                                                                                                  1. Александр Мальцев
                                                                                                                                                                    20 апреля 2016, 13:59
                                                                                                                                                                    Попробуйте в первом leftJoin поменять Ticket.id на TaggerTagResource.resource.
                                                                                                                                                                    1. Андрей
                                                                                                                                                                      20 апреля 2016, 16:14
                                                                                                                                                                      Я в отчаянии
                                                                                                                                                                      &leftJoin=`{
                                                                                                                                                                      	"600x400": {"class":"msResourceFile","alias":"600x400", "on": "600x400.resource_id = TaggerTagResource.resource AND 600x400.path LIKE '%/600x400/' AND 600x400.rank=0"},
                                                                                                                                                                      	"NameTag": {"class": "TaggerTag","on": "TaggerTagResource.tag = NameTag.id"},
                                                                                                                                                                          "Posts": {"class": "modResource","on": "TaggerTagResource.resource = Posts.id"}
                                                                                                                                                                      	}`
                                                                                                                                                                      0.0008740: Could not process query, error #1054: Unknown column 'Ticket.id' in 'field list'
                                                                                                                                                                      1. Андрей
                                                                                                                                                                        20 апреля 2016, 16:29
                                                                                                                                                                        Заработало только с &element=`pdoResources` вместо &element=`getTickets` только теперь [[+fullname]] не работает и другие плюшки тикета
                                                                                                                                                                        1. Дмитрий
                                                                                                                                                                          29 сентября 2016, 13:49
                                                                                                                                                                          Здравствуйте! У меня такая же проблема, вы разобрались как подружить Tickets и Tagger?
                                                                                                                                                                          1. Александр Мальцев
                                                                                                                                                                            03 октября 2016, 11:21
                                                                                                                                                                            Используйте вместо modResource его расширенную версию Ticket
                                                                                                                                                                            "Posts": { "class": "Ticket", "on": "TaggerTagResources.resource = Posts.id"}
                                                                                                                                                                            
                                                                                                                                                              2. Александр
                                                                                                                                                                14 апреля 2016, 03:30
                                                                                                                                                                Здравствуйте, большое спасибо за урок.
                                                                                                                                                                У меня возникла не большая проблема как у комментария выше. Не выводятся tv параметры на странице «вывод стайте по тегу» уж не знаю что и делать, всю голову сломал. Подскажите пожалуйста как можно наладить вывод tv параметров.
                                                                                                                                                                Вот такая ошибка в логах.
                                                                                                                                                                [2016-04-14 02:34:48] (ERROR @ /index.php) [pdoTools] Instantiated a derived class "TaggerTagResource" that is not a subclass of the "modResource", so tvs not joining.
                                                                                                                                                                1. Александр Мальцев
                                                                                                                                                                  14 апреля 2016, 15:53
                                                                                                                                                                  Здравствуйте.
                                                                                                                                                                  В этой статье работа с тегами осуществляется с помощью компонента Tagger. TV поля не используются.
                                                                                                                                                                  1. Александр
                                                                                                                                                                    14 апреля 2016, 21:01
                                                                                                                                                                    А возможно подключить при выводе статей по тегу дополнительно к статье tv поле? Просто у меня через tv поле выводиться изображение к статье, а tagger выводит теги и он работает корректно.
                                                                                                                                                                2. Серый
                                                                                                                                                                  11 апреля 2016, 21:13
                                                                                                                                                                  И еще у меня проблемка — для вывода getProducts я настроил для getPages параметры пагинатора внутри выражения:
                                                                                                                                                                  [[!getPage?
                                                                                                                                                                      &elementClass=`modSnippet`
                                                                                                                                                                      &element=`getProducts`
                                                                                                                                                                      &tpl=`device-card`
                                                                                                                                                                      &sortby=`pagetitle`
                                                                                                                                                                      &includeTVs=`1`
                                                                                                                                                                      &includeTVList=`price1,image`
                                                                                                                                                                      &limit=`10`
                                                                                                                                                                      &pageFirstTpl=` <li> <a [[+classes]] href="[[+href]]">Первая</a> </li> `
                                                                                                                                                                      &pageLastTpl=` <li> <a [[+classes]] href="[[+href]]">Последняя</a> </li> `
                                                                                                                                                                      &pageNextTpl=` <li> <a style="font-size:21px;line-height:17px;"[[+classes]] href="[[+href]]">→</a> </li> `
                                                                                                                                                                      &pagePrevTpl=` <li> <a style="font-size:21px;line-height:17px;"[[+classes]] href="[[+href]]">←</a> </li> `
                                                                                                                                                                      &pageActiveTpl=` <li class="active"> <a [[+classes]]">[[+pageNo]]</a> </li> `
                                                                                                                                                                  ]]
                                                                                                                                                                  <p style="display: inline-block;width: 100%;">
                                                                                                                                                                  	<ul class="pagination">
                                                                                                                                                                  		[[!+page.nav]]
                                                                                                                                                                  	</ul>
                                                                                                                                                                  </p>
                                                                                                                                                                  А когда помещаю все эти &page...Tpl в приведенное у вас выражение вставлял, почему-то не работает((
                                                                                                                                                                  1. Александр Мальцев
                                                                                                                                                                    14 апреля 2016, 16:14
                                                                                                                                                                    Сниппету getPage нельзя таким образом задавать шаблоны (tpl). Изменение стандартных шаблонов в getPage осуществляется через набор свойств.
                                                                                                                                                                  2. Серый
                                                                                                                                                                    11 апреля 2016, 20:52
                                                                                                                                                                    Спасибо за туториал!
                                                                                                                                                                    Я пытаюсь настроить небольшой магазинчик на базе Shopkeeper`a, с tagManager`ом не срастается никак, поэтому я решил воспользоваться компонентом Tagger и без вашего урока сам бы ни за что!
                                                                                                                                                                    Вобщем, всё хорошо, всё как надо, но на странице вывода связанных с тегом товаров не выводится цена товара, указанная в TV-поле. Причем, картинка, добавляемая также через TV отображается нормально, а цену не выводит((
                                                                                                                                                                    Может быть как-то можно организовать вывод товаров по тегу через getProducts? Ну или просто что б цену выводил…
                                                                                                                                                                    1. Саша
                                                                                                                                                                      29 марта 2016, 18:10
                                                                                                                                                                      Александр, поможете сделать выборку в два этапа?
                                                                                                                                                                      А со вторым вопросом?
                                                                                                                                                                      1. Александр Мальцев
                                                                                                                                                                        02 апреля 2016, 17:14
                                                                                                                                                                        Саша, не надо дублировать вопросы.
                                                                                                                                                                        Ответ на 1 вопрос:
                                                                                                                                                                        itchief.ru/lessons/modx-revo/modx-tag-cloud#comment-1821
                                                                                                                                                                        Чтобы разобраться со вторым вопросом (пустая страница). Для начала посмотри, какая ошибка возникает.
                                                                                                                                                                      2. Саша
                                                                                                                                                                        28 марта 2016, 17:40
                                                                                                                                                                        И ещё вопрос. В чанке «news_blog_item»(который отвечает за вывод отдельного поста в категории), если я вставляю
                                                                                                                                                                        [[!TaggerGetTags?
                                                                                                                                                                          &resources=`[[+id]]` 
                                                                                                                                                                          &rowTpl=`@INLINE <a href="[[~29]]?tag=[[+alias]]">#[[+tag]]</a>`
                                                                                                                                                                        ]]
                                                                                                                                                                        теги выводятся нормально, но в ссылке вместо "[[+alias]]" выводится псевдоним поста "[[*alias]]". Почему может не срабатывать вывод алиаса тега?
                                                                                                                                                                        Посты вывожу на странице коллекции так:
                                                                                                                                                                        [[!pdoPage? &element=`pdoResources` &showHidden=`1` &tpl=`news_blog_item` &limit=`1` &includeTVs=`image` &parents=`[[*id]]` &hideContainers=`1` &pageNavVar=`page.nav`]] Страница [[+page]] из [[+pageCount]] [[!+page.nav]]
                                                                                                                                                                        1. Александр Мальцев
                                                                                                                                                                          02 апреля 2016, 17:16
                                                                                                                                                                          Попробуй вместо @INLINE использовать чанк.
                                                                                                                                                                          1. Алексей
                                                                                                                                                                            31 марта 2016, 15:24
                                                                                                                                                                            Выводи так. Тогда будет алиас тега.
                                                                                                                                                                            У меня в .haccess прописано так
                                                                                                                                                                            RewriteRule ^tag/(.*)$ /tag?tag=$1 [L]
                                                                                                                                                                            и работает.
                                                                                                                                                                            Не надо создавать новый тип содержимого. Достаточно в текущем удалить расширение. У меня тоже ссылки без html.
                                                                                                                                                                          2. Саша
                                                                                                                                                                            27 марта 2016, 23:00
                                                                                                                                                                            Приветствую, Александр)
                                                                                                                                                                            Я только начинаю свое знакомство с Modx и пока дается трудновато. Поэтому прошу помочь заставить работать countTags в постах, если выводим их через pdoResources. Как?
                                                                                                                                                                            [[!pdoResources?
                                                                                                                                                                              &loadModels=`tagger`
                                                                                                                                                                              &class=`TaggerTagResource`
                                                                                                                                                                              &leftJoin=`{
                                                                                                                                                                                "ListTag": {
                                                                                                                                                                                  "class": "TaggerTag",
                                                                                                                                                                                  "on": "TaggerTagResource.tag = ListTag.id"
                                                                                                                                                                                },
                                                                                                                                                                                "Article": {
                                                                                                                                                                                  "class": "modResource",
                                                                                                                                                                                  "on": "TaggerTagResource.resource = Article.id"
                                                                                                                                                                                }
                                                                                                                                                                              }`
                                                                                                                                                                              &select=`{
                                                                                                                                                                                "ListTag": "ListTag.tag as tagName, ListTag.alias as tagAlias"
                                                                                                                                                                              }`
                                                                                                                                                                              &where=`{
                                                                                                                                                                                "Article.id": "[[*id]]"
                                                                                                                                                                              }`
                                                                                                                                                                              &sortby=`ListTag.alias`
                                                                                                                                                                              &sortdir=`ASC`  
                                                                                                                                                                              &tpl= `@INLINE <a href="[[~23]]?tag=[[+tagAlias]]">#[[+tagName]] ([[+countTags]])</a>`
                                                                                                                                                                            ]]
                                                                                                                                                                            Большое спасибо за itchief.ru/lessons/modx-revo/modx-tag-cloud#comment-1392

                                                                                                                                                                            Также нашел здесь же в комментариях способ привести ЧПУ к виду /tag/…
                                                                                                                                                                            Так вот у меня 23 ресурс выводит статьи по тегу и ссылки имеют вид "/articles/tag?tag=jquery". Ссылку формировал как указано здесь itchief.ru/lessons/modx-revo/modx-tag-cloud#comment-1361 и .htaccess правил соответственно, но выводится белая страница при переходе /articles/tag/… что я сделал не так?
                                                                                                                                                                            1. Александр Мальцев
                                                                                                                                                                              28 марта 2016, 14:17
                                                                                                                                                                              Здравствуйте.
                                                                                                                                                                              Первый вопрос не совсем понял. Что Вы хотите сделать?
                                                                                                                                                                              Во втором — необходимо проверить правильность URL (URI) в .htaccess, ресурсах и в параметрах сниппетов.
                                                                                                                                                                              1. Саша
                                                                                                                                                                                28 марта 2016, 14:36
                                                                                                                                                                                [[+countTags]] — не выводится счетчик с общим количеством статей по тегу. Идет выборка через pdoResources, но не в облако тегов в сайдбар, а в каждой статье. Соответственно не понимаю, что дописать в данный код, чтобы начали выводится [[+countTags]] к каждому тегу из ListTag.

                                                                                                                                                                                Касаемо URL меня стоит Translit и ссылки выводятся без .html на конце(Создал новый Тип содержимого HTML-NO). Формируя ссылки на теги [[+tag]] и добавив в .htaccess RewriteRule ^articles/(.*)$ /articles?tag=$1 [L] пустая страница при переходе по тегу
                                                                                                                                                                                1. Александр Мальцев
                                                                                                                                                                                  31 марта 2016, 07:59
                                                                                                                                                                                  Тут необходимо выбрать в 2 этапа (например, с помощью pdoResources).
                                                                                                                                                                                  1 Этап. Создаём сниппет (например, mySnippet). Он будет выбирать теги текущего ресурса и выдавать на выходе некоторую строку (условие).
                                                                                                                                                                                  <?php
                                                                                                                                                                                  $pdo = $modx->getService('pdoTools');
                                                                                                                                                                                  $data = $modx->runSnippet('pdoResources', array(
                                                                                                                                                                                    'loadModels'=>'tagger',
                                                                                                                                                                                    'class'=>'TaggerTagResource',
                                                                                                                                                                                    'select' => array(
                                                                                                                                                                                      'TaggerTagResource' => 'TaggerTagResource.tag'
                                                                                                                                                                                    ),
                                                                                                                                                                                    'where' => array(
                                                                                                                                                                                      'TaggerTagResource.resource' => $resource 
                                                                                                                                                                                    ),
                                                                                                                                                                                    'sortby'=> 'TaggerTagResource.tag',
                                                                                                                                                                                    'sortdir' =>'asc',
                                                                                                                                                                                    'showLog' => '0',
                                                                                                                                                                                    'outputSeparator' => ',',
                                                                                                                                                                                    'tpl' => '@INLINE [[+tag]]'
                                                                                                                                                                                  ));
                                                                                                                                                                                  $data = '{"tag:IN":['.$data.']}';
                                                                                                                                                                                  return $data;
                                                                                                                                                                                  
                                                                                                                                                                                  На выходе получим что-то такое (где 2,4 — это id тегов текущего ресурса):
                                                                                                                                                                                  {"tag:IN":[2,4]}
                                                                                                                                                                                  2. Выбрать теги с количеством и оставить только те из них, которые соответствуют текущему ресурсу (т.е., например, 2 и 4):
                                                                                                                                                                                  [[!pdoResources?
                                                                                                                                                                                    &loadModels=`tagger`
                                                                                                                                                                                    &class=`TaggerTagResource`
                                                                                                                                                                                    &select=`{
                                                                                                                                                                                      "TaggerTagResource": "TaggerTagResource.tag as tag, COUNT(TaggerTagResource.resource) as countTags",
                                                                                                                                                                                      "TaggerTag" : "TaggerTag.alias"
                                                                                                                                                                                    }`
                                                                                                                                                                                    &leftJoin=`{
                                                                                                                                                                                      "TaggerTag": {
                                                                                                                                                                                        "class": "TaggerTag",
                                                                                                                                                                                        "on": "TaggerTag.id = TaggerTagResource.tag"
                                                                                                                                                                                      }
                                                                                                                                                                                    }`
                                                                                                                                                                                    &where=`[[!mySnippet? &resource=`[[*id]]`]]`	
                                                                                                                                                                                    &groupby=`TaggerTagResource.tag`
                                                                                                                                                                                    &sortby=`TaggerTagResource.tag`
                                                                                                                                                                                    &sortdir=`ASC`  
                                                                                                                                                                                    &tpl=`@INLINE <a href="[[~23]]?tag=[[+tag]]" class="btn btn-primary">[[+alias]] <span class="badge">[[+countTags]]</span></a>`
                                                                                                                                                                                  ]]
                                                                                                                                                                                  
                                                                                                                                                                            2. Алексей
                                                                                                                                                                              08 марта 2016, 15:47
                                                                                                                                                                              Шеф, может пригодится кому)
                                                                                                                                                                              Сделал себе такие настройки и стало просто сказка)

                                                                                                                                                                              Расположил под контентом, чтобы можно было всё сразу на одной странице делать) Теги можно создавать прямо при создании/редактировании материала. Не надо заранее заморачиваться. Неиспользуемые удаляются. И теги сами выводятся под списком, остаётся только мышкой нажать на нужные.
                                                                                                                                                                              1. Андрей
                                                                                                                                                                                22 февраля 2016, 00:02
                                                                                                                                                                                Александр, Вы можете прокомментировать, чем Ваше решение отличается от _http://realadmin.ru/saytostroy/key-word-in-modx.html? Вроде тоже самое можно сделать, только проще. Спасибо
                                                                                                                                                                                1. Александр Мальцев
                                                                                                                                                                                  22 февраля 2016, 09:47
                                                                                                                                                                                  Решение в представленной ссылке базируется на TV-поле. Для выборки данных используется tagLister и getResources. Здесь приведено решение на базе компонента Tagger. Функционал Tagger намного больше, чем у одного TV-поля. Вот основное отличие. Чтобы что-то дальше сравнивать необходимо проводить анализ быстродействия. Если функционал особо не нужен, то какое решение будет быстрее, то лучше. Жалко, что в указанном ресурсе нет картинок, чтобы посмотреть, что хоть там получилось…
                                                                                                                                                                                  1. Андрей
                                                                                                                                                                                    23 февраля 2016, 11:37
                                                                                                                                                                                    Я правильно понимаю, что с помощью групп Tagger-а можно выводить теги разных категорий публикаций и разделять их? Т.е. у меня есть новости и есть раздел с нормативной базой и их можно независимо теггировать и выводить.
                                                                                                                                                                                    1. Александр Мальцев
                                                                                                                                                                                      24 февраля 2016, 14:32
                                                                                                                                                                                      Tagger позволяет создавать группы, а уже к группам привязывать теги. Т.е. теги, например, у одной группы будут одни, а у другой — будут другие. Группы тоже можно привязывать к различным ресурсам (а точнее шаблонам).Т.е. новости могут иметь один набор тегов, а нормативная база — другие.
                                                                                                                                                                                2. Алексей
                                                                                                                                                                                  04 февраля 2016, 09:15
                                                                                                                                                                                  Шеф, возникло два вопроса)
                                                                                                                                                                                  1. На странице с одной статьёй облако тегов, которое в правой колонке, выводится без проблем. Но на главной странице блога и на всех таких страницах (т.е. разделы с тикетами которые) вместо облака тегов подгружаются статьи в виде блога, как на самой странице. Я так понимаю это из-за плейсхолдера [[+output]], который, по ходу, тоже Тикетсом используется. Может надо какие-то манипуляции сделать как здесь со сниппетом mSearch?

                                                                                                                                                                                  2. Как сделать, чтобы сами теги ещё отображались в статьях на главной странице блога? С параметром
                                                                                                                                                                                  &resources=`[[*id]]`
                                                                                                                                                                                  ничего не выводит, видимо, не может id подцепить. А без этого параметра выводятся все используемые теги.
                                                                                                                                                                                  1. Александр Мальцев
                                                                                                                                                                                    04 февраля 2016, 14:54
                                                                                                                                                                                    Но, не используй output.
                                                                                                                                                                                    Сделай следующим образом:
                                                                                                                                                                                    <div class="panel panel-primary">
                                                                                                                                                                                      <div class="panel-heading">
                                                                                                                                                                                        <span class="glyphicon glyphicon-tags"></span> Теги
                                                                                                                                                                                      </div>
                                                                                                                                                                                      <div class="panel-body">
                                                                                                                                                                                        [[!pdoResources?
                                                                                                                                                                                          &loadModels=`tagger`
                                                                                                                                                                                          &class=`TaggerTag`
                                                                                                                                                                                          &leftJoin=`{
                                                                                                                                                                                            "TaggerTagResources": {
                                                                                                                                                                                    	  "class": "TaggerTagResource",
                                                                                                                                                                                    	  "on": "TaggerTag.id = TaggerTagResources.tag"
                                                                                                                                                                                            }
                                                                                                                                                                                          }`
                                                                                                                                                                                          &select=`{
                                                                                                                                                                                            "TaggerTag": "*",
                                                                                                                                                                                    	"TaggerTagResources": "COUNT(TaggerTagResources.tag) as countTags"
                                                                                                                                                                                          }`
                                                                                                                                                                                          &groupby=`TaggerTag.id`
                                                                                                                                                                                          &sortby=`TaggerTag.tag`
                                                                                                                                                                                          &sortdir=`ASC`  
                                                                                                                                                                                          &tpl=`@INLINE <a href="[[~20]]?tag=[[+alias]]" class="btn btn-primary">[[+tag]] <span class="badge">[[+countTags]]</span></a>`
                                                                                                                                                                                        ]]
                                                                                                                                                                                      </div>
                                                                                                                                                                                    </div>
                                                                                                                                                                                    
                                                                                                                                                                                    Если вывод статей осуществляешь с помощью getTicket, то необходимо сделать следующее:
                                                                                                                                                                                    1. Сделать копию чанка tpl.Tickets.list.row, например, с именем tpl.Tickets.list.row2.
                                                                                                                                                                                    2. Открыть чанк и добавить в него вызов TagerGetTags, например, под названием статьи:
                                                                                                                                                                                    <div class="tickets-row">
                                                                                                                                                                                      <h3 class="title"><a href="[[~[[+id]]]]">[[+pagetitle]]</a></h3>
                                                                                                                                                                                      [[TaggerGetTags?
                                                                                                                                                                                        &resources=`[[+id]]`
                                                                                                                                                                                        &rowTpl=`@INLINE <div class="btn-group"><span class="btn btn-primary btn-sm">#</span><a class="btn btn-info btn-sm" href="[[~20]]?tag=[[+alias]]">[[+tag]]</a></div>`
                                                                                                                                                                                      ]]
                                                                                                                                                                                    
                                                                                                                                                                                    3. Указать данный чанк в качестве параметра &tpl:
                                                                                                                                                                                    [[!pdoPage? &element=`getTickets` &tpl=`tpl.Tickets.list.row2` &limit=`5`]]
                                                                                                                                                                                    [[!+page.nav]]
                                                                                                                                                                                    
                                                                                                                                                                                    1. Алексей
                                                                                                                                                                                      04 февраля 2016, 16:13
                                                                                                                                                                                      Александр, очередной раз огромная благодарность тебе! Всё работает. Думал, что без output не будут теги выводится)
                                                                                                                                                                                      По п.п. 1,2,3 у меня и так все было сделано) Надо только было
                                                                                                                                                                                      &resources=`[[*id]]`
                                                                                                                                                                                      заменить на
                                                                                                                                                                                      &resources=`[[+id]]`
                                                                                                                                                                                      Но появился такой косячок:
                                                                                                                                                                                      Ссылка вида
                                                                                                                                                                                      &rowTpl=`@INLINE <a href="[[~44]]?tag=[[+alias]]"><i class="fa fa-hashtag"></i>[[+tag]]</a>`
                                                                                                                                                                                      в статьях и облаке ведёт как и надо на _http://site.ru/show-posts?tag=алиас тега
                                                                                                                                                                                      А в разделах с тикетами, то бишь на главной станице блога на _http://site.ru/show-posts?tag=алиас статьи
                                                                                                                                                                                      Я так понимаю [[+alias]] перехватывается Тикетсом) Как тут-то быть?)
                                                                                                                                                                                      1. Александр Мальцев
                                                                                                                                                                                        04 февраля 2016, 17:10
                                                                                                                                                                                        Дать другие имена:
                                                                                                                                                                                        &select=`{
                                                                                                                                                                                          "TaggerTag": "TaggerTag.tag as tagName, TaggerTag.alias as tagAlias",
                                                                                                                                                                                          "TaggerTagResources": "COUNT(TaggerTagResources.tag) as countTags"
                                                                                                                                                                                        }`
                                                                                                                                                                                        
                                                                                                                                                                                        Ну и соответственно использовать их при выводе:
                                                                                                                                                                                        &tpl=`@INLINE <a href="[[~20]]?tag=[[+tagAlias]]" class="btn btn-primary">[[+tagName]] <span class="badge">[[+countTags]]</span></a>`
                                                                                                                                                                                        
                                                                                                                                                                                        1. Алексей
                                                                                                                                                                                          04 февраля 2016, 18:06
                                                                                                                                                                                          В облаке тегов работает как положено. А вот в самих статьях и на странице блога не подхватывает новые имена. По аналогии даже не пойму, что туда добавить нужно) Пробовал добавить select такой же. Не работает.
                                                                                                                                                                                          Я только не могу понять, как самому в этом начать соображать) Учить php и sql?
                                                                                                                                                                                          1. Александр Мальцев
                                                                                                                                                                                            05 февраля 2016, 11:56
                                                                                                                                                                                            Это можно сделать с помощью pdoResources:
                                                                                                                                                                                            [[!pdoResources?
                                                                                                                                                                                              &loadModels=`tagger`
                                                                                                                                                                                              &class=`TaggerTagResource`
                                                                                                                                                                                              &leftJoin=`{
                                                                                                                                                                                                "ListTag": {
                                                                                                                                                                                                  "class": "TaggerTag",
                                                                                                                                                                                                  "on": "TaggerTagResource.tag = ListTag.id"
                                                                                                                                                                                                },
                                                                                                                                                                                                "Article": {
                                                                                                                                                                                                  "class": "modResource",
                                                                                                                                                                                                  "on": "TaggerTagResource.resource = Article.id"
                                                                                                                                                                                                }
                                                                                                                                                                                              }`
                                                                                                                                                                                              &select=`{
                                                                                                                                                                                                "ListTag": "ListTag.tag as tagName, ListTag.alias as tagAlias"
                                                                                                                                                                                              }`
                                                                                                                                                                                              &where=`{
                                                                                                                                                                                                "Article.id": "[[*id]]"
                                                                                                                                                                                              }`
                                                                                                                                                                                              &sortby=`ListTag.alias`
                                                                                                                                                                                              &sortdir=`ASC`  
                                                                                                                                                                                              &tpl= `@INLINE <div class="btn-group"><span class="btn btn-primary btn-sm">#</span><a class="btn btn-info btn-sm" href="[[~20]]?tag=[[+tagAlias]]">[[+tagName]]</a></div>`
                                                                                                                                                                                            ]]
                                                                                                                                                                                            
                                                                                                                                                                                            1. Андрей
                                                                                                                                                                                              16 апреля 2016, 03:49
                                                                                                                                                                                              Александр, а как сделать вывод тегов только определенной группы при этом решении?
                                                                                                                                                                                              1. Алексей
                                                                                                                                                                                                05 февраля 2016, 13:36
                                                                                                                                                                                                От души!
                                                                                                                                                                                    2. Сергей
                                                                                                                                                                                      03 февраля 2016, 14:12
                                                                                                                                                                                      Пробовал через .htaccess сделать красивый урл, но ничего не выходит.
                                                                                                                                                                                      RewriteRule ^tag/([^/]+)$ /tag?tag=$1 [L]
                                                                                                                                                                                      1. Алексей
                                                                                                                                                                                        03 февраля 2016, 15:38
                                                                                                                                                                                        Зачем такой огород, когда можно сразу сделать нужную ссылку?)
                                                                                                                                                                                      2. Читатель
                                                                                                                                                                                        02 февраля 2016, 21:15
                                                                                                                                                                                        Спасибо за статью! Подскажите, пожалуйста, как на странице вывода списка статей по тегу получить его название.
                                                                                                                                                                                        1. Александр Мальцев
                                                                                                                                                                                          03 февраля 2016, 16:17
                                                                                                                                                                                          Здравствуйте, тег и его alias находится в таблице (классе) TaggerTag.
                                                                                                                                                                                          Получить его можно следующим образом:
                                                                                                                                                                                          [[!pdoResources?
                                                                                                                                                                                            &loadModels=`tagger`
                                                                                                                                                                                            &class=`TaggerTag`
                                                                                                                                                                                          	&where=`{
                                                                                                                                                                                          	"TaggerTag.alias": "modx"
                                                                                                                                                                                            }`
                                                                                                                                                                                            &select=`{
                                                                                                                                                                                              "TaggerTag": "[[!#GET.tag]]"
                                                                                                                                                                                          	}`
                                                                                                                                                                                            &sortby=`TaggerTag.tag`
                                                                                                                                                                                            &tpl=`@INLINE <h3>Тег: [[+tag]]</h3>`
                                                                                                                                                                                            &fastMode=`1`
                                                                                                                                                                                          ]]
                                                                                                                                                                                          
                                                                                                                                                                                          1. Алексей
                                                                                                                                                                                            04 февраля 2016, 18:21
                                                                                                                                                                                            Шеф, не пойму куда этот код затусовать, чтобы в шаблоне вывода статей по тегу можно было бы добавить его имя.
                                                                                                                                                                                            Например,
                                                                                                                                                                                            &tplWrapper =`@INLINE <h2 class="h3">Всего результатов по тегу [[+tagName]]: [[+page.total]]</h2>[[+output]]`
                                                                                                                                                                                            Или как нибудь ещё.
                                                                                                                                                                                            1. Александр Мальцев
                                                                                                                                                                                              05 февраля 2016, 12:03
                                                                                                                                                                                              Плейсхолдер tagName можно использовать только в чанке, указанном в качестве значения параметра tpl.
                                                                                                                                                                                              1. Алексей
                                                                                                                                                                                                05 февраля 2016, 19:06
                                                                                                                                                                                                Шеф, вот тут-то мне, видимо, нужен развёрнутый ответ) Я не пойму куда и как правильно вставить этот код, чтобы на странице «Статьи по тегу» можно было вывести его название. А то получается Всего результатов: и дальше пошёл список статей. Не совсем понятно по какому тегу они выведены. Пробовал ради эксперимента вставить этот код перед и после вызова сниппета pdoPage, ничего не происходит.
                                                                                                                                                                                                Догадался только изменить код в вызове сниппета pdoPage
                                                                                                                                                                                                "NameTag": "NameTag.tag as tagName, NameTag.alias as tagAlias",
                                                                                                                                                                                                и добавить
                                                                                                                                                                                                <h1>Всего результатов по тегу <i class="fa fa-hashtag"></i>[[+tagName]]: [[+page.total]]</h1>
                                                                                                                                                                                                в чанк, указанном в качестве значения параметра tpl.
                                                                                                                                                                                                Но тогда получается Всего результатов по тегу Разное: 4 перед каждой статьёй.
                                                                                                                                                                                                Как быть то?)
                                                                                                                                                                                                1. Александр Мальцев
                                                                                                                                                                                                  06 февраля 2016, 16:21
                                                                                                                                                                                                  В шаблоне:
                                                                                                                                                                                                  [[!pdoPage?
                                                                                                                                                                                                    &element = `pdoResources`
                                                                                                                                                                                                    &limit=`2`
                                                                                                                                                                                                    &loadModels=`tagger`
                                                                                                                                                                                                    &class=`TaggerTagResource`
                                                                                                                                                                                                    &leftJoin=`{
                                                                                                                                                                                                      "NameTag": {
                                                                                                                                                                                                        "class": "TaggerTag",
                                                                                                                                                                                                        "on": "TaggerTagResource.tag = NameTag.id"
                                                                                                                                                                                                      },
                                                                                                                                                                                                      "Posts": {
                                                                                                                                                                                                        "class": "modResource",
                                                                                                                                                                                                        "on": "TaggerTagResource.resource = Posts.id"
                                                                                                                                                                                                      }
                                                                                                                                                                                                    }`
                                                                                                                                                                                                    &select=`{
                                                                                                                                                                                                      "TaggerTagResource": "*",
                                                                                                                                                                                                      "NameTag": "NameTag.tag, NameTag.alias",
                                                                                                                                                                                                      "Posts": "Posts.id, Posts.pagetitle, Posts.description"
                                                                                                                                                                                                    }`
                                                                                                                                                                                                    &where=`{
                                                                                                                                                                                                      "NameTag.alias": "[[!#GET.tag]]"
                                                                                                                                                                                                    }`
                                                                                                                                                                                                    &tplWrapper =
                                                                                                                                                                                                      `@INLINE <h2 class="h3">Всего результатов ([[+page.total]]) по тегу  
                                                                                                                                                                                                      [[!pdoResources?
                                                                                                                                                                                                        &loadModels=`tagger`
                                                                                                                                                                                                        &class=`TaggerTag`
                                                                                                                                                                                                        &where=`{
                                                                                                                                                                                                  	"TaggerTag.alias": "[[!#GET.tag]]"
                                                                                                                                                                                                        }`
                                                                                                                                                                                                        &select=`{
                                                                                                                                                                                                          "TaggerTag": "TaggerTag.tag as tagPage"
                                                                                                                                                                                                        }`
                                                                                                                                                                                                        &sortby=`TaggerTag.tag`
                                                                                                                                                                                                        &tpl=`@INLINE [[!+tagPage]]`
                                                                                                                                                                                                      ]]
                                                                                                                                                                                                      </h2>[[+output]]`
                                                                                                                                                                                                    &tpl= `chunkTagRow`
                                                                                                                                                                                                    &sortby=`TaggerTagResource.resource`
                                                                                                                                                                                                    &sortdir=`ASC`
                                                                                                                                                                                                  ]]
                                                                                                                                                                                                  [[!+page.nav]]
                                                                                                                                                                                                  
                                                                                                                                                                                                  1. Алексей
                                                                                                                                                                                                    06 февраля 2016, 18:08
                                                                                                                                                                                                    Огромная благодарность тебе! Я даже и не думал, что так можно. Буду рад очередным новым и полезным урокам.
                                                                                                                                                                                        2. Алексей
                                                                                                                                                                                          02 февраля 2016, 18:28
                                                                                                                                                                                          Шеф, лучи добра тебе за очередной полезные материал!
                                                                                                                                                                                          Только надо в параметры вывода тегов добавить
                                                                                                                                                                                          &resources=`[[*id]]`
                                                                                                                                                                                          А то так он выводит ко всем статьям одинаковые теги, добавленные в разные статьи.
                                                                                                                                                                                          Пол дня голову ломал из-за чего так) Уже хотел у тебя тут снова помощи просить, но рад, что сам догадался)
                                                                                                                                                                                          И ещё
                                                                                                                                                                                          allow tag — определяет, можно ли не указывать теги.
                                                                                                                                                                                          Allow blank же)
                                                                                                                                                                                          1. Александр Мальцев
                                                                                                                                                                                            03 февраля 2016, 16:01
                                                                                                                                                                                            Спасибо, Алексей.
                                                                                                                                                                                            1. сергей
                                                                                                                                                                                              02 февраля 2016, 23:51
                                                                                                                                                                                              Спасибо за подробную статью.
                                                                                                                                                                                              Подскажите пожалуйста, теги на кириллице поддерживаются? и возможно ли формировать красивый урл к тегам для поисковой индексации?
                                                                                                                                                                                              Спасибо!
                                                                                                                                                                                              1. Алексей
                                                                                                                                                                                                03 февраля 2016, 12:19
                                                                                                                                                                                                Конечно поддерживаются. Что мешает попробовать?)
                                                                                                                                                                                                В статье же всё написано
                                                                                                                                                                                                Например, тег bootstrap имеет следующий URL:
                                                                                                                                                                                                http://site.ru/show-posts?tag=bootstrap
                                                                                                                                                                                                Или это некрасивый урл?)
                                                                                                                                                                                                1. Сергей
                                                                                                                                                                                                  03 февраля 2016, 12:35
                                                                                                                                                                                                  Да, я уже опробовал кириллицу. У меня просто до этого было проблема с похожим компонентом, поэтому и спросил.
                                                                                                                                                                                                  Красивый урл это вот так: site.ru/tags/name_tag/ — можно такой сделать?
                                                                                                                                                                                                  1. Алексей
                                                                                                                                                                                                    03 февраля 2016, 14:34
                                                                                                                                                                                                    Вывод тегов организуем с помощью ссылок, каждая из которых будет иметь следующее значение атрибута href:
                                                                                                                                                                                                    [[~20]]?tag=[[+alias]]
                                                                                                                                                                                                    где:
                                                                                                                                                                                                    [[~20]] — URL ресурса «Вывод статей по тегу». Данный ресурс будем использовать для вывода статей, имеющих указанный тег.
                                                                                                                                                                                                    [[+alias]] — значение передаваемого GET-параметра tag. Данное значение будем использовать в ресурсе [[~20]] для создания запроса к базе данных, выбирающих из неё только записи, имеющие этот тег.
                                                                                                                                                                                                    Следовательно:
                                                                                                                                                                                                    <a href="[[~20]]/[[+alias]]">
                                                                                                                                                                                                    Либо
                                                                                                                                                                                                    <a href="[[~20]]/[[+tag]]">
                                                                                                                                                                                                    если алиас отличается от имени. При этом псевдоним страницы должен быть tags.
                                                                                                                                                                                                    1. Сергей
                                                                                                                                                                                                      03 февраля 2016, 15:53
                                                                                                                                                                                                      У вас нет параметра. Такая конструкция буде 404

                                                                                                                                                                                                      Данная страница будет выводить список статей, которые имеют указанный тег. Как Вы уже наверно догадались, получать тег эта страница будет из URL (из GET параметра tag).
                                                                                                                                                                                                      1. Алексей
                                                                                                                                                                                                        04 февраля 2016, 09:36
                                                                                                                                                                                                        Действительно. Я что-то подумал, что можно самому урл сформировать.
                                                                                                                                                                                                        1. Александр Мальцев
                                                                                                                                                                                                          04 февраля 2016, 14:28
                                                                                                                                                                                                          URL тоже надо формировать:
                                                                                                                                                                                                          &tpl=`@INLINE <a href="[[~20]]/[[+alias]]" class="btn btn-primary">[[+tag]] <span class="badge">[[+countTags]]</span></a>`
                                                                                                                                                                                                          
                                                                                                                                                                                                          В итоге получается следующая картина:
                                                                                                                                                                                                          _http://mysite.ru/show-posts/modx
                                                                                                                                                                                                          _http://mysite.ru/show-posts/bootstrap
                                                                                                                                                                                                          и т.д.
                                                                                                                                                                                                          Но, у нас то этих страниц нет. А есть только одна страница:
                                                                                                                                                                                                          _http://mysite.ru/show-posts
                                                                                                                                                                                                          Которая может принимать GET-параметр tag:
                                                                                                                                                                                                          _http://mysite.ru/show-posts?tag=modx
                                                                                                                                                                                                          _http://mysite.ru/show-posts?tag=bootstrap
                                                                                                                                                                                                          и т.д.
                                                                                                                                                                                                          И чтобы всё это работало необходимо дополнительно написать правило в .htaccess, которое делало бы следующее
                                                                                                                                                                                                          _http://mysite.ru/show-posts/modx => _http://mysite.ru/show-posts?tag=modx
                                                                                                                                                                                                          _http://mysite.ru/show-posts/bootstrap => _http://mysite.ru/show-posts?tag=bootstrap
                                                                                                                                                                                                          и т.д.
                                                                                                                                                                                                          Т.е. RewriteRule ^show-posts/(.*)$ /show-posts?tag=$1 [L] или какое-то другое в зависимости от сервера.