Бесплатно
Загрузите дополнение из админки вашего сайта.
Как загрузить?
Как загрузить?

Это такой тип ТВ поля, в который можно вбивать значения «на ходу». Другими словами, мы не указываем «Возможные значения» при редактировании ТВ, а вбиваем эти значения в это поле на странице редактирования ресурса.
Очень удобно создавать из такого поля «Теги» на сайте, потому что помимо добавления значений «на ходу», у нас есть возможность выбрать уже используемые значения из других ресурсов.
Сниппет tvssResources
Выводит ресурсы по тегу/тегам. Сниппет отдаёт все параметры в pdoFetch, поэтому можно указывать любые параметры pdoTools. Понимает Fenom, может работать с pdoPage.
Пример выборки ресурсов с тегами «tag1», «tag2», «tag3» прописанными в TV с ID 17 или 19:
{$_modx->runSnippet('pdoPage', [
'element' => 'tvssResources',
'tv' => '17,19',
'tag' => 'tag1||tag2||tag3',
'parents' => 0,
'tpl' => '@INLINE <div>{$id} - {$pagetitle}</div>',
])}
{$_modx->getPlaceholder('page.nav')}Теги можно указать, как параметром в сниппет, так и в GET запросе в параметре tag. Сниппет перебивает указанный тег в GET запросе.Сниппет tvssTickets
Выводит тикеты компонента Tickets по тегу/тегам. Отдаёт все параметры в getTickets, поэтому можно указывать любые доступные параметры getTickets.
Пример выборки тикетов с тегами «tag1», «tag2», «tag3» прописанными в TV с ID 17 или 19:
{$_modx->runSnippet('pdoPage', [
'element' => 'tvssTickets',
'tv' => '17,19',
'tag' => 'tag1||tag2||tag3',
'parents' => 0,
])}
{$_modx->getPlaceholder('page.nav')}Теги можно указать, как параметром в сниппет, так и в GET запросе в параметре tag. Сниппет перебивает указанный тег в GET запросе.Сниппет tvssTags
Выводит список тегов ресурса.
Пример вывода всех тегов из ТВ поля 17, указанных в текущем ресурсе. В ссылке тега формируется УРЛ для ресурса 2, на котором располагается сниппет tvssResources:
{$_modx->runSnippet('tvssTags', [
'id' => $_modx->resource.id,
'tv' => 17,
'pageId' => 2,
])}В список параметров также входит: tpl, tplWrapper, outputSeparator, toPlaceholder.Инструкция по созданию тегов на сайте
Внимание! Инструкция описана с использованием Fenom. Если на Вашем сайте он не используется
- После установки компонента создаём новое ТВ с типом tvSuperSelect. Запоминаем ID ТВшки. В нашем случае — 2.
- Создаём ресурс "Ресурсы с тегом". Запоминаем ID ресурса. В нашем случае — 2.
В longtitle прописываем:
Ресурсы с тегом{$.get['tag'] ? ' «'~($.get['tag']|unescape:"url")~'»' : ''}- Контент для вывода списка ресурсов:
{if $.get['tag']?} <div id="pdopage"> <div class="rows"> {$_modx->runSnippet('pdoPage', [ 'element' => 'tvssResources', 'tv' => '2', 'parents' => 0, 'ajaxMode' => 'default', 'tpl' => '@INLINE <div>{$id} - {$pagetitle}</div>', ]) ?: 'Ресурсов по данному тегу не найдено'} </div> {$_modx->getPlaceholder('page.nav')} </div> {else} Укажите тег для выборки документов {/if} - Контент для вывода списка тикетов:
{if $.get['tag']?} <div id="pdopage"> <div class="rows"> {$_modx->runSnippet('pdoPage', [ 'element' => 'tvssTickets', 'tv' => '2', 'parents' => 0, 'ajaxMode' => 'default', ]) ?: 'Тикетов по данному тегу не найдено'} </div> {$_modx->getPlaceholder('page.nav')} </div> {else} Укажите тег для выборки документов {/if}
- Контент для вывода списка ресурсов:
- В шаблоне (или чанке), в котором у Вас выводится полная статья или тикет, указываем вывод списка тегов:
{$_modx->runSnippet('tvssTags', [ 'id' => $_modx->resource.id, 'tv' => 2, 'pageId' => 2, ])}
Инструкция по выводу похожих статей с помощью тегов
Похожие ресурсы
Fenom:
Стандартный синтаксис:{$_modx->runSnippet('tvssResources', [ 'tv' => '2', 'tags' => $_modx->runSnippet('tvssTags', ['id' => $_modx->resource.id, 'tv' => '2', 'tpl' => '@INLINE [[+tag]]', 'outputSeparator' => '||']), 'parents' => 0, 'limit' => 4, ]) ?: 'Похожих записей не найдено'}
[[tvssResources:empty=`Похожих записей не найдено`? &tv=`2` &tags=`[[tvssTags?id=`[[*id]]`&tv=`2`&tpl=`@INLINE [[+tag]]`&outputSeparator=`||`]]` &parents=`0` &limit=`4` ]]
Похожие тикеты
Fenom:
Стандартный синтаксис:{$_modx->runSnippet('tvssTickets', [ 'tv' => '2', 'tags' => $_modx->runSnippet('tvssTags', ['id' => $_modx->resource.id, 'tv' => '2', 'tpl' => '@INLINE [[+tag]]', 'outputSeparator' => '||']), 'parents' => 0, 'limit' => 4, ]) ?: 'Похожих записей не найдено'}
[[tvssTickets:empty=`Похожих записей не найдено`? &tv=`2` &tags=`[[tvssTags?id=`[[*id]]`&tv=`2`&tpl=`@INLINE [[+tag]]`&outputSeparator=`||`]]` &parents=`0` &limit=`4` ]]
Немного подробнее о хранении значений в базе
- У данного ТВ поля есть своя таблица tvss_options, в ней данные хранятся в таком виде:

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

