[Tickets] Версия 1.14.1-pl — последние комментарии и аннотация

Вышла Tickets 1.14.1-pl — патч к версии 1.14.0 от 12 июля.

Основная работа в этом релизе — над TicketLatest: ускорили выборку последних комментариев, убрали лишнее чтение содержимого тикетов и исправили ошибки SQL при включённом ONLY_FULL_GROUP_BY. Также добавили настройку длины автоматической аннотации, расширили параметры TicketForm и исправили несколько проблем, обнаруженных после предыдущего релиза.

Производительность TicketLatest

В режиме &action=`comments` без &user сниппет теперь начинает выборку с TicketThread и сортирует комментарии по полю comment_time. Для этого в таблицу tickets_threads добавлен индекс, который создаётся резолвером при обновлении пакета.

Также:

  • Убрано чтение Ticket.content при выводе комментариев — на больших выборках оно приводило к избыточной нагрузке на запрос.
  • Исправлена ошибка SQL 1055 при включённом ONLY_FULL_GROUP_BY.
  • В режиме комментариев sortby=createdon теперь тоже использует comment_time.
  • Из Section и Profile выбираются только поля, необходимые для чанка.
  • Значение sortby по умолчанию теперь пустое: сниппет самостоятельно выбирает поле сортировки в зависимости от режима работы.
Подробнее: #214, #216.

Автоматическая аннотация

Добавлена настройка tickets.autocut_text_length со значением по умолчанию 0.

Она работает совместно с tickets.auto_introtext. Если в тексте нет тега , а аннотация пуста, Tickets может заполнить её первыми N видимыми символами текста.

При этом тикет длиннее tickets.ticket_max_cut можно сохранить с фронтенда без . Сам текст тикета не изменяется.

При значении 0 сохраняется прежнее поведение: длинный тикет без с фронтенда не сохранится.

Например, чтобы автоматически формировать аннотацию длиной 500 символов, установите tickets.autocut_text_length = 500 и включите tickets.auto_introtext.

Подробнее: #218.

Новые параметры TicketForm

В TicketForm добавлены два параметра:

  • &exclude — исключает указанные разделы из списка доступных. При редактировании тикета его текущий раздел остаётся в списке.
  • &redirectTo — задаёт ресурс, на который пользователь попадёт после публикации нового тикета. Значение 0 сохраняет переход на созданный тикет. Для черновиков продолжает использоваться &redirectUnpublished.
Подробнее: #102.

Настройки по умолчанию

В системные настройки добавлены параметры, которые раньше уже использовались внутри кода:

  • tickets.disable_jevix_default
  • tickets.process_tags_default
  • tickets.ticket_show_in_tree_default
  • tickets.section_id_as_alias
  • Семь настроек весов рейтинга автора tickets.rating_*_default.
Значения по умолчанию соответствуют прежнему поведению компонента. При обновлении уже заданные настройки не перезаписываются.

Также исправлено описание tickets.section_content_default: значение по умолчанию пустое, а вывод списка дочерних тикетов эта настройка не определяет.

Подробнее: #221.

Исправления

  • При снятии тикета с публикации фронтенд больше не падает из-за вызова isDirty() без имени поля. В MODX 2.x используемая версия xPDO требует аргумент.
  • В TicketLatest с &action=`Tickets` теперь корректно выбирается чанк тикета. Раньше при обработке &tpl до приведения регистра мог подставляться чанк комментария.
  • Очистка корзины удаляет ветки комментариев и у обычных ресурсов. У тикетов удаление ветки resource-{id} по-прежнему выполняет Ticket::remove().
Подробнее: #221, #222.

Совместимость

Tickets 1.14.1-pl предназначен для MODX Revolution 2.x и требует PHP 8.0+.

Порт на MODX 3 остаётся отдельной задачей.

Если обнаружите проблему или хотите предложить улучшение, создавайте issue в репозитории Tickets.

Если компонент полезен вашим проектам и вы хотите поддержать его дальнейшее развитие:

Иван Бочкарев
Иван Бочкарев
44 минуты назад
modx.pro
6

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

Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
0