[Tickets] Версия 1.4.0-rc4 Работа с избранным

Уже много раз вы просили добавить работу с избранным в Tickets, и где-то в дальних планах у меня это было записано.
А вот третьего дня Илья Уткин взял и прислал pull-request с этим функционалом, и теперь уже не отвертеться.

Принял, доработал и новая версия готова.

Логика работы

Избранное сохраняется в таблицу TicketStar, где пишется имя класса (Ticket или TicketComment), id объекта, id его автора и дата.

Для включения функционала нужно обновить чанки
  • tpl.Tickets.list.row
  • tpl.Tickets.meta
Добавление\удаление избранного работает через процессоры, которые требуют новых прав: ticket_star и comment_star. Можно отключать работу с избранным у нехороших пользователей.

Добавлять в избранное можно и обычные ресурсы — через сниппет TicketMeta. Понятное дело, что этот функционал работает только для авторизованных пользователей.

2 новых сниппета

Итак, у нас есть таблица с избраннымы тикетами и комментариями — теперь их нужно вывести.

С тикетами нет проблем, а вот для комментариев пришлось написать новый сниппет getComments. Обычный Comments для этой задачи не подходит — он строит дерево, а нам нужно вывести список.

В getComments вы можете выбирать комментарии по разделам ресурсов, самим ресурсам, веткам и даже указывать id вручную. Параметры соответственно &parents, &resources, &threads и &comments.

Этой возможность пользуется второй новый сниппет getStars. Ему нужно указать &class (Ticket или TicketComment), он выберит их id из избранного и передаст в getTickets или getComments.
Если не указан параметр &user, то будет показано избранное текущего пользователя.

Заключение

Новая версия уже в репозитории, можно обновляться.

bezumkin.ru я пока трогать не буду, обновлю после запуска modx.pro, где будем обкатывать новый Tickets уже совсем скоро.

Следующая заметка
[Tickets] Версия 1.4.0-rc7 Публикация тикетов
Предыдущая заметка
SocialTools - Социальный функционал MODX


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

  1. Andrei D. 01 апреля 2014, 17:49 # 0
    Эпично
    1. Wassi Wassinen 01 апреля 2014, 18:09 # 0
      Катарсис!
      1. Wassi Wassinen 01 апреля 2014, 18:43 # 0
        Василий, а здесь планируешь запустить избранное? Очень бы помогло.
        1. Василий Наумкин 01 апреля 2014, 20:10 # +1
          Я ж написал в конце заметки, что — да, но позже.
          1. Wassi Wassinen 01 апреля 2014, 21:03 # 0
            Это тот самый случай, когда нихрена не прочитал, но спросить обязан. :)) Пардон и ждем-с.
        2. Андрей 02 апреля 2014, 07:05 # 0
          Что-то сниппет getTicketsSections после обновления перестал работать…
          [[getTicketsSections? &parents=`48` &limit=`0`]]
          1. Василий Наумкин 02 апреля 2014, 07:14 # 0
            Попробуй обновить pdoTools.
            1. Андрей 02 апреля 2014, 07:46 # 0
              Спасибо, заработало…
          2. Андрей 02 апреля 2014, 18:21 # 0
            Чего-то после обновления pdoTools перестал работать вот такой вызов pdoField
            [[pdoField? &id=`[[*id]]` &field=`pagetitle` &top=`1`]]
            1. Василий Наумкин 02 апреля 2014, 18:23 # 0
              Не перестал.

              Стал работать точно как в UltimateParent — в changelog это указано.
              1. Василий Наумкин 02 апреля 2014, 18:48 # 0
                Немного переделал.

                Теперь &topLevel работает как в UltimateParent, а если указать &top без него — то вернется родитель сверху, как раньше.

                Обновляйся и проверяй.
                1. Андрей 02 апреля 2014, 19:13 # 0
                  Проверил, спасибо, работает!
              Добавление новых комментариев отключено.