Первое сделано для удобной фильтрации, второе — для простого вывода.
Обсуждение компонента в сообществе MODX.PRO.
1.3.1-beta (21.01.2019)
- Исправлен тип колонки tv_id на int в схеме базы данных
1.3.0-beta2 (05.11.2018)
- Поправлено формирование имени ТВ поля
1.3.0-beta (28.10.2018)
- Добавлена поддержка MIGX
1.2.2-beta (13.09.2018)
- Добавлено поле display в ComboBox для разделения отображаемого текста и значения
1.2.1-beta (13.09.2018)
- Добавлен параметр context_key, передаваемый в процессор
1.2.0-beta (12.09.2018)
- Добавлена возможность указать ТВ свой коннектор и процессор для вывода кастомных значений
1.1.7-beta (15.12.2017)
- Поправлены предупреждения в сниппете tvssResources и tvssTickets
1.1.6-beta (03.06.2017)
- Поправлены баги в сниппете tvssResources и tvssTickets
1.1.5-beta2 (24.04.2017)
- Корректировки сниппета tvssCloud
1.1.5-beta (24.04.2017)
- Сниппет tvssCloud
1.1.4-beta (07.12.2016)
- Поправлена работа с товарами miniShop2 >=2.4
- Рефакторинг кода плагина
1.1.3-beta (17.06.2016)
- В сниппеты tvssResources и tvssTickets добавлен параметр &like, который отвечает за способ выборки. Если указан &like=`1`, то при выводе ресурсов по тегу "еда", в результаты будут добавлены ресурсы с тегом "педагог". Если же &like=`0`, то поиск по тегам осуществляется точный. По-умолчанию &like=`0`.
1.1.2-beta2 (07.06.2016)
- Поправлен баг с удалением данных из таблицы tvssOption при полной очистке поля
1.1.2-beta (19.03.2016)
- В сниппетах tvssResources и tvssTickets поправил warnings в журнал ошибок
- Поправлен косяк с кривым отображением input
1.1.1-pl3 (18.03.2016)
- В tvssTags добавлен параметр &scheme
1.1.1-pl2 (18.03.2016)
- В сниппетах tvssResources и tvssTickets поправил обработку совмещения параметра &loadModels введённого пользователем
1.1.1-pl (18.03.2016)
- Восстановлена поддержка PHP 5.3
- Восстановлена возможность указания пустого &outputSeparator в сниппете tvssTags
- Добавлен сниппет tvssTickets для вывода списка тикетов (компонент Tickets) по тегу/тегам
1.1.0-pl (17.03.2016)
- Добавлен сниппет tvssResources для вывода списка ресурсов по тегу/тегам
- Добавлен сниппет tvssTags для вывода списка тегов ресурса
1.0.1-beta (04.02.2016)
- Поправлен косяк с кривым отображением кнопок у поля
1.0.0-beta
- Start




Последние обсуждения в сообществе MODX.pro