Tickets добавление комментария не там
если использовать
Т.е. если у нас много комментов и они разбиты на страницы
то при добавлении нового коммента находясь на 1 странице — то этот новый коммент якобы вставляется в страницу эту же)) а по идее он как бы должен добавиться снизу после последнего на N-ой странице
[[!pdoPage?
&element=`TicketComments`
&allowGuest=`1`
&depth=`1`
&gravatarIcon=`identicon`
&gravatarSize=`70`
&tplCommentAuth=`Tickets.comment.one.auth`
&limit=`5`
]]
[[!+page.nav]]
То новый коммент можно добавить хоть с 1-ой страницы хоть с 5-ойТ.е. если у нас много комментов и они разбиты на страницы
то при добавлении нового коммента находясь на 1 странице — то этот новый коммент якобы вставляется в страницу эту же)) а по идее он как бы должен добавиться снизу после последнего на N-ой странице
Комментарии: 12
А в чем здесь вопрос?
Upd: добавление нового комментария происходит при помощи аякса, возвращая комментарий методом append в нужный контейнер ('#comments' или '#comment-'+parent+' > .comments-list', если комментарий добавлен вложенным ответом). С выводимым сниппетом он уже никак не связан.
Для решения вашей проблемы, вы можете или переписать скрипт assets/components/tickets/js/web/default.js под себя, или отключить аякс-добавление для комментариев, или перезагружать pdoPage своим аяксом, при добавлении комментария.
Upd: добавление нового комментария происходит при помощи аякса, возвращая комментарий методом append в нужный контейнер ('#comments' или '#comment-'+parent+' > .comments-list', если комментарий добавлен вложенным ответом). С выводимым сниппетом он уже никак не связан.
Для решения вашей проблемы, вы можете или переписать скрипт assets/components/tickets/js/web/default.js под себя, или отключить аякс-добавление для комментариев, или перезагружать pdoPage своим аяксом, при добавлении комментария.
а как JS узнает сколько страниц pdoPage выводит?
Нужно чтобы после добавления комментария загружалась последняя страница комментариев
[[!+pageCount]]
использовать?Нужно чтобы после добавления комментария загружалась последняя страница комментариев
Спасибо, все получилось
получается надо как то сделать
// Поведение браузера будет подобно клику по ссылке:
window.location.href = "[[++site_url]][[!*uri]]&page=[[!+pageCount]]";
на событие добавления коммента если значение [[!+pageCount]] больше 1
собственно сделал так:
открыл файл
над ними написал
в шаблоне перед пагинацией добавил
Теперь при добавлении коммента если включена пагинация комментариев то после добавления нового комментария мы переносимся на последнюю страницу комментариев.
открыл файл
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]]
И вуаля, вопрос решен костылём.Теперь при добавлении коммента если включена пагинация комментариев то после добавления нового комментария мы переносимся на последнюю страницу комментариев.
В системных настройках ticket'сов можно указывать путь до файла скриптов — вам нужно сделать копию файла и прописать путь до него, чтобы обновление не затерло ваши изменения.
А в целом — почти не костыль.) Только если добавленный комментарий определит новую страницу, то скрипт перенесет не на последнюю…
А в целом — почти не костыль.) Только если добавленный комментарий определит новую страницу, то скрипт перенесет не на последнюю…
Дошли руки попробовать это решение. Все получилось, но вылезла микроошибка. На последней странице пагинации тоже происходила перезагрузка. Вот так исправил вызов сниппета IF
[[!if?
&subject=`[[!+page]]`
&operator=`lt`
&operand=`[[!+pageCount]]`
&then=`Страниц всего <span id="countpage" value="[[++site_url]][[!*uri]]&page=[[!+pageCount]]">[[!+pageCount]]</span>`
&else=``]]
А можно организовать размещение ответа тикетов стандартно, а в другом вот так — в конце списка? Допустим отредактировать js и присвоить тикетам, которые выводятся нестандартно, другой класс и продублировать содержимое скрипта для второго класса? Или есть более разумное решение?
Хм, пропустил слово. имелось в виду
в одном месте стандартные тикеты, а в другом — ставить новый тикет в конце списка
не понимаю
В одном разделе прикрутить тикетс в стандартном варианте (Ответ под сообщением и чуть смещен) — прямо как здесь.
А в другом разделе — каждый новый комментарий становится последним, как вариант добавить автопростановку цитаты, чтобы было понятно к чему относится ответ. Такая себе заготовка под форум.
Вот и возник вопрос можно ли так сделать? Например, дополнить файл javascript'а? Или под это придется делать новый компонент, который будет использовать тикетс? Или я туплю, и где-то в настройках можно сделать разный вывод тикетов для разных разделов?
На мой взгляд Ticket's — практически готовый форум для modx =) поставить последовательный вывод комментов, добавить вывод информации из UserProfile2 под иконкой пользователя, добавить несколько кнопок в MarkitUp и вуаля! Новая тема форума = новый тикет. Ответы, они и в Африке ответы. Топики на одну тематику создавать в одном разделе, которые уже можно объединить по категориям, сделать вложенность и т.д. По сути нативный и стабильный форум для modx, чего многие ждут.
Но при этом терять привычные возможности Ticket's не хочется. Получится такое сделать?
А в другом разделе — каждый новый комментарий становится последним, как вариант добавить автопростановку цитаты, чтобы было понятно к чему относится ответ. Такая себе заготовка под форум.
Вот и возник вопрос можно ли так сделать? Например, дополнить файл javascript'а? Или под это придется делать новый компонент, который будет использовать тикетс? Или я туплю, и где-то в настройках можно сделать разный вывод тикетов для разных разделов?
На мой взгляд Ticket's — практически готовый форум для modx =) поставить последовательный вывод комментов, добавить вывод информации из UserProfile2 под иконкой пользователя, добавить несколько кнопок в MarkitUp и вуаля! Новая тема форума = новый тикет. Ответы, они и в Африке ответы. Топики на одну тематику создавать в одном разделе, которые уже можно объединить по категориям, сделать вложенность и т.д. По сути нативный и стабильный форум для modx, чего многие ждут.
Но при этом терять привычные возможности Ticket's не хочется. Получится такое сделать?
В последнем обновлении появилось новое js событие на сохранение комментария
[#147] Added an javascript events on save and preview comments and tickets
Подскажите, где его найти? Если быть более точным, как выполнить код на странице, если комментарий успешно добавлен?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.