Кто пользуется tvSuperSelect

Всем привет. Есть здесь те 37 человек, которые используют tvSuperSelect? Мне нужна помощь по части создания тегов для тикетов. Я уже писал вопрос, но там заглохло. Нужен сниппет, который бы получал тикеты по тегу. Всё что уже сделано есть по той ссылке выше.

Там получается у тегов ссылка вида site.ru/section?tag=Мойтэг
В разделе с тикетами заменяю вызов getTickets на вызов своего сниппета:

<?php
$tag = isset($_GET['tag']) ? $modx->sanitizeString($_GET['tag']) : '';

if ($tag){
 	// здесь происходит колдунство и я получаю id тикетов у которых есть нужный тег
	// и передаю их в getTickets
}

return $modx->runSnippet('getTickets',$scriptProperties);
Я не силен в API и Mysql, поэтому сам не могу.
Ответ на вопрос однозначно даст много лайков), вопрос тегов для блога популярный. И я допишу в том вопросе полное решение.
Виталий Барышников
17 марта 2016, 01:48
modx.pro
6
2 246
+2

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

Борода
17 марта 2016, 07:54
1
+1
Избавь себя от гемороя) Вот тебе готовое решение) В комментариях есть всё, что надо)
У меня и из облака тегов выводятся статьи по тегу) И из тега под каждой статьёй и так далее)))
    Алексей Федоров
    17 марта 2016, 12:48
    0
    Tagger вроде бы не работает с Tickets, может использоваться только для стандартных документов
      Борода
      17 марта 2016, 12:55
      +1
      Стал бы Я советовать, если бы оно не работало?) Почему у меня тогда всё прекрасно работает?)
        Воеводский Михаил
        17 марта 2016, 22:03
        +1
        Это было давно и уже не правда. Начиная с версии 1.6, Tickets успешно работает с Tagger.
      Павел Гвоздь
      17 марта 2016, 08:17
      +1
      В процессе. На днях выложу…
        Максим Кузнецов
        17 марта 2016, 12:58
        +1
        Если у вас 1 тег в гет-параметре, то:
        [[!pdoPage? &parents=`0`
        	...
        	&includeTVs=`tags`
        	&where=`{"tags:LIKE":"%[[#GET.tag]]%"}`
        	//tags заменить на название своего тв
        ]]

        Ну или тоже самое на чистом pdo, если помимо списка id не нужны примеси:
        $tag = $modx->sanitizeString($_GET['tag']);
        
        if (empty($tag)) {
        	return 'Не выбран ни один тег.'
        }
        
        
        $q = $modx->newQuery('modResource');
        //возможно, потребуется дополнительно обернуть в "%" . $tag . "%" 
        $q->where(array('tags:LIKE' => $tag));
        $q->select('`modResource`.`id`');
        if ($q->prepare() && $q->stmt->execute()) {
        	$ids = $q->stmt->fetchAll(PDO::FETCH_COLUMN);
        	
        	return $ids;
        }
        else {
        	return 'Подходящих результатов не найдено.';
        }

        В противном случае нужно дробить get-параметр по разделителю и циклом добавлять условия OR.
          Павел Гвоздь
          17 марта 2016, 13:55
          +2
          Можешь обновляться. Доку краткую пишу.
            Виталий Барышников
            17 марта 2016, 14:24
            +1
            Вот это подарок! Целенаправленно ждал и дождался. Спасибо, оно того стоило.
              Виталий Барышников
              17 марта 2016, 15:45
              0
              В tvssTags outputSeparator почему-то не влияет. Вернее, нет возможности вывода без разделителя. outputSeparator=``, то будет выводить через запятую. UPD. Всё понял, пробел туда.
                Павел Гвоздь
                17 марта 2016, 16:41
                0
                Чуть позже поправлю, чтоб пустое значение кушал тоже. Проглядел это.
              Илья Уткин
              25 марта 2016, 12:20
              2
              +2
              Я понимаю, что уже есть новая версия с дополнительными сниппетами. Но для истории сохраню код, как вывести тикеты по тегу
              [[!pdoPage?
                  &element=`getTickets`
                  &parents=`0`
                  &loadModels=`tvsuperselect`
                  &select=`{
                      "tvTags":"tvTags.value as tag"
                  }`
                  &leftJoin=`{
                      "tvTags":{"class":"tvssOption", "on":"Ticket.id = tvTags.resource_id"}
                  }`
                  &where=`{ "tvTags.value":"[[!+vp.tag]]" }`
                  &tpl=`tpl.Ticket`
                  &includeContent=`1`
                  &includeTVs=`img,tags`
                  &tvPrefix=`tv.`
              ]]
              [[!+page.nav]]
                Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                11