[Tickets] Версия 1.4.0-rc7 Публикация тикетов

Последний запланированны апдейт Tickets 1.4.0 добавляет долгожданную функцию - самостоятельную работу с публикацией тикетов.

Безусловно, это можно было делать и раньше, манипулируя полем published, но выходило так себе. Сейчас же всё просто - нужно только обновить чанки

  • tpl.Tickets.form.create
  • tpl.Tickets.form.update

И проверить у юзеров разрешение ticket_publish. Обратите внимание, что это разрешение требуется только на публикацию тикета, при снятии с публикации оно не нужно.

То есть - убираете разрешение у группы юзеров и у вас на сайте выходит премодерация. Юзер может сохранить тикет в черновики, а опубликовать - нет.

Вот так теперь выглядят формы: - Создание нового тикета

  • Изменение неопубликованного
  • Изменение опубликованного

В списке разрешенных полей для редактирования больше не нужно указывать published - его значение все равно никого не волнует. Работа с тикетом зависит только от нажатой кнопки: - Опубликовать - сохраняет тикет, публикует и редиректит юзера на готовую страницу.

  • В черновики - сохраняет тикет, снимает с публикации и перезагружает страницу редактирования. Если у сниппета TicketForm указан параметр redirectUnpublished - то юзер редиректится на него.
  • Сохранить - просто сохранение тикета, без перезагрузок. В углу высвечивается зеленое окошко "Сохранено!" - можно поменять в лексиконах. Эта кнопка отсутствует при создании тикета, потому что там его нужно обязательно куда-то отправить - или на редактирование, или на просмотр страницы.

Также в режиме редактирования опубликованного тиекта появляется кнопочка "Открыть" - она просто открывает страницу тикета в новом окне, для удобства.

Вывод черновиков

Тут все очевидно, но на всякий случай напишу:


[[!pdoPage?
    &element=`getTickets`
    &showLog=`1`
    &user=`[[!+modx.user.id]]`
    &showUnpublished=`1`
]]

[[!+page.nav]]

Конечно, желательно как-то разделять тикеты по статусу в оформлении чанков - но это уже на ваше усмотрение.

Также нужно добавить ссылку на редактирование:

<a href="[[~[[+id страницы с вызовом TicketForm]]]]?tid=[[+id]]">Отредактировать</a>

Теперь пользователи смогут просматривать и редактировать свои неопубликованные тикеты.

Заключение

Я внёс уже все запланированные изменения в Tickets 1.4.0. Честно говоря, с учетом наших краудфандинговых компаний, изменений было гораздо больше, чем планировалось.

Так что сейчас все внимательно тестируем и через какое-то время будет стабильная версия. Больше особо ничего не поменяется - только исправление ошибок.

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

Комментарии (22)
Наумов Алексей
02.04.2014 12:57

Класс. Все больше костылей, которые я написал еще с год назад, закрываются штатными методами)

dradleСаша Друмс
02.04.2014 13:51

У меня на хостинге такая проблема: при вызове сниппета TicketMeta на странице тикета 1-ый раз страница нормально грузится. При перезагрузке страницы 500 ошибка. В логах пишет:

Call to undefined method Ticket_mysql::getStars() in /site.ru/core/components/tickets/model/tickets/ticket.class.php on line 59

Вот эта 59 строка:

case 'stars': $value = $this->getStars(); break;

При выводе

case 'stars': $value = $this->getStarsCount(); break;

ошибка исчезает, но не уверен в правильности решения. ps: php 5.3.27 а на tefile.modx.pro вроде все ок.

bezumkinВасилий Наумкин
02.04.2014 14:02

Ага, завалялось старое имя метода.

Поправил и обновил пакет, спасибо!

Evgeny Epifanov
02.04.2014 16:18

Подскажите, а можно ли через TicketLatest выводить случайные комментарии? Не последние, а именно случайные?

bezumkinВасилий Наумкин
02.04.2014 19:05

Нет.

Но можно через getTickets и getComments:

&sortby=`RAND()`
Evgeny Epifanov
02.04.2014 20:26

Спасибо. Заодно и обновился.

Andrei D.
03.04.2014 11:43

