[tvSuperSelect] Тип TV: автозаполняемый список из ms2, для реализации тегов



Это такой тип ТВ поля, в который можно вбивать значения «на ходу». Другими словами, мы не указываем «Возможные значения» при редактировании ТВ, а вбиваем эти значения в это поле на странице редактирования ресурса.

Очень удобно создавать из такого поля «Теги» на сайте, потому что помимо добавления значений «на ходу», у нас есть возможность выбрать уже используемые значения из других ресурсов.

О хранении значений в базе


  1. У данного ТВ поля есть своя таблица tvss_options, в ней данные хранятся в таком виде:


  2. Однако, данные также хранятся и в таблице site_tmplvar_contentvalues, но уже в виде JSON массива:


Первое сделано для удобной фильтрации, второе — для простого вывода. Позже планирую добавить сниппет для вывода тегов по шаблону.

Скачать можно из репозитория modstore.pro — modstore.pro/packages/other/tvsuperselect

P.S.: Спасибо Василию за часть кода!
Павел Гвоздь
03 февраля 2016, 18:52
modx.pro
22
16 698
+11
Поблагодарить автора Отправить деньги

Комментарии: 125

Роман Садоян
03 февраля 2016, 22:03
0
То есть при установке данного компонента у нас добавляется новый тип TV tvSuperSelect?
Павел Карелин
04 февраля 2016, 01:04
-7
Ожидаем восторженного отклика Василия.
    Илья Уткин
    04 февраля 2016, 14:37
    0
    Круть!
      Сергей Шлоков
      04 февраля 2016, 16:17
      -1
      Несколько раз перечитал, но так и не понял, чем эта TV отличается от обычного списка с мультиселектом. И зачем отдельная таблица для неё? Так не проще?
        Илья Уткин
        04 февраля 2016, 16:35
        +2
        В том-то и деле, что тут не нужно заранее набивать набор тегов — при вводе новые теги создаются.
          Илья Уткин
          04 февраля 2016, 16:36
          +1
          Ну, и таблица, соответственно, поможет делать гибкие фильтры и пр.
            Александр
            04 февраля 2016, 19:49
            0
            Вот это автору поста стоило на самом верху написать :) Теперь понятно для чего это.
              Павел Гвоздь
              04 февраля 2016, 20:39
              0
              Честно говоря, я открыл для себя людей, которые не знают, что в ms2 есть такая клёвая плюха. :)
                Сергей Шлоков
                05 февраля 2016, 11:41
                0
                А ещё есть люди, которые не знают, что такое ms2. Представляешь, ну не нужен он им? Зачем объяснять таким про твой компонент? Наверно, всем разработчикам нужно взять такой подход.
                  Павел Гвоздь
                  05 февраля 2016, 12:36
                  +1
                  Так я вроде переписал описание пакета. Что, до сих пор не понятно, чтоли?)
            Павел Гвоздь
            04 февраля 2016, 17:23
            +2
            В общем-то Илья назвал причину появления данного компонента.

            У меня складывается впечатление, что пост твой появился тут ради ссылки. =) Капелька бреда, не воспринимай всерьёз. ;)
              Сергей Шлоков
              04 февраля 2016, 17:45
              0
              Спасибо Илье, объяснил старику ;) Я минишопом не пользуюсь (пока!), поэтому для меня слова «как в минишопе» ни о чём не говорят. Мне это показалось очередным «открытием». Но теперь понял механизм.
              У меня складывается впечатление, что пост твой появился тут ради ссылки. =) Капелька бреда, не воспринимай всерьёз. ;)
              Не угадал. Мне там пока хвалится нечем. Главная идея сайта — написать документацию к своим дополнениям и подгружать её в админке при нажатии на кнопку Помощь (так работает помощь у самого MODX), а также сделать реализацию платных дополнений. Ни до одного ни до другого руки еще не дошли.
            Павел Гвоздь
            04 февраля 2016, 23:06
            +1
            Уже в modStore.pro — modstore.pro/packages/other/tvsuperselect
              Евгений Webinmd
              10 февраля 2016, 14:35
              0
              с mfilter2 работает поле?
                Павел Гвоздь
                10 февраля 2016, 16:09
                0
                Не знаю, проверь. Скажешь потом. А mfilter2 работает с JSON полями?
                  Евгений Webinmd
                  10 февраля 2016, 16:57
                  0
                  проверю и отпишу, вроде с JSON не работает, но думаю можно написать и свой тип. В общем проверю и расскажу
                    Andrei
                    07 марта 2016, 23:08
                    0
                    mFilter2 все выводит, но сам тег в фильтре отображается как кусок JSON. Не понимаю как это можно исправить.
                Виталий Барышников
                13 февраля 2016, 06:01
                0
                Здравствуйте. Прошу небольшой пример непосредственного использования, т.е. как вывести тэги допустим к статье в блоге, и как вывести статьи по конкретным тегам. Для меня пока решение не очевидно, нет опыта.
                  Павел Гвоздь
                  13 февраля 2016, 08:48
                  3
                  +2
                  Феномом как-то так:
                  {if $_modx->resource.tags?}
                  	{foreach json_decode($_modx->resource.tags,1) as $tag}
                  		{var $tags[] = '<a href="">'~ $tag ~'</a>'}
                  	{/foreach}
                  	{$tags|join:", "}
                  {/if}
                  На стандартном синтаксисе хз, надо писать сниппет. Где-то в марте обновлю пакет, добавлю туда необходимый, для вывода стандартным синтаксисом, сниппет. Сейчас совершенно не до этого, тем более я уже давно не использую почти нигде стандартный синтаксис MODX, поэтому мне «не припекает» особо писать его.

                  Можешь сам для себя написать сниппет, он будет похож на код Fenom. Ничего сверхъестественного нет.
                Павел
                16 февраля 2016, 15:38
                0
                А переназначить не как нельзя все теги на сайте с типа «Тег», на «tvSuperSelect», если просто меняю Тип и сохраняю, то и теги не отображаются и нельзя добавить не какие. Скрин
                Просто выводится название TV-поля и ничего более
                  Павел Гвоздь
                  16 февраля 2016, 16:31
                  0
                  Нет, думаю не получится. Данные этого поля в базе хранятся в JSON формате, возможно поэтому такой глюк. А если новому ТВ назначить такой тип поля, всё нормально отображается? Думаю не сложно будет написать скриптик, который произведёт миграцию с типа «Тег» в «tvSuperSelect». Главное, чтобы скрипт помимо данных в site_tmplvar_contentvalues, сохранял ещё и данные в таблицу компонента tvss_options.
                    Павел
                    16 февраля 2016, 17:26
                    0
                    Кому просто, а кому очень сложно))
                      Павел Гвоздь
                      16 февраля 2016, 18:59
                      3
                      0
                      Скрипт мигрирует с ТВ типа «Тег» на ТВ типа «tvSuperSelect»:
                      <?php
                      $tv_tag = 18; // id тв поля с типом "Тег"
                      $tv_tss = 17; // id тв поля с типом "tvSuperSelect"
                      $modx->addPackage('tvsuperselect', MODX_CORE_PATH .'components/tvsuperselect/model/');
                      $objs = $modx->getIterator('modTemplateVarResource', array('tmplvarid' => $tv_tag));
                      foreach ($objs as $obj)
                      {
                      	$values = explode(',', $obj->value);
                      	foreach ($values as $value)
                      	{
                      		$where = array(
                      			'resource_id' => $obj->contentid,
                      			'tv_id' => $tv_tss,
                      			'value' => $value,
                      		);
                      		if (!$modx->getCount('tvssOption', $where))
                      		{
                      			$new = $modx->newObject('tvssOption');
                      			$new->fromArray($where);
                      			$new->save();
                      			unset($new);
                      		}
                      		$where = array(
                      			'contentid' => $obj->contentid,
                      			'tmplvarid' => $tv_tss,
                      		);
                      		if ($old = $modx->getObject('modTemplateVarResource', $where))
                      		{
                      			$old_values = $modx->fromJSON($old->value);
                      			$old_values[] = $value;
                      			$old->set('value', $modx->toJSON(array_unique($old_values)));
                      			$old->save();
                      		}
                      		else {
                      			$new = $modx->newObject('modTemplateVarResource');
                      			$new->fromArray($where);
                      			$new->save();
                      			unset($new);
                      		}
                      	}
                      }
                      Запускать в пакете "Console"
                        Павел
                        17 февраля 2016, 15:20
                        0
                        Спасибо. Через консоль конечно не запустишь это, когда на сайте много тегов и материалов. Через SSH Норм.
                        Хочется конечно, чтобы в админке можно было бы управлять этими тегами, как в Smarttag, а так все круто.
                          Павел Гвоздь
                          17 февраля 2016, 15:33
                          0
                          Не понимаю, что ты имеешь ввиду, говоря «управлять»?
                            Павел
                            17 февраля 2016, 15:46
                            0
                            Ну во первых смотреть все теги, возможность удалять и редактировать их, смотреть в каких материалах они есть и т.д.



                              Павел Гвоздь
                              17 февраля 2016, 15:49
                              0
                              В ближайшее время такого точно реализовывать не буду. Если надо срочно — можешь проспонсировать.
                  Николай DELETE
                  17 февраля 2016, 09:25
                  0
                  Можно ли реализовать автозаполняемый список из фронтэнда? Из Tickets например
                    Павел Гвоздь
                    17 февраля 2016, 09:42
                    0
                    Это поле выводится средствами ExtJS. Если на JS или jQuery у тебя получится такое сделать — то можно. Могу дописать такой функционал за 4 000 рублей.
                    Сергей
                    26 февраля 2016, 21:10
                    0
                    Подскажите, как использовать этот тип TV в MIGX?
                    И кстати, правильно ли это, что он не реагирует на настройки «разделитель», и выводит всегда JSON?
                    Спасибо!
                      Павел Гвоздь
                      26 февраля 2016, 22:21
                      0
                      как использовать этот тип TV в MIGX?
                      С MIGX не использовал. А что, не работает? Что в консоли?

                      И кстати, правильно ли это, что он не реагирует на настройки «разделитель», и выводит всегда JSON?
                      Настройки никакие не прикручивал. А что он должен делать, когда предположим, будет реагировать на разделитель?
                        Klike
                        29 февраля 2016, 14:32
                        0
                        del
                          Павел Гвоздь
                          29 февраля 2016, 14:41
                          0
                          Не знаю. Первый раз вижу такое.
                            Klike
                            29 февраля 2016, 14:42
                            0
                            Это конфликтовали два плагина, как выяснилось)
                              Klike
                              29 февраля 2016, 14:58
                              0
                              Другой вопрос)

                              {var $resources = $_modx->getResources(
                                                      ['published' => 1, 'deleted' => 0, 'storerazdel:>' => ''],
                                                      ['sortby' => 'menutitle', 'sortdir' => 'ASC', 'limit' => 0]
                                                  )}
                                                  {foreach $resources as $resource}
                                                      {if 'Цветы' in list $resource.storerazdel}
                                                          {$_modx->getChunk('tpl.brand.card', $resource)}
                                                      {/if}
                                                  {/foreach}
                              Таким образом вывожу соответствующие «тегам», ресурсы. НО, для этого надо либо настроить по этой статье, чтобы поле TV копировалось в таблицу modx_site_content (настроил, но как-то через раз работает, думаю дело в событии OnDocFormSave), либо как-то по-другому выводить ресурсы.

                              Не подскажешь, как быть?)
                                Павел Гвоздь
                                29 февраля 2016, 15:30
                                0
                                Выборку делать по tvssOption. Там есть поле value, в нём хранятся теги. Следовательно нужный тег сравнивать с этим полем. И приджоинить к запросу modResource по полю resource_id.
                                  Klike
                                  29 февраля 2016, 15:31
                                  0
                                  Спасибо!
                        Михаил Федоров
                        17 марта 2016, 14:57
                        +1
                        Исправьте описание, после сегодняшнего обновления минимальное требование PHP 5.4
                          Павел Гвоздь
                          17 марта 2016, 15:04
                          0
                          Да, спасибо!
                            Михаил Федоров
                            17 марта 2016, 15:48
                            0
                            пришлось чутка поправить файлики, что бы сайт поднялся, до того как пхп на хостинге переключат)
                              Павел Гвоздь
                              17 марта 2016, 16:25
                              0
                              Массивы правил только? Думаю восстановлю совместимость чуть позже.
                                Михаил Федоров
                                18 марта 2016, 06:43
                                0
                                Да, там в 4х местах только затыкается где вместо старого «array(...)» используется "[]" и где обнуляются массивцы, могу уже «исправленный» костыльный вариант скинуть)
                                  Павел Гвоздь
                                  18 марта 2016, 06:46
                                  +1
                                  Спасибо, я уже закинул в репозиторий обновлённую версию с поддержкой PHP 5.3.
                          Виктор
                          26 апреля 2016, 07:32
                          0
                          Подскажите пожалуйста, как сделать сортировку выводимых документов по дате публикации?
                          Безрукавый Ярослав
                          03 июня 2016, 14:10
                          0
                          Столкнулся с такой проблемой, что при использовании pdoPage не отрабатывается ajax переход по страницам.
                          В response возврощает {«output»:"",«page»:1,«pagination»:"",«pages»:0,«total»:0}
                          Мог бы, пожалуйста, кто-нибудь помочь с данной проблемой.

                          tvSuperSelect 1.1.2-beta

                          {if $.get['tag']?}
                                          <div id="pdopage">
                                              <div class="rows">
                                                  {$_modx->runSnippet('pdoPage', [
                                                      'element' => 'tvssResources',
                                                      'tv' => '6',
                                                      'parents' => 5,
                                                      'limit' => 3,
                                                      'ajaxMode' => 'default',
                                                      'sortby' => 'publishedon',
                                                      'hideContainers' => 1,
                                                      'sortdir' => 'DESC',
                                                      'includeTVs' => 'small_news_image',
                                                      'prepareTVs' => 1,
                                                      'tpl' => 'news_list.chnk',
                                                      'pageLimit' => 7,
                                                      
                                                      'tplPageWrapper' => '@INLINE <div class="pagination"><ul class="pagination">{$prev}{$pages}{$next}</ul></div>',
                                                      'tplPage' => '@INLINE <li class="page_num num-{$pageNo}"><a href="{$href}">{$pageNo}</a></li>',
                                                      'tplPageActive' => '@INLINE <li class="page_num num-{$pageNo} active"><a href="{$href}">{$pageNo}</a></li>',
                                                      
                                                      'tplPagePrev' => '@INLINE <li class="control prev"><a href="{$href}"></a></li>',
                                                      'tplPageNext' => '@INLINE <li class="control next"><a href="{$href}"></a></li>',
                                                      'tplPagePrevEmpty' => '@INLINE ',
                                                      'tplPageNextEmpty' => '@INLINE '
                                                  ]) ?: 'Ресурсов по данному тегу не найдено'}
                                              </div>
                                              {$_modx->getPlaceholder('page.nav')}
                                          </div>
                                      {else}
                                          Укажите тег для выборки документов
                                      {/if}
                          Максим Кузнецов
                          03 июня 2016, 18:45
                          0
                          Возможно ли получить в чанке tpl чистый урл от &pageId (без гет-параметра tag)? — на случай, если на странице поиска ресурсов по тегу реализована своя логика получения ресурсов с необходимым тегом (через свой гет-параметр).

                          Задачу, конечно, можно решить через
                          {pageId | url}/?name={$tag}
                          — но в таком случае идет двойная работа по формированию урлы — в чанке и в сниппете.

                          Плюс ко всему, если реализовывать теги по вашему примеру в документации, то в чанке со списком ресурсов русскоязычные теги будут представлены в виде:
                          ?tag=Название
                          — тогда как на странице самого ресурса ссылки тегов, вызванные через tvssTags, будут представлены в url-кодированном виде.
                            Павел Гвоздь
                            03 июня 2016, 20:37
                            0
                            Возможно ли получить в чанке tpl чистый урл от &pageId (без гет-параметра tag)?
                            Возможно, продублировав и дописав в сниппет то, что нужно.
                            Михаил
                            15 июня 2016, 20:13
                            0
                            Павел, приведите пожалуйста более жизненный пример вывода документов, с соответствующим тегом:
                            Снипет + Чанк.

                            Михаил
                            15 июня 2016, 21:49
                            0
                            Спасибо разобрался.

                            Но при выборе тега «еда», выбираются документы с тегом "еда" и «педагог»
                              Павел Гвоздь
                              16 июня 2016, 22:50
                              +1
                              Обновляйтесь до версии 1.1.3-beta

                              1.1.3-beta (17.06.2016)
                              ==============
                              — В сниппеты tvssResources и tvssTickets добавлен параметр &like, который отвечает за способ выборки. Если указан &like=`1`, то при выводе ресурсов по тегу «еда», в результаты будут добавлены ресурсы с тегом «педагог». Если же &like=`0`, то поиск по тегам осуществляется точный. По-умолчанию &like=`0`.
                                Евгений
                                24 июня 2016, 21:21
                                -2
                                Подскажите, пожалуйста, как вывести «облако» всех тегов.
                                В документации нашел только вывод тегов текущего ресурса.
                                  Павел Гвоздь
                                  24 июня 2016, 22:05
                                  -1
                                  Пока никак, вывод облака тегов не реализовывал.
                                    Евгений
                                    24 июня 2016, 22:45
                                    -2
                                    А как тогда применять это приложение? Без облака какой смысл в тегах?
                            Aleksandr Huz
                            10 июля 2016, 18:58
                            0
                            А можно как-то вывести только одно значение tv?
                            Например вбили:

                            Нужно вывести отдельно 2-е значение(300)
                              Павел Гвоздь
                              11 июля 2016, 09:01
                              3
                              +2
                              Феномом получить список тегов и вывести второй по счёту:
                              {if $_modx->resource.tags?}
                              	{var $tags = json_decode($_modx->resource.tags, 1)}
                              	{$tags[1] ?: ''}
                              {/if}
                              Как-то так…
                                Aleksandr Huz
                                11 июля 2016, 10:30
                                0
                                Спасибо. Работает.

                                А вот как использовать tv в migx таблице?
                                Проблема: ввожу значение, а оно не сохраняется.

                                Вкладка формы:
                                {"field":"filter","caption":"Фильтр","inputTV":"superSelect"}
                                Разметка колонок:
                                {"header": "Фильтр", "width": "100", "sortable": "false", "dataIndex": "filter"}
                                  Павел Гвоздь
                                  11 июля 2016, 23:30
                                  0
                                  Честно говоря, с MIGX я пакет не связывал, поэтому ничего по этому поводу сказать не могу.
                              Михаил
                              11 октября 2016, 23:22
                              0
                              Павел, у меня выводятся все документы с тегами, в том числе снятые с публикации (не опубликованные).
                              Как сделать так, что бы выводились только опубликованные документы?
                                Павел Гвоздь
                                12 октября 2016, 08:10
                                0
                                Это когда что вы делаете?
                                  Михаил
                                  12 октября 2016, 12:01
                                  0
                                  После того как кликаю на один из тегов документа, выводится список связанных с этим тегом документов.
                                  Использую ваш код:

                                  Контент для вывода списка ресурсов:
                                  {if $.get['tag']?}
                                  {$_modx->runSnippet('pdoPage', [
                                  'element' => 'tvssResources',
                                  'tv' => '2',
                                  'parents' => 0,
                                  'ajaxMode' => 'default',
                                  'tpl' => '@INLINE {$id} — {$pagetitle}',
                                  ]) ?: 'Ресурсов по данному тегу не найдено'}

                                  {$_modx->getPlaceholder('page.nav')}

                                  {else}
                                  Укажите тег для выборки документов
                                  {/if}
                                    Павел Гвоздь
                                    12 октября 2016, 12:27
                                    1
                                    +1
                                    Код на данном сайте необходимо оформлять в тег code:
                                    <code>тут указываем наш код</code>

                                    Используйте параметры pdoResources, а точнее showUnpublished.
                                      Михаил
                                      12 октября 2016, 12:53
                                      0
                                      Спасибо Павел! Заработало как надо.

                                      Насчёт «code» понятно, буду использовать.

                                      И дополнительный вопрос: Можно ли Ваш инструмент использовать для создания облака тегов сайта?
                                        Павел Гвоздь
                                        12 октября 2016, 13:20
                                        0
                                        Облако тегов на данный момент не реализовано. Во-первых, потому что я занят, во-вторых, потому что не особо понятно, как оно должно работать, что называется «до мелочей».
                                          Василий Столейков
                                          12 октября 2016, 13:30
                                          1
                                          0
                                          1. Веский аргумент =) (не в обиду, сам такой)
                                          2. modx.pro/solutions/7958-tag-cloud-for-minishop2/ — тут неплохо всё расписано. Только я не совсем уверен, что тот вариант будет работать с тегами tvSuperSelect… Но думаю идею можно взять оттуда:
                                          Алгоритм работы прост:
                                          1. Собираются теги со всех товаров сайта.
                                          2. Подсчитывается количество товаров для каждого тега.
                                          3. Рассчитываются размеры для каждого уровня и границы по количеству использования тега.
                                          4. Если не указан шаблон вывода, то на экране также будет облако тегов, но без ссылок.
                                            Василий Столейков
                                            12 октября 2016, 13:34
                                            1
                                            0
                                            По сути для облака важен вес (уровень), количество упоминаний тега и список самих тегов.
                                            Чтобы выбирались теги со всего сайта и с какой-то определённой категории.
                                            Не думаю что нужно что-то ещё, уровень можно подставлять в классах чанка для величины тега…
                                Виктор
                                04 ноября 2016, 18:42
                                0
                                При выводе похожих статей используюю конструкцию из документации:
                                [[tvssResources:empty=`Похожих записей не найдено`?
                                    &tv=`2`
                                    &tags=`[[tvssTags?id=`[[*id]]`&tv=`2`&tpl=`@INLINE [[+tag]]`&outputSeparator=`||`]]`
                                    &parents=`0`
                                    &limit=`4`
                                ]]
                                Выводит отлично, но есть 2 вопроса:
                                1. Из журнала ошибок:
                                [2016-11-04 18:26:40] (ERROR @ W:\domains\localhost\core\xpdo\xpdo.class.php : 502) Path specified for package tvsuperselect is not a valid or accessible directory: W:/domains/localhost/core/w:/domains/localhost/core/components/tvsuperselect/model/
                                Сниппет работает несмотря на это, но немного раздражает… Как её убрать?
                                2. Не нашел как убрать из списка похожих статей саму статью, из которой вызван сниппет.
                                  Павел Гвоздь
                                  04 ноября 2016, 18:51
                                  0
                                  1) Может быть это из-за Винды?

                                  2) Добавить параметр where и исключить текущий ресурс там:
                                  &where=`{"id:!=":"[[*id]]"}`
                                    Виктор
                                    04 ноября 2016, 19:45
                                    0
                                    Как перенесу на реальный хостинг — отпишусь насчет ошибки.

                                    Спасибо, насчет where забыл совсем )))

                                  Андрей П
                                  09 ноября 2016, 23:08
                                  0
                                  Создаю набор параметров со снипеттом tvssTags. Поле параметра id делаю текстовым, вписываю $_modx->resource.id или [[*id]], всё одно, не цепляет ид текущего ресурса.
                                  Павел, скажите пожалуйста, это можно как-нибудь решить, кроме как {$_modx->runSnippet('tvssTags@tags', ['id'=>$_modx->resource.id])}? Спасибо
                                    Максим Кузнецов
                                    26 декабря 2016, 09:23
                                    0
                                    При наличие собственных плагинов на событие «OnBeforeDocFormSave» tvSuperSelect возвращает ошибку:
                                    /home/(путь)/components/tvsuperselect/tv/output/

                                    — при том, что по отдельности как дополнение, так и плагин срабатывают корректно.
                                      Павел Гвоздь
                                      26 декабря 2016, 11:54
                                      0
                                      Если скинете доступ на почту — попробую диагностировать проблему.
                                    Максим Кузнецов
                                    05 января 2017, 16:54
                                    1
                                    +3
                                    С минимальным функционалом, облако тегов к компоненту можно реализовать следующим способом:

                                    1. Создаем сниппет (tags.list):
                                    <?php
                                    	$pdoTools = $modx->getService('pdoTools');
                                    	$TvSuperSelect = $modx->getService('tvsuperselect', 'tvsuperselect', MODX_CORE_PATH . 'components/tvsuperselect/model/tvsuperselect/');
                                    	if (!$TvSuperSelect) {
                                    		$modx->log(xPDO::LOG_LEVEL_ERROR, 'Не удалось загрузить TvSuperSelect');
                                    		return;
                                    	}
                                    
                                    	$q = $modx->newQuery('tvssOption');
                                    	$q->groupby('value');
                                    	$q->select('value, tv_id');
                                    	$q->where(array(
                                    		'tv_id' => $tv_id
                                    	));
                                    	
                                    	if ($q->prepare() && $q->stmt->execute()) {
                                    		$tags = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
                                    	}
                                    	
                                    	$tags_page = $modx->makeUrl($tags_page, '', '', 'full');
                                    	
                                    	foreach($tags as $tag) {
                                    		$result  .= $pdoTools->getChunk($tpl, array(
                                    			'tag' => $tag['value'],
                                    			'tags_page' => $tags_page
                                    		));
                                    	}
                                    	
                                    	return $result;

                                    2. Создаем чанк для отображения кнопки тега (tags.list.item):
                                    <a href="{$tags_page}{$tag | replace : " " : "%20"}/">{$tag}</a><br />

                                    3. Вызываем созданный сниппет:
                                    {$_modx->runSnippet('!tags.list', [
                                    	'tv_id' => 5,
                                    	'tpl' => 'tags.list.item',
                                    	'tags_page' => 99
                                    ])}

                                    При желании можно добавить подсчет использований каждого тега, убрав $q->groupby('value') и добавив счетчик внутри цикла.
                                      Андрей П
                                      06 января 2017, 15:35
                                      0
                                      Спасибо за добавление этой, на мой взгляд очень важной, функции. Но ссылка на страницу с тегами почему-то не работает. Она даже другого вида, чем та, которая в стандартном сниппете генерируется: в стандартном /tag-search?tag=тег в json, а в приведённом /tag-searchтег
                                      При желании можно добавить подсчет использований каждого тега, убрав $q->groupby('value') и добавив счетчик внутри цикла.
                                      Опишите это пожалуйста для далёких. И можно ли будет при этом теги лимитриовать по самым используемым? Спасибо
                                        Максим Кузнецов
                                        06 января 2017, 15:57
                                        +2
                                        Упс) Извиняюсь — для себя я реализовал теги в виде site.ru/tag/тег/ через кастомную маршрутизацию, поэтому и такая ссылка. Просто замените чанк на что-нибудь в духе:

                                        href="{$tags_page}?tag={$tag | replace : " " : "%20"}/"

                                        Что же до подсчета кол-ва использований, то примерно так:
                                        <?php
                                        	$pdoTools = $modx->getService('pdoTools');
                                        	$TvSuperSelect = $modx->getService('tvsuperselect', 'tvsuperselect', MODX_CORE_PATH . 'components/tvsuperselect/model/tvsuperselect/');
                                        	if (!$TvSuperSelect) {
                                        		$modx->log(xPDO::LOG_LEVEL_ERROR, 'Не удалось загрузить TvSuperSelect');
                                        		return;
                                        	}
                                        
                                        	$q = $modx->newQuery('tvssOption');
                                        	$q->select('value, tv_id');
                                        	$q->where(array(
                                        		'tv_id' => $tv_id
                                        	));
                                        	
                                        	if ($q->prepare() && $q->stmt->execute()) {
                                        		$tags = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
                                        	}
                                        	
                                        	$result = '';
                                        	
                                        	$tags_list = array();
                                        	$tags_count_list = array();
                                        
                                        	foreach($tags as $tag) {
                                        		if (in_array($tag['value'], $tags_list)) {
                                        			$key = array_search($tag['value'], $tags_list);
                                        			
                                        			$tags_count_list[$key] = $tags_count_list[$key] + 1;
                                        		}
                                        		else {
                                        			array_push($tags_list, $tag['value']);
                                        			array_push($tags_count_list, 1);
                                        		}
                                        	}
                                        	
                                        	$result = '';
                                        
                                        	foreach($tags_list as $key => $value) {
                                        		$result  .= $pdoTools->getChunk($tpl, array(
                                        			'tag' => $value,
                                        			'count' => $tags_count_list[$key],
                                        			'tags_page' => $tags_page
                                        		));
                                        	}
                                        	
                                        	return $result;
                                        — осталось только добавить сортировку массива по вкусу.)
                                        Ну и в чанк добавить плейсхолдер [[+count]] для отображения
                                          Андрей П
                                          06 января 2017, 16:12
                                          0
                                          Спасибо! Получилось так
                                          <a href="{$tags_page|url}?tag={$tag | replace : " " : "%20"}">{$tag} <sup>{$count}</sup></a>
                                            Андрей П
                                            06 января 2017, 16:16
                                            0
                                            Теперь, чтобы сделать сортировку, нужно завести pdoResources в elements указав tags.list и where указать параметры, так?
                                              Максим Кузнецов
                                              06 января 2017, 16:29
                                              +1
                                              Вряд ли это сработает — данный сниппет возвращает результат единым куском. Нужно заменить процесс формирования $tags_list, чтобы ключом заносилось наименование тега, а значением — количество использований. После чего отсортировать массив по krsort(); и точно также вывести результат.
                                                Андрей П
                                                06 января 2017, 16:40
                                                0
                                                Спасибо за Вашу отзывчивость, но моих знаний не хватит реализовать этот функционал.
                                                Эх, услышал бы уважаемый Павел эти вздохи и дополнил свой замечательный компонент данным функционалом!
                                                Максим Кузнецов
                                                06 января 2017, 16:39
                                                +2
                                                Вот так:
                                                //...
                                                	//до этих строк изменений нет
                                                
                                                	$result = '';
                                                
                                                	$tags_list = array();
                                                
                                                	foreach($tags as $tag) {
                                                		$key = $tag['value'];
                                                		
                                                		if (array_key_exists($key, $tags_list)) {
                                                			$tags_list[$key] = $tags_list[$key] + 1;
                                                		}
                                                		else {
                                                			$tags_list[$key] = 1;
                                                		}
                                                	}
                                                	
                                                	asort($tags_list);
                                                	$tags_list = array_reverse($tags_list, true);
                                                
                                                	$result = '';
                                                
                                                	foreach($tags_list as $key => $value) {
                                                		$result  .= $pdoTools->getChunk($tpl, array(
                                                			'tag' => $key,
                                                			'count' => $value,
                                                			'tags_page' => $tags_page
                                                		));
                                                	}
                                                	
                                                	return $result;

                                                — в таком варианте результат будет отсортирован от самых используемых тегов к наименее.
                                                  Андрей П
                                                  06 января 2017, 16:42
                                                  0
                                                  О! Пока «вздыхал», Вы уже написали ответ! Спасибо!
                                                  Лимит бы ещё сделать и вообще всё круто будет!
                                                    Максим Кузнецов
                                                    06 января 2017, 16:49
                                                    +2
                                                    Меняем:
                                                    foreach($tags_list as $key => $value) {
                                                    		$result  .= $pdoTools->getChunk($tpl, array(
                                                    			'tag' => $key,
                                                    			'count' => $value,
                                                    			'tags_page' => $tags_page
                                                    		));
                                                    	}

                                                    На:
                                                    $counter = 1;
                                                    	if (!isset($limit)) {
                                                    		$limit = 10;
                                                    	}
                                                    
                                                    	foreach($tags_list as $key => $value) {
                                                    		if ($counter <= $limit) {
                                                    			$result  .= $pdoTools->getChunk($tpl, array(
                                                    				'tag' => $key,
                                                    				'count' => $value,
                                                    				'tags_page' => $tags_page
                                                    			));
                                                    
                                                    			$counter = $counter + 1;
                                                    		}
                                                    	}
                                                    + добавить в вызов сниппета параметр &limit.
                                                      Андрей П
                                                      06 января 2017, 17:41
                                                      0
                                                      У меня нет слов! Сегодня безусловно Вы для меня Дед Мороз. Всё работает! С праздниками и огромное спасибо!
                                              Дмитрий
                                              17 декабря 2018, 03:28
                                              0
                                              Максим Кузнецов
                                              06 января 2017, 15:57

                                              Упс) Извиняюсь — для себя я реализовал теги в виде site.ru/tag/тег/ через кастомную маршрутизацию, поэтому и такая ссылка.
                                              Можно поподробнее как сделать, чтобы URL облака тегов был site.ru/tags/, а ресурсы с определенным тегом выводились бы по URL site.ru/tags/определенный+тег/

                                              Заранее, благодарю!
                                                Максим Кузнецов
                                                17 декабря 2018, 14:35
                                                0
                                                1. Создается обычный ресурс «список тегов» с псевдонимом tags
                                                2. Кастомной маршрутизацией по шаблону /tags/{item} присваивается плейсхолдер и sendForward-ится на страницу из пункта 1.
                                                  Дмитрий
                                                  17 декабря 2018, 17:03
                                                  0
                                                  2. Кастомной маршрутизацией по шаблону /tags/{item} присваивается плейсхолдер и sendForward-ится на страницу из пункта 1.
                                                  Можно этот пункт поподробнее, недолго знаком с MODX, да и в php не особо силен.
                                                      Дмитрий
                                                      17 декабря 2018, 19:38
                                                      0
                                                      Страницу с облаком /tags/ сделал, теги выводятся, схема URL правильная:
                                                      site.ru/tags/определенный+тег/

                                                      Однако из статьи bezumkin.ru/sections/tips_and_tricks/2918/ не совсем понятно как применить все описанное к данному случаю.

                                                      Не сочтите за наглость, опишите это пожалуйста для далёких (пока) новичков в MODX и не особо знающих php, а именно можете дать код плагина, который это делает (кастомную маршрутизацию).

                                                      Я так понимаю на него надо будет повесить событие OnPageNotFound

                                                      Заранее, благодарю!
                                                        Максим Кузнецов
                                                        18 декабря 2018, 07:17
                                                        0
                                                        Под рукой готового плагина у меня нет. Есть встречное предложение (и вы не сочтите за наглость, угу):

                                                        Вариант 1: все-таки прочитать статью по ссылке, а именно участок кода с пометкой «рабочий плагин» и изменить там 3.5 строчки. Вот, например, аналогичный плагин для реализации страниц пользователей.

                                                        Вариант 2: modx.pro/work
                                          Александр
                                          05 января 2017, 17:27
                                          +1
                                          Если добавлять в список строки, содержащие *\/() и другие специальные символы для регулярных выражений, не добавляется новый элемент в список, возникает ошибка «Uncaught SyntaxError: Invalid regular expression» Фикс — экранирование символов при проверке соответствия последнего пункта списка с добавляемым в регулярном выражении.
                                          Отправил PR: github.com/modxcms/revolution/pull/13236. Это практически мой первый вклад в OpenSource, надеюсь пригодится, если что — поправьте, буду благодарен :)
                                            Ivanov Alexandr
                                            13 января 2017, 13:35
                                            0
                                            Создал теги к тикетам почему то ссылка в теге выглядит вот так tag=%25D0%25B2%25D1%258B%25D1%2581%25D1%2582%25D0%25B0%25D0%25B2%25D0%25BA%25D0%25B0
                                            можно как то исправить все делал по инструкции.
                                              Борис
                                              08 ноября 2018, 18:18
                                              0
                                              Вам удалось решить эту проблему с урлом?
                                                kalisto
                                                10 февраля 2020, 19:01
                                                0
                                                {$_modx->runSnippet('tvssTags', [
                                                             'id' => $_modx->resource.id,
                                                             'tv' => 35, //ID tv тегов
                                                             'pageId' => 54,  //ID страницы выборки по тегам
                                                             'outputSeparator' => '',
                                                             'tpl' => '@INLINE <li><a class="tl-tag" href="{$link | unescape : "url"}">{$tag}</a></li>',
                                                          ])}
                                                
                                                Причина была здесь здесь {$link | unescape : "url"}
                                                У меня была аналогичная проблема robo74.tw1.ru/tags-training?tag=%D0%9C%D0%B0%D0%B3%D0%BD%D0%B8%D1%82%D0%BE%D0%B3%D0%BE%D1%80%D1%81%D0%BA
                                                  kalisto
                                                  10 февраля 2020, 19:01
                                                  0
                                                  {$_modx->runSnippet('tvssTags', [
                                                               'id' => $_modx->resource.id,
                                                               'tv' => 35, //ID tv тегов
                                                               'pageId' => 54,  //ID страницы выборки по тегам
                                                               'outputSeparator' => '',
                                                               'tpl' => '@INLINE <li><a class="tl-tag" href="{$link | unescape : "url"}">{$tag}</a></li>',
                                                            ])}
                                                  
                                                  Причина была здесь здесь {$link | unescape : "url"}
                                                  Николай
                                                  29 июня 2017, 13:01
                                                  0
                                                  Скажите, пожалуйста, с mFilter2 работает?
                                                  &filters=`
                                                          tv|filter_mat_korp
                                                      `
                                                  ставлю, выдает
                                                  ["\u041b\u0414\u0421\u041f"] 1
                                                  в списке фильтров
                                                  Stan Ezersky
                                                  14 декабря 2017, 16:34
                                                  0
                                                  Вопрос такой, в чём может быть причина:
                                                  Блок Похожие материалы, основанный на инструкции

                                                  Похожие ресурсы
                                                  Fenom:
                                                  {$_modx->runSnippet('tvssResources', [
                                                      'tv' => '2',
                                                      'tags' => $_modx->runSnippet('tvssTags', ['id' => $_modx->resource.id, 'tv' => '2', 'tpl' => '@INLINE [[+tag]]', 'outputSeparator' => '||']),
                                                      'parents' => 0,
                                                      'limit' => 4,
                                                  ]) ?: 'Похожих записей не найдено'}
                                                  Notice: Undefined variable: context in /var/www/path-to-site/core/cache/includes/elements/modsnippet/31.include.cache.php on line 6
                                                  
                                                  Notice: Undefined index: class in /var/www/path-to-site/core/cache/includes/elements/modsnippet/31.include.cache.php on line 38
                                                  
                                                  Notice: Array to string conversion in /var/www/path-to-site/core/components/pdotools/model/pdotools/pdofetch.class.php on line 215
                                                  На PHP 5.6 и на PHP 7.0 вываливается, MODX 2.5.8, Apache2
                                                    Константин
                                                    20 мая 2018, 19:05
                                                    0
                                                    Добрый день! Не работает tvSuperSelect с MIGX. Данные заполняются, но при редактировании, все что забил в поле пропадает. Можно как-то поправить?

                                                    Кстати, попробовал использовать с MIGX тип TV авто-метка и тоже не работает.
                                                      Rootiys
                                                      28 августа 2018, 13:16
                                                      0
                                                      Приветствую!
                                                      Как сделать сортировку тегов в снипете tvssTags?
                                                      {'tvssTags' | snippet : [
                                                            'id' => $id,
                                                            'tv' => 23,
                                                            'sortdir' => 'DESC',
                                                            'outputSeparator' => ',',
                                                            'tplWrapper' => '@INLINE <span>{$output}</span>',
                                                            'tpl' => '@INLINE {$tag}'
                                                       ]}
                                                      Вывожу так. Ничего не меняется.
                                                      Сейчас получается, что теги в обратном порядке выводятся.
                                                        Павел Гвоздь
                                                        30 августа 2018, 10:10
                                                        0
                                                        А что вы указываете, чтобы порядок был «не обратный»? Почитайте, пожалуйста, про ASC и DESC и что из них порядок возрастания и порядок убывания.
                                                          Rootiys
                                                          31 августа 2018, 15:46
                                                          0
                                                          Опечатка, ASC конечно.
                                                          Но ASC и DESC ситуацию не меняют никак. Порядок всегда в обратном направлении.
                                                        Константин
                                                        07 ноября 2018, 15:36
                                                        0
                                                        Добрый день. На странице материала вывожу блок с похожими материалами таким образом:
                                                        {set $related_items = $_modx->runSnippet('tvssResources', [
                                                        'tv' => '6',
                                                        'tags' => $_modx->runSnippet('tvssTags', ['id' => $_modx->resource.id, 'tv' => '6', 'tpl' => '@INLINE [[+tag]]', 'outputSeparator' => '||']),
                                                        'parents' => 0,
                                                        'limit' => 10,
                                                        'tpl' => '@INLINE <li><a href="{$uri}">{$pagetitle}</a></li>',
                                                        'where'=>'{"id:!=":"[[*id]]"}'
                                                        ])}
                                                        {if $related_items}
                                                        <div class="related-items"><div class="h3">Похожие материалы:</div><ul>{$related_items}</ul></div>
                                                        {/if}
                                                        где с помощью
                                                        'where'=>'{"id:!=":"[[*id]]"}'
                                                        исключаю ресурс, в котором вывожу похожие материалы.

                                                        Когда понадобилось вывести все это через чанк fenom:
                                                        {include 'related_items'}
                                                        условие where перестает работать.

                                                        Если выводить чанк стандартным способом:
                                                        [[$related_items]]
                                                        то все работает.

                                                        Кстати, пробовал исключать ненужные материал через
                                                        'resources'=>'-[[*id]]',
                                                        и аналогичная ситуация. В вызове чанка через fenom это не работает, т.е текущий ресурс в похожих материалах выводится.

                                                        Подскажите, где у меня ошибка?
                                                          Павел Гвоздь
                                                          07 ноября 2018, 20:54
                                                          1
                                                          +1
                                                          условие where перестает работать.
                                                          Ещё бы!
                                                          'where'=>'{"id:!=":"[[*id]]"}'
                                                          Что это за колдунство?) Запишите нормально, по-человечески, массивом!
                                                          Вот тоже самое:
                                                          'where' => [
                                                              'id:!=' => $_modx->resource['id'],
                                                          ],
                                                            Константин
                                                            07 ноября 2018, 22:44
                                                            0
                                                            Спасибо! Теперь все в порядке.

                                                            Не могли бы Вы помочь еще в одном вопросе. В целях самообразования я попытался вывести похожие материалы другим способом, используя pdoResources и присоединение таблицы tvss_options через leftJoin. У меня есть доп. поле tv_tags (tvSuperSelect), в котором я задаю теги и они в свою очередь передаются при сохранении ресурса в поле tags таблицы site_content. В поле tags информация сохраняется в таком виде:
                                                            ["тег1","тег2","и т.д."]
                                                            Пока я остановился на этом:
                                                            {'!pdoResources' | snippet: [
                                                            'leftJoin' => '{
                                                                "tvssOption":{
                                                                "class":"tvssOption",
                                                                "on":"modResource.id = tvssOption.resource_id"
                                                                }
                                                            }',
                                                            'select' => '{
                                                                	"modResource":"*",
                                                            	"tvssOption":"*"
                                                              }',
                                                            'parents'=> 0,
                                                            'limit' => 10,
                                                            'tpl' => '@INLINE <p>{$pagetitle}</p></li>'
                                                            'where' => [?],
                                                            ]}
                                                            И тут во where я не могу понять, как сделать условие сравнения value из tvss_options и моего tags?

                                                            Не могли бы Вы помочь?
                                                          Борис
                                                          08 ноября 2018, 18:19
                                                          0
                                                          Все делал по инструкции. Создал теги к тикетам почему-то ссылка в теге выглядит вот так:
                                                          tag=%25D0%25B2%25D1%258B%25D1%2581%25D1%2582%25D0%25B0%25D0%25B2%25D0%25BA%25D0%25B0
                                                          Можно как то исправить?
                                                            kalisto
                                                            10 февраля 2020, 19:06
                                                            0
                                                            {$_modx->runSnippet('tvssTags', [
                                                            'id' => $_modx->resource.id,
                                                            'tv' => 35, //ID tv тегов
                                                            'pageId' => 54, //ID страницы выборки по тегам
                                                            'outputSeparator' => '',
                                                            'tpl' => '@INLINE <a class=«tl-tag» href="{$link | unescape: «url»}">{$tag}',
                                                            ])}

                                                            Причина была здесь здесь {$link | unescape: «url»}
                                                            EvgenyAly
                                                            12 января 2020, 21:30
                                                            0
                                                            Прошу помощи сделать правильный запрос, у меня два tv под теги используются tv id5 и tv id10 хочу сделать фильтрацию c izotope плагином, решение подсмотрел у Ильи на сайте.Собственно вопрос
                                                            {'pdoResources' | snippet : [
                                                                'loadModels' => 'tvsuperselect',
                                                                'class' => 'tvssOption',
                                                                'sortby' => '{ "value":"ASC" }'
                                                                'groupby' => 'value',
                                                                'tpl' => '@INLINE <li>
                                                                    <a href="{$_modx->resource.uri}#{$value}"
                                                                     data-filter=".{$value | md5}"
                                                                     class="filter">{$value}</a>
                                                                    </li>',
                                                                'tplWrapper' => '@INLINE <ul class="nav nav-tabs">{$output}</ul>'
                                                            ]}
                                                            Как из value получить тег из tv c id 5, все выходные бился и пока впустую
                                                              Дарья Сизова
                                                              06 апреля 2020, 15:02
                                                              0
                                                              День добрый! Создала вывод тегов в статье.
                                                              [[tvssTags?
                                                                id=`[[*id]]`
                                                                &tv=`8`
                                                                &tpl=`@INLINE <li><a href="[[+link]]">[[+tag]]</a></li>`
                                                                &tplWrapper=`@INLINE 
                                                                <div class="btArticleShareEtc">
                                                                  <div class="btTagsColumn">
                                                                    <div class="btTags">
                                                                      <ul>[[+output]]</ul>
                                                                    </div>
                                                                  </div>
                                                                </div>`
                                                                &outputSeparator=``
                                                                &pageId=`6`
                                                              ]]

                                                              Подскажите, пожалуйста, какой должен быть код (в данном синтаксисе, а не fenom) на странице с id=6, чтобы там выводились ресурсы с выбранным тегом?
                                                              У меня пока так (и ничего не выводится):
                                                              [[tvssResources:empty=`Похожих записей не найдено`?
                                                                  &tv=`8`
                                                                  &tags=`[[tvssTags? id=`[[*id]]` &tv=`8` &tpl=`@INLINE [[+tag]]` &outputSeparator=`||`]]`
                                                                  &limit=`8`
                                                                  &tpl=`tpl.Article`
                                                                  &parents=`6`
                                                                  &includeContent=`1`
                                                                  &includeTVs=`image,tags`
                                                                  &tvPrefix=``
                                                                  &tag=``
                                                              ]]
                                                                Дарья Сизова
                                                                06 апреля 2020, 17:10
                                                                0
                                                                Убрала в последнем примере
                                                                &tag=``
                                                                , и все работает теперь.
                                                                Но возникло еще 2 вопроса: первый — как на станице, где выводятся статьи, отфильтрованные по конкретному тегу, вывести в названии сам этот тег?
                                                                И второй вопрос: как с помощью стандартного синтаксиса сделать читаемым кириллический тег в url? Сейчас тег «важно» в адресе выглядит так: ?tag=%25D0%25B2%25D0%25B0%25D0%25B6%25D0%25BD%25D0%25BE

                                                                Буду благодарна за ответы.
                                                                guliverland
                                                                17 ноября 2020, 11:36
                                                                0
                                                                tvssTags не получается отсортировать ASC/DESC не работают. Как настроить направление сортировки?
                                                                  Сергей
                                                                  20 июля 2021, 15:10
                                                                  0
                                                                  Можно ли вывести список тегов внутри сниппета pdoResources?

                                                                  {'!pdoResources' | snippet : [
                                                                              'parents' => 3,
                                                                              'depth' => 2,
                                                                              'includeTVs' => 'modImgOne, subCategory',
                                                                              'tvPrefix' => '',
                                                                              'sortby' => '{"menuindex" : "ASC"}',
                                                                              'tpl' => '@FILE chunks/cat.tpl'
                                                                              
                                                                              /*для понимания, что нужно
                                                                             'tpl' => '@INLINE
                                                                              
                                                                              <a href="{$uri}" class="card">
                                                                                  <img src="{$modImgOne}">
                                                                                  <h3>
                                                                                      Вот сюда нужно вывести 1 тег из всех тегов https://prnt.sc/1dhp2fp. 
                                                                                  </h3>
                                                                              </a>*/
                                                                              '
                                                                          ]}
                                                                  Если внутри чанка добавить сниппет вывода списков тегов ресурса, будет работать?

                                                                  Вот так делаю, не выводит ни чего
                                                                  <a href="{$uri}" class="card">
                                                                      <img src="{$modImgOne}">
                                                                      <h3>
                                                                          {$_modx->runSnippet('tvssTags', [
                                                                              'id' => $id
                                                                          ])}
                                                                      </h3>
                                                                  </a>
                                                                    Сергей
                                                                    20 июля 2021, 15:56
                                                                    0
                                                                    Как проверить работу данного сниппета?

                                                                    {$_modx->runSnippet('pdoPage', [
                                                                                'element' => 'tvssResources',
                                                                                'tv' => '15',
                                                                                'tag' => '1||2||3',
                                                                                'parents' => 3,
                                                                                'tpl' => '@INLINE <div>{$id} - {$pagetitle}</div>',
                                                                            ])}
                                                                    Не выводит вообще ни чего.

                                                                    ID ТВ поля 15, значения присвоены prnt.sc/1di5bxu

                                                                    ID родителя правильное prnt.sc/1di5le0

                                                                    В ресурсах добавлены теги, и им присвоены значения из скриншота выше prnt.sc/1di6vxq

                                                                    Что не так, куда копать в итоге, сниппет вообще ни чего не выводит, после того как в elements добавляется указание tvssResources
                                                                      Сергей Карпович
                                                                      03 октября 2021, 12:59
                                                                      0
                                                                      Всем привет, классный плагин получился, перечитал комментарии, но не нашел варианта вывода общего облака тегов со всех ресурсов, кто ни будь сделал такой вывод, подскажите как?
                                                                        kgb3000
                                                                        18 октября 2021, 22:48
                                                                        0
                                                                        Не получается вывести TV поле image из галереи товара ms2
                                                                        {$_modx->runSnippet('pdoPage', [
                                                                                        'element' => 'tvssResources',
                                                                                        'tv' => '8',
                                                                        		'parents' => '0',
                                                                        		'tvPrefix' => '',
                                                                        		'includeContent' => '0' ,
                                                                        		'includeTVs' => 'image',
                                                                        		'processTVs' => '1',
                                                                        		'tpl' => '@INLINE {$pagetitle} {$image} ',
                                                                        		'wrapIfEmpty' => '0'
                                                                                    ]) ?: 'Ресурсов по данному тегу не найдено'}
                                                                          kgb3000
                                                                          19 октября 2021, 00:13
                                                                          0
                                                                          удалось вывести
                                                                          'tpl' => '@INLINE {$pagetitle} {$id | resource : "image" },
                                                                          , но если вызывать отдельно из чанка, то этот метод не работает
                                                                          Evgeny
                                                                          20 сентября 2022, 02:58
                                                                          0
                                                                          прошу помощи)
                                                                          modx.pro/help/23302
                                                                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                                                            125