Tickets - как сделать более гибким?

Сайт состоит из разных разнонаправленных разделов с чуть отличающейся логикой работы. Но все они сделаны на тикетах. И не хватает гибкости в реализации.
Накопились 2 вопроса, которые тормозят весь процесс на данный момент:

1. Как можно отловить и управлять событиями при добавлении, сохранении тикета (через TicketForm)?
Это нужно для реализации разной логики в разделах, отличной от стандартной. Например в одном разделе стандартная логика работает на «ура», а в другом требуется выполнение каких-то действий при сохранении формы (например сменить класс на js или перезагрузить страницу)

Пример такой гибкости в AjaxForm

2. Как менять текст уведомления при добавлении комментариев отдельно для каждого раздела, то есть не меняя при этом стандартные словари?
Ситуация ровно та же: в одном разделе комментарии и есть комментарии и там всё хорошо, а в другом разделе это например вопрос-ответ и упоминание комментариев в уведомлениях запрещено (Например «Ваш комментарий вопрос (или ответ) отправлен на модерацию.»
Василий Столейков
14 июля 2016, 05:16
modx.pro
1
905
0
Поблагодарить автора Отправить деньги

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

Василий Столейков
14 июля 2016, 09:55
0
В какую сторону мне копать?
Может быть вручную подключать отдельные js-файлы прямо вручную в коде в разных шаблонах разные файлы?
Или всё-таки есть какие-то события, на которые можно реагировать для обновления содержимого страницы и вклинивания в работу компонента «на лету»?
    Сергей Шлоков
    14 июля 2016, 13:05
    0
    По первому пункту, думаю, надо свой js делать с нужной логикой или расширять стандартный (копию).
    По второму пункту. Для каждого раздела укажи нужный чанк с шаблоном для уведомлений в параметре tplCommentEmailSubscription.
      Василий Столейков
      14 июля 2016, 13:27
      0
      1. Спасибо, буду копать… Жаль что не предусмотрены события чтобы к ним подцепится…
      2. Под уведомлениями я имел ввиду не почтовые, а всплывающие на jGrowl
        Сергей Шлоков
        14 июля 2016, 13:34
        0
        А разве при добавлении комментариев есть jGrowl уведомления?
        Вижу. При модерации есть. Ну тогда делай копию default.js и правь 316 строчку. Не забудь в настройках указать новый файл.

        Жаль что не предусмотрены события чтобы к ним подцепится…

        Можно сделать себе и отправить PR.
          Василий Столейков
          14 июля 2016, 13:39
          0
          Нда, нужно будет думать как в копиях привязать логику отдельно к каждым разделам…
          Наверно буду отталкиваться от каких-то родительских классов…
          Спасибо!
            Сергей Шлоков
            14 июля 2016, 14:18
            1
            +2
            Копия нужна одна.
            Для каждого раздела укажи свой класс. Например,
            <body class="faq">
            и проверяй в 316 строчке
            switch ($(document.body).attr('class')) {
               case 'faq':
            	....
            	break
               case 'forum':
            	....
            	break
               default:
            	Tickets.Message.info(response.message);
            	break
            }
            Где нужна базовая логика класс не указывай.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
7