Tickets - разное время редактирования комментария

Как для разных разделов установить разное время редактирования для комментариев?

Нужно передать время редактирования (или вообще отключить его) для какого-то конкретного вызова TicketComments?

То есть системная настройка tickets.comment_edit_time не позволяет более точечно настраивать комментарии для разных разделов сайта (доска объявлений, форум, отзывы, комментарии) — у разных разделов должна быть разная логика.

Есть какие-то мысли на этот счёт?
Василий Столейков
22 марта 2017, 21:08
modx.pro
1 923
0
Поблагодарить автора Отправить деньги

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

Василий Столейков
23 марта 2017, 10:54
0
Или хотя-бы как можно полностью отключить время редактирования в одной ветке сайта, а в другом шаблоне чтобы было это время?
    Сергей Шлоков
    24 марта 2017, 08:24
    +1
    У комментариев есть много событий, но события для get нет. Поэтому решение только через костыль — в плагине по событию onMODXInit проверять url и выставлять системную настройку tickets.comment_edit_time соответственно условию.
      Василий Столейков
      24 марта 2017, 10:05
      0
      onMODXInit не получает текущие данные ресурса, лишь 2 бесполезных параметра: contextKey и пустой options.
      Но спасибо за идею, достаточно лишь подобрать нужное событие!
        Сергей Шлоков
        24 марта 2017, 10:08
        0
        Не, тут только это событие доступно. Поэтому я и написал про URL.

        Ниже написали решение без плагина. Вот что значит «Одна голова хорошо...». )
    Алексей Смирнов
    24 марта 2017, 08:53
    0
    Присоединяюсь к вопросу. Очень нужная вещь сейчас.
    Думаю как вариант можно проверять по ID шаблона. Ща поковыряю, может чего найду )))
      Алексей Смирнов
      24 марта 2017, 09:15
      1
      +1
      В общем, решение следующее. Без плагинов:
      Копируем снипет TiketsComments — переименовав в удобное для вас имя. (чтобы обновлением не затерлось)
      И заменяем строку 9 на:
      $scriptProperties['commentEditTime'] = $modx->getOption('tickets_comment_edit_time', $scriptProperties, 180);
      Где 180 — Время по умолчанию в секундах. tickets_comment_edit_time — Имя переменной которую указываем в параметре снипета.
      Возможно тут еще есть варианты, но сейчас пока нет времени искать. Думаю, можно Василию написать просьбу сделать параметр этот из коробки. :)
        Василий Наумкин
        24 марта 2017, 09:43
        0
        То есть, указывать нужное число в параметре &commentEditTime при вызове TicketComments для вас не вариант?

        А, гоню. Нельзя его там указать через параметры — не учёл. Ну тогда да, только редактировать.
          Василий Столейков
          24 марта 2017, 09:53
          0
          А я уже испугался и принялся судорожно перебирать варианты с этим параметром )))
          Но был бы удобный параметр…
            Василий Наумкин
            24 марта 2017, 09:55
            0
            Увы.

            Если кто-то сделает хороший протестированный pull-request с изменением этого параметра для ветки — выпущу новую версию. Сам я пока ничего делать с Tickets не планирую.
              Василий Столейков
              24 марта 2017, 10:02
              0
              ок, спасибо!
                Василий Столейков
                24 марта 2017, 10:44
                0
                Не знаю, правильно ли я подал pull-request, но вроде бы получилось (если честно, то я там запутался, я не плотно знаком с гитхабом).
                Вкратце, изменил 9-ю строчку на следующую:
                $scriptProperties['commentEditTime'] = $modx->getOption('commentEditTime', $scriptProperties, $modx->getOption('tickets.comment_edit_time', null, 180));
                то есть если не указан параметр, значение берётся из системной настройки.
                  Василий Наумкин
                  24 марта 2017, 10:55
                  +1
                  хороший протестированный pull-request
                  Это ты уже всё проверил хорошо, протестировал?

                  Этот параметр нормально сохраняется в БД, потом оттуда получается при редактировании комментов и работает отдельно для разных веток?
                    Василий Столейков
                    24 марта 2017, 11:18
                    0
                    каюсь, недопроверил. Забыл про проверку в БД при отправке редактированного коммента…

                    А вот в системной настройке (tickets.comment_edit_time), видимо, нужно указать максимальный, по сайту, период возможности менять комментарий.
                    только так.

                    Похоже действительно только у себя прийдётся копию сниппета создать и юзать везде с этим параметром…
                      Алексей Смирнов
                      24 марта 2017, 11:18
                      0
                      DEL
            Алексей Смирнов
            24 марта 2017, 09:34
            +1
            При этом вышеизложенный метод будет влиять на показ КНОПКИ комментариев! А вот в системной настройке (tickets.comment_edit_time), видимо, нужно указать максимальный, по сайту, период возможности менять комментарий.
              Василий Столейков
              24 марта 2017, 11:20
              0
              Спасибо за помощь! Твой вариант подходит.
              Системная настройка с максимальным значением и параметр для сниппета в разных вызовах.
              Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
              16