AJAX пагинация при помощи pdoPage для TicketComments
Здравствуйте. Необходимо реализовать догрузку комментариев на странице, при помощи AJAX кнопки, для этих целей я взял pdoPage. Вот код вызова:
Подгрузка через кнопку работает, то есть комментарии добавляются, однако они добавляются с еще одной формой.
TicketComments – самостоятельно добавляет форму в разметку страницы, однако при такой вот догрузки он плодит эти формы, насколько я понял. Возможно есть мозжность вывести форму один раз самостоятельно, плейсхолдером а не использовать автоматическое ее добавление на странице или как-то по другому реализовать. Возможно я что-то неправильно разметил по блокам, но вроде как все верно, вот разметка review__wrapper:
<div class="reviews">
<div class="reviews__inner">
<div class="titleLine">
<span class="titleLine__text">[[*pagetitle]]</span>
</div>
<div class="comments">
<div class="comments__inner" id="pdopage">
<div class="comments__inf">
<span class="comments__total">Все отзывы ([[+total]])</span>
</div>
[[!pdoPage?
&element=`TicketComments`
&allowGuest=`1`
&autoPublishGuest=`0`
&limit=`3`
&ajaxMode=`button`
&ajaxElemRows=`#pdopage .comments__list`
&ajaxElemMore=`#pdopage .buttonMore__link--comments`
&ajaxTplMore=`review__buttonMore`
&tplComments=`review__wrapper`
&tplCommentForm=`review__form`
&tplCommentFormGuest=`review__form`
&tplCommentAuth=`review__item`
&gravatarUrl=`/img/user__ico.png`
]]
</div>
</div>
</div>
</div>
<!--Контейнер для комментов КОНЕЦ-->
Подгрузка через кнопку работает, то есть комментарии добавляются, однако они добавляются с еще одной формой.
TicketComments – самостоятельно добавляет форму в разметку страницы, однако при такой вот догрузки он плодит эти формы, насколько я понял. Возможно есть мозжность вывести форму один раз самостоятельно, плейсхолдером а не использовать автоматическое ее добавление на странице или как-то по другому реализовать. Возможно я что-то неправильно разметил по блокам, но вроде как все верно, вот разметка review__wrapper:
<!--Лист комментариев-->
<div class="comments__list">
[[+comments]]
</div>
<!--Лист комментариев КОНЕЦ-->
<!--Пагинация комментариев-->
[[!+page.nav]]
<!--Пагинация комментариев КОНЕЦ-->
Комментарии: 2
Проблему так и не решил
Я редактировал сам сниппет, скопировав его, т.к. штатного отключения для пагинации нет.
Видимо, нужно, сильно попросить Василия добавить пару нужных вещей для TicketComments, т.к. с пагинацией есть проблемы.
убрать форму можно вмешавшись в код дополнения строки около 190:
Видимо, нужно, сильно попросить Василия добавить пару нужных вещей для TicketComments, т.к. с пагинацией есть проблемы.
убрать форму можно вмешавшись в код дополнения строки около 190:
$pls = array('thread' => $scriptProperties['thread']);
if (!$Tickets->authenticated && empty($allowGuest)) {
$form = $pdoFetch->getChunk($tplLoginToComment);
} elseif (!$Tickets->authenticated) {
$pls['name'] = $_SESSION['TicketComments']['name'];
$pls['email'] = $_SESSION['TicketComments']['email'];
if (!empty($enableCaptcha)) {
$tmp = $Tickets->getCaptcha();
$pls['captcha'] = $modx->lexicon('ticket_comment_captcha', $tmp);
}
$form = $pdoFetch->getChunk($tplCommentFormGuest, $pls);
} else {
$form = $pdoFetch->getChunk($tplCommentForm, $pls);
}
if ($_GET['page']) {
$form = ''; // очищаем переменную если есть GET запрос пагинации. Т.е. форма на страницах 2 и более не появится.
}
$commentForm = $thread->get('closed')
? $modx->lexicon('ticket_thread_err_closed')
: $form;
$output = !empty($formBefore)
? $commentForm . $commentsThread
: $commentsThread . $commentForm;
У этого решения есть минус — при прямом обращении к странице комента — форма не будет показана. Поэтому это всего лишь временное не полноценное решение.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.