[tvSuperSelect] 1.1.1 с новыми сниппетами для вывода
В новой версии tvSuperSelect у нас появилось 3 сниппета для вывода ресурсов/тикетов с тегами и списка тегов ресурса.
Сниппет 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, указанных в ресурсе 1. В ссылке тега формируется УРЛ для ресурса 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, ])}
Комментарии: 45
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Вызов данного сниппета я описал в посте.
Поясню.
1) На странице с ID 2 мы вызываем сниппет tvssResources:
Не забываем указать в параметре &tv — ID своего TV поля с тегами.
2) На странице вывода информации о ресурсе вызываем сниппет tvssTags:
Также, не забыв указать в параметр &tv и &pageId свои значения.
Нужен мини-мануал какой-нибудь. Проще говоря, нужно заранее создать служебную страницу (в примере с id = 2), на которой будут выводиться результаты.
Пока сложно понять как будет работать с выбором нескольких тегов одновременно. То есть, кликнул на одном теге, вывело список аналогичных ресурсов, а там уже все-все теги и можно выбирать несколько или…
Короче, нужны скрины или короткое видео демонстрации работы, а еще лучше демка, на которой по этим тегам покликать можно =) Опробовать лично смогу только после переустановки modx ибо от моих экспериментов, он уже тупить начал (не работает часть системных коннекторов).
P.S.: Возможность указывать несколько tv очень радует) Если правильно понял, то можно несколько категорий тв сделать, чтобы визуально проще было, а сниппет будет обрабатывать все (к примеру, одна тв — города, а вторая — организации)
Служебной страницы делать не вижу смысла, ибо это лишнее в данном компоненте. Вижу смысл сделать сниппет, который бы позволял указывать теги из фронта, через какую-то юзерскую форму. Но это в следующий раз.
Также, не вижу смысла в скриншотах (что скринить то?) и видео.
Компонент опробую сегодня-завтра, но что-то запутался. Вот есть у меня tv — tag, есть шаблон для поста на Tickets, в котором нужно вызвать tvssTags с указанным id тв для тегов, правильно?
Куда в таком случае вставлять tvssResources? На этой же странице?
Вот так работает, но естественно не доп.полей тикетов:
Вот так хотелось бы чтобы работало:
Пример:
Маленький вопрос. Указал ID страницы «Ресурсы с тегом», ссылка формируется с ее алиасом (у меня это tags) но не от корня, а от раздела, в котором лежит документ.
В настройках сайта у меня Схема URL link_tag_scheme abs
Или нужно только link_tag_scheme -1?
что бы формировались ссылки от корня, а не так:
PS может есть возможность указывать параметры формирования ссылки для снипета tvssTag?
поменял Схема URL link_tag_scheme abs на -1, но формирование ссылки на страницу «Ресурсы с тегом» по прежнему идет от раздела документа, а не от корня.
ЧЯДНТ?
98 это сниппет tvssResources.
74 строка
Вызов для Ресурсы с тегом использовал из инструкции в посте.
Сниппет (чтоб здесь простынку не выводить): pastebin.com/QSD6EDYt
Выдает ошибку На чанк вставил вызов из Инструкции (просто скопировал и заменил на свои ид тв и страницы)
Ничего не заработало, тогда переделал на вот такой вид и теги стали выводиться
А вот часть на странице вывода тегов не получается. Может сжалишься и покажешь как оно в стандарте будет?
Попробовал так, не завелось
P.S.: Переустановить pdoTools пробовал, но все равно та же петрушка. Видимо дело в версии модекс (2.5.0rc1) или моей косорукости.
P.S.: Зачем юзать на проекте dev версию MODX? Не думаешь, что от этого может не выводить?
Подозреваю, что именно поэтому с Fenom начались проблемы. Проект пока не рабочий. Собственно, создаю страницы, шаблоны, тестирую, потом сохраняю Packman'ом. Контента там еще нет, только тестовые посты блога и страницы. В процессе работы часто ломается сайт по непонятной причине (для меня непонятной). В предыдущий раз, к примеру, воспользовался «закалкой» modx, потом обновил с 2.4.2 до 2.4.3 и появились проблемы после удаления Collections. Пока не собрал пакет с гит, админка не работала. Поэтому решил сразу на тестовую версию сесть. Если на rc будет работать, то на стабильной — тем более проблем быть не должно.
В response возврощает {«output»:"",«page»:1,«pagination»:"",«pages»:0,«total»:0}
Мог бы, пожалуйста, кто-нибудь помочь с данной проблемой.
&where=`{«tags:LIKE»:"%[[!#GET.tag]]%"}`
не работает с PHP 5.6?
Apache2
MODX 2.5.8
Вот фрагмент кода:
Пробую так, но не выходит:
Это норм, или есть вариант по лучше?