Последний запланированны апдейт Tickets 1.4.0 добавляет долгожданную функцию - самостоятельную работу с публикацией тикетов.
Безусловно, это можно было делать и раньше, манипулируя полем published, но выходило так себе. Сейчас же всё просто - нужно только обновить чанки
И проверить у юзеров разрешение ticket_publish. Обратите внимание, что это разрешение требуется только на публикацию тикета, при снятии с публикации оно не нужно.
То есть - убираете разрешение у группы юзеров и у вас на сайте выходит премодерация. Юзер может сохранить тикет в черновики, а опубликовать - нет.
Вот так теперь выглядят формы: - Создание нового тикета
В списке разрешенных полей для редактирования больше не нужно указывать published - его значение все равно никого не волнует. Работа с тикетом зависит только от нажатой кнопки: - Опубликовать - сохраняет тикет, публикует и редиректит юзера на готовую страницу.
Также в режиме редактирования опубликованного тиекта появляется кнопочка "Открыть" - она просто открывает страницу тикета в новом окне, для удобства.
Тут все очевидно, но на всякий случай напишу:
[[!pdoPage?
&element=`getTickets`
&showLog=`1`
&user=`[[!+modx.user.id]]`
&showUnpublished=`1`
]]
[[!+page.nav]]
Конечно, желательно как-то разделять тикеты по статусу в оформлении чанков - но это уже на ваше усмотрение.
Также нужно добавить ссылку на редактирование:
<a href="[[~[[+id страницы с вызовом TicketForm]]]]?tid=[[+id]]">Отредактировать</a>
Теперь пользователи смогут просматривать и редактировать свои неопубликованные тикеты.
Я внёс уже все запланированные изменения в Tickets 1.4.0. Честно говоря, с учетом наших краудфандинговых компаний, изменений было гораздо больше, чем планировалось.
Так что сейчас все внимательно тестируем и через какое-то время будет стабильная версия. Больше особо ничего не поменяется - только исправление ошибок.
Пакет уже доступен в репозитории, можно обновляться.
Класс. Все больше костылей, которые я написал еще с год назад, закрываются штатными методами)
У меня на хостинге такая проблема: при вызове сниппета TicketMeta на странице тикета 1-ый раз страница нормально грузится. При перезагрузке страницы 500 ошибка. В логах пишет:
Вот эта 59 строка:
При выводе
ошибка исчезает, но не уверен в правильности решения. ps: php 5.3.27 а на tefile.modx.pro вроде все ок.
Ага, завалялось старое имя метода.
Поправил и обновил пакет, спасибо!
Подскажите, а можно ли через TicketLatest выводить случайные комментарии? Не последние, а именно случайные?
Нет.
Но можно через getTickets и getComments:
Спасибо. Заодно и обновился.
А как теперь с кэшем быть? Раньше после сохранения был редирект на тикет и там поля были уже обновлены. Теперь нужно чистить кэш сайта, чтобы появились изменения P.S. использую старую связку input type="submit" class="btn btn-primary submit" value="Save" /> Дайте наводку где копать)
Очистка кэша прописана в процессорах создания и изменения тикета.
Там ничего не менялось - всё работает как и раньше.
Василий, что-то не выводит он пдоПейджем черновики.
Может, подумать немного, и указать
Я очень много раз думал понемногу и указывал так и сяк. Не выводит ничего. Даже если указываю id юзера.
А нужно всего один раз, но хорошенько - тогда бы ты вспомнил про &parents.
Ну и напоминаю про использование &showLog, который есть почти у всех сниппетов pdoTools, включая getTickets.
Т.е. он не умеет по дефолту (0) искать везде? Сейчас попробую с парентсом.
А! С ноликом работает! :)))
Кстати о парентсах - почему-то когда ticketForm использую, указывая &parents - не выводит ничего. Убираю парентс - разрешает публиковать во все разделы.
Parents в TicketForm, так же как и в других сниппетах - это родители для выборки потомков. В данном случае, это родитель для выборки секций, а не сами секции.
По хорошему, нужно настроить права доступа на секции, управляя разрешением section_add_children. Если не получится - можно и так, но в этом случае юзер сможет опубликовать заметку в левую секцию (при большом желании).
Мозг себе сломал ночью, а оно вот как работает...
https://pp.vk.me/c540104/c616523/v616523002/9d10/FKDQT-q4g0Q.jpg
Именно поэтому у тебя тикет-разделы не вкладываются друг в друга?
Как бы тебе вискаря заслать, Василий? Сам я не пью, а спиртное дарят. :)
Не будь таким угрюмым - у нас солнце. :)
Подскажите как сделать отправку сообщения на email Администратора при создании нового черновика тикета?
Только своим плагином на создание документа.
А так уведомления отсылаются при первой публикации тикета.