Tickets Comments

Добрый день! Задача стоит такая. В комментах Tickets нужно чтобы пользователь опубликовал всего один комментарий в одном ресурсе, и больше не смог, и форму убираем. Как мне прописать в снипетах Tickets? Есть советы? А то голову ломаю)

Modx Revo, Tickets
Sparklingman
Sparklingman
11 июня 2021, 15:27
modx.pro
926

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

Артур Шевченко
16 июня 2021, 13:13
Какой пользователь авторизованный или анонимный?
Артур Шевченко
17 июня 2021, 14:23
Я бы просто записывал id ресурсов к которым этот пользователь оставил комментарий. Для этого придётся править исходники, поскольку у Tickets нет событий, значит плагин не написать
    Александр Мельник
    17 июня 2021, 19:05
    Какие шаги вы делали? Как пытались решить задачу?
    Первое что приходит на ум мне, это создать новую таблицу в базе у которой будет два колонки — id ресурса и id пользователя.
    Писать в эту таблицу данные, когда какой то пользователь оставляет комментарий.
    В шаблоне страницы вызывать свой сниппет, который на вход будет принимать id ресурса и id пользователя и внутри делать запрос к новой таблице. Если count() от этого запроса будет больше 0 значит что этот пользователь уже «отметился» на этой странице. В такой случае выставляем в вашем сниппете какой то плейсхолдер.
    Ниже в шаблоне на основании этого плейсхолдера решаем — стоит ли вообще вызывать тикетс или нет.
      Александр Мельник
      18 июня 2021, 07:33
      Открыл assets/components/tickets/js/web/default.js и вижу, что при сохранении тикета скрипт вызывает свое событие javascript и передает в него response. А значит вы можете обойтись и без правки исходников, написать свой javascript скрипт, отлавливать там наступление этого события и если оно успешно писать данные в базу.
      success: function (response) {
                          $(document).trigger('tickets_ticket_save', response);
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        5