Tickets добавление комментария не там

если использовать
[[!pdoPage?
                    &element=`TicketComments`
                    &allowGuest=`1`
                    &depth=`1`
                    &gravatarIcon=`identicon`
                    &gravatarSize=`70`
                    &tplCommentAuth=`Tickets.comment.one.auth`
                    &limit=`5`
]]

                    [[!+page.nav]]
То новый коммент можно добавить хоть с 1-ой страницы хоть с 5-ой
Т.е. если у нас много комментов и они разбиты на страницы

то при добавлении нового коммента находясь на 1 странице — то этот новый коммент якобы вставляется в страницу эту же)) а по идее он как бы должен добавиться снизу после последнего на N-ой странице
Konstantin
22 октября 2015, 23:25
modx.pro
2
2 108
0

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

Максим Кузнецов
24 октября 2015, 16:12
0
А в чем здесь вопрос?

Upd: добавление нового комментария происходит при помощи аякса, возвращая комментарий методом append в нужный контейнер ('#comments' или '#comment-'+parent+' > .comments-list', если комментарий добавлен вложенным ответом). С выводимым сниппетом он уже никак не связан.

Для решения вашей проблемы, вы можете или переписать скрипт assets/components/tickets/js/web/default.js под себя, или отключить аякс-добавление для комментариев, или перезагружать pdoPage своим аяксом, при добавлении комментария.
    Konstantin
    24 октября 2015, 21:40
    0
    а как JS узнает сколько страниц pdoPage выводит?
    [[!+pageCount]]
    использовать?

    Нужно чтобы после добавления комментария загружалась последняя страница комментариев
      Konstantin
      24 октября 2015, 22:55
      0
      Спасибо, все получилось
      Konstantin
      24 октября 2015, 21:54
      0
      получается надо как то сделать

      // Поведение браузера будет подобно клику по ссылке:
      window.location.href = "[[++site_url]][[!*uri]]&page=[[!+pageCount]]";
      на событие добавления коммента если значение [[!+pageCount]] больше 1
        Konstantin
        24 октября 2015, 22:53
        +2
        собственно сделал так:

        открыл файл
        assets/components/tickets/js/web/default.js
        нашел строки (примерно 333)

        Tickets.comment.getlist();
        prettyPrint();
        }
        else {

        над ними написал

        //смотрим число страниц с комментами
        						var countpage = 1;
        						countpage = $("#countpage").html()
        						//alert(countpage);   // для проверки
        						if (countpage > 1) {
        							//если больше одной
        							window.location.href = $("#countpage").attr("value");
        							countpage = '';
        						}
        						countpage = '';

        в шаблоне перед пагинацией добавил

        <hr />
                            [[!if? &subject=`[[!+pageCount]]`  &operator=`gt` &operand=`1` &then=`Страниц всего <span id="countpage" value="[[++site_url]][[!*uri]]&page=[[!+pageCount]]">[[!+pageCount]]</span>` &else=``]]
                            
                            [[!+page.nav]]
        И вуаля, вопрос решен костылём.

        Теперь при добавлении коммента если включена пагинация комментариев то после добавления нового комментария мы переносимся на последнюю страницу комментариев.
          Максим Кузнецов
          25 октября 2015, 01:39
          0
          В системных настройках ticket'сов можно указывать путь до файла скриптов — вам нужно сделать копию файла и прописать путь до него, чтобы обновление не затерло ваши изменения.

          А в целом — почти не костыль.) Только если добавленный комментарий определит новую страницу, то скрипт перенесет не на последнюю…
            Алексей Федоров
            06 апреля 2017, 17:30
            0
            Дошли руки попробовать это решение. Все получилось, но вылезла микроошибка. На последней странице пагинации тоже происходила перезагрузка. Вот так исправил вызов сниппета IF
            [[!if? 
            &subject=`[[!+page]]`  
            &operator=`lt` 
            &operand=`[[!+pageCount]]` 
            &then=`Страниц всего <span id="countpage" value="[[++site_url]][[!*uri]]&page=[[!+pageCount]]">[[!+pageCount]]</span>` 
            &else=``]]
            Алексей Федоров
            25 октября 2015, 16:08
            0
            А можно организовать размещение ответа тикетов стандартно, а в другом вот так — в конце списка? Допустим отредактировать js и присвоить тикетам, которые выводятся нестандартно, другой класс и продублировать содержимое скрипта для второго класса? Или есть более разумное решение?
              Алексей Федоров
              25 октября 2015, 17:54
              0
              Хм, пропустил слово. имелось в виду
              в одном месте стандартные тикеты, а в другом — ставить новый тикет в конце списка
                Konstantin
                25 октября 2015, 23:12
                0
                не понимаю
                  Алексей Федоров
                  26 октября 2015, 00:23
                  0
                  В одном разделе прикрутить тикетс в стандартном варианте (Ответ под сообщением и чуть смещен) — прямо как здесь.

                  А в другом разделе — каждый новый комментарий становится последним, как вариант добавить автопростановку цитаты, чтобы было понятно к чему относится ответ. Такая себе заготовка под форум.

                  Вот и возник вопрос можно ли так сделать? Например, дополнить файл javascript'а? Или под это придется делать новый компонент, который будет использовать тикетс? Или я туплю, и где-то в настройках можно сделать разный вывод тикетов для разных разделов?

                  На мой взгляд Ticket's — практически готовый форум для modx =) поставить последовательный вывод комментов, добавить вывод информации из UserProfile2 под иконкой пользователя, добавить несколько кнопок в MarkitUp и вуаля! Новая тема форума = новый тикет. Ответы, они и в Африке ответы. Топики на одну тематику создавать в одном разделе, которые уже можно объединить по категориям, сделать вложенность и т.д. По сути нативный и стабильный форум для modx, чего многие ждут.

                  Но при этом терять привычные возможности Ticket's не хочется. Получится такое сделать?
                Николаевич
                13 апреля 2017, 17:34
                0
                В последнем обновлении появилось новое js событие на сохранение комментария
                [#147] Added an javascript events on save and preview comments and tickets
                Подскажите, где его найти? Если быть более точным, как выполнить код на странице, если комментарий успешно добавлен?
                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                  12