А как теперь с кэшем быть? Раньше после сохранения был редирект на тикет и там поля были уже обновлены. Теперь нужно чистить кэш сайта, чтобы появились изменения P.S. использую старую связку input type="submit" class="btn btn-primary submit" value="Save" /> Дайте наводку где копать)

bezumkinВасилий Наумкин
03.04.2014 11:52

Очистка кэша прописана в процессорах создания и изменения тикета.

Там ничего не менялось - всё работает как и раньше.

Wassi Wassinen
15.04.2014 03:36

Василий, что-то не выводит он пдоПейджем черновики.

bezumkinВасилий Наумкин
15.04.2014 03:37

Может, подумать немного, и указать

&showUnpublished=`1`
Wassi Wassinen
15.04.2014 03:59

Я очень много раз думал понемногу и указывал так и сяк. Не выводит ничего. Даже если указываю id юзера.

bezumkinВасилий Наумкин
15.04.2014 04:13

А нужно всего один раз, но хорошенько - тогда бы ты вспомнил про &parents.

Ну и напоминаю про использование &showLog, который есть почти у всех сниппетов pdoTools, включая getTickets.

Wassi Wassinen
15.04.2014 04:16

Т.е. он не умеет по дефолту (0) искать везде? Сейчас попробую с парентсом.

Wassi Wassinen
15.04.2014 04:22

А! С ноликом работает! :)))

Wassi Wassinen
15.04.2014 04:18

Кстати о парентсах - почему-то когда ticketForm использую, указывая &parents - не выводит ничего. Убираю парентс - разрешает публиковать во все разделы.

bezumkinВасилий Наумкин
15.04.2014 04:27

Parents в TicketForm, так же как и в других сниппетах - это родители для выборки потомков. В данном случае, это родитель для выборки секций, а не сами секции.

По хорошему, нужно настроить права доступа на секции, управляя разрешением section_add_children. Если не получится - можно и так, но в этом случае юзер сможет опубликовать заметку в левую секцию (при большом желании).

Wassi Wassinen
15.04.2014 06:54

Мозг себе сломал ночью, а оно вот как работает...

https://pp.vk.me/c540104/c616523/v616523002/9d10/FKDQT-q4g0Q.jpg

Wassi Wassinen
15.04.2014 06:56

Именно поэтому у тебя тикет-разделы не вкладываются друг в друга?

Wassi Wassinen
15.04.2014 06:57

Как бы тебе вискаря заслать, Василий? Сам я не пью, а спиртное дарят. :)

Wassi Wassinen
15.04.2014 04:01

Не будь таким угрюмым - у нас солнце. :)

Валерий Сафронов
24.04.2014 15:16

Подскажите как сделать отправку сообщения на email Администратора при создании нового черновика тикета?

bezumkinВасилий Наумкин
24.04.2014 17:36

Только своим плагином на создание документа.

А так уведомления отсылаются при первой публикации тикета.

ЕвгенийК
09.04.2022 03:35
Это хорошо, что такая возможность есть и может быть использована. А то тенденция, мания, что-то в по...
begoodco1
07.04.2022 05:49
Зарегистрировался чтобы выразить благодарность за доступное и подробное описание процесса. Была возм...
bezumkin
Василий Наумкин
18.03.2022 12:35
Авторизация есть из коробки, для входа в базовую админку. Можно установить через composer и собрать ...
bezumkin
Василий Наумкин
10.03.2022 12:08
Ну, я имел в виду, что по закону можно =) А в реальности с валютой очевидные проблемы.
Сергей Лелеко
04.03.2022 06:12
О как! не знал! спасибо
bezumkin
Василий Наумкин
01.03.2022 15:32
Я делал одного бота на botman/botman, но из-за своей универсальности конкретно с Телеграм на нём раб...
bezumkin
Василий Наумкин
25.02.2022 09:22
P.S. Кажется цитаты у тебя никак не стилизуются в комментариях... Спасибо, поправил!
Electrica
Михаил
08.02.2022 11:19
Работает!
Алексей
09.01.2019 10:55
Насыщенный год ) От души поздравляю с ДР! Счастья, успехов и семейного благополучия! Жаль лимит заме...
septa rose
28.05.2018 22:16
hmmm, keren abis