Tickets Comments

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

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

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

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