Пагинация вложена сама в себя
Помогите разобраться с пагинацией:
{var $result = '!pdoPage' | snippet : [
'ajaxMode' => 'default',
'parents' => 9,
'sortby' => $_modx->resource.sortBy,
'sortdir' => $_modx->resource.sortDir,
'includeTVs' => 'size,area,image1,pro,price1',
'tpl' => '@FILE elements/chunks/card.tpl',
'limit' => 15,
'tvPrefix' => '',
'where' => $_modx->resource.tagfilter,
'tvFilters' => $_modx->resource.tagfilter2,
'tplPageWrapper' => '@INLINE <nav aria-label="Page navigation"><ul class="pagination justify-content-center">{$prev}{$pages}{$next}</ul></nav>',
'tplPage' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">{$pageNo}</a></li>',
'tplPageActive' => '@INLINE <li class="page-item active"><a class="page-link" href="{$href}">{$pageNo}</a></li>',
'tplPagePrev' => '@INLINE <li rel="prev"><a class="page-link" href="{$href}">«</a></li>',
'tplPageNext' => '@INLINE <li rel="next"><a class="page-link" href="{$href}">»</a></li>',
'tplPagePrevEmpty' => '@INLINE ',
'pageLimit' => 6,
'tplPageNextEmpty' => '@INLINE ',
'ajaxElemWrapper' => '#child_list',
'ajaxElemRows' => '#child_list .card-deck',
'ajaxElemPagination' => '#child_list .pagination',
'ajaxElemLink' => '#child_list .pagination a',
]}
{$result}
{$_modx->getPlaceholder('page.nav')}
{else}
<p class="lead">Нет подходящих проектов</p>
{/if}
Вот этот код работает странно, При открытии страницы каталога, он нормально отображает пагинацию, а при переходе на другую страницу он дважды вкладывает пагинацию в tplPageWrapper:<nav aria-label="Page navigation">
<ul class="pagination justify-content-center">
<nav aria-label="Page navigation">
<ul class="pagination justify-content-center">
<li rel="prev"><a class="page-link" href="?page=2&pageId=9&hash=e09036a1ecf29af51e5997ed9933901bedafefbc">«</a></li>
<li class="page-item"><a class="page-link" href="?page=1&pageId=9&hash=e09036a1ecf29af51e5997ed9933901bedafefbc">1</a></li>
<li class="page-item"><a class="page-link" href="?page=2&pageId=9&hash=e09036a1ecf29af51e5997ed9933901bedafefbc">2</a></li>
<li class="page-item active"><a class="page-link" href="?page=3&pageId=9&hash=e09036a1ecf29af51e5997ed9933901bedafefbc">3</a></li>
<li class="page-item"><a class="page-link" href="?page=4&pageId=9&hash=e09036a1ecf29af51e5997ed9933901bedafefbc">4</a></li>
<li class="page-item"><a class="page-link" href="?page=5&pageId=9&hash=e09036a1ecf29af51e5997ed9933901bedafefbc">5</a></li>
<li class="page-item"><a class="page-link" href="?page=6&pageId=9&hash=e09036a1ecf29af51e5997ed9933901bedafefbc">6</a></li>
<li rel="next"><a class="page-link" href="?page=4&pageId=9&hash=e09036a1ecf29af51e5997ed9933901bedafefbc">»</a></li>
</ul>
</nav>
</ul>
</nav>
Если по ссылке открыть сразу допустим 3-ю страницу, то этой вложенности нет. Она появляется, когда непосредственно по пагинации щёлкаешь. Со штандартными шаблонами пагинации таже беда. Комментарии: 6
Это потому что ты в своём шаблоне пагинации не указываешь класс pagination И для обёртки. Это необходимо, исследуй чанк по умолчанию в параметре tplPageWrapper.
В твоём случае, для тега nav также нужен класс pagination. Если при этом едет вёрстка, то её уже и поправляй под эту конструкцию.
В твоём случае, для тега nav также нужен класс pagination. Если при этом едет вёрстка, то её уже и поправляй под эту конструкцию.
Неа, убрал вообще nav и оставил только ul всё равно такая же фигня
Так не убрать нужно, а добавить класс pagination. Должны быть 2 одинаковых класса вложенных один в другой.
В чанке по умолчанию это же есть:
В чанке по умолчанию это же есть:
@INLINE <div class="pagination"><ul class="pagination">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul></div>
Неа, всё равно так же
Попробуй убирать по очереди параметры шаблонов, чтобы подставлялись дефолтные чанки. Тогда сможешь понять методом исключения где зарыта проблема.
И скинь полный код всего твоего контейнера #child_list, чтобы было видно где именно ты вызываешь сниппет, а где пагинацию, а то ты только вызовы показал.
Дело точно в твоей обёртке. Вот пример правильной обёртки.
И скинь полный код всего твоего контейнера #child_list, чтобы было видно где именно ты вызываешь сниппет, а где пагинацию, а то ты только вызовы показал.
Дело точно в твоей обёртке. Вот пример правильной обёртки.
Добрый день!
как то решается вопрос вложенной пагинации, использую дефолтный код для вызова pdoPage
Использую:
MODX Revolution 2.7.3-pl
PdoTools 2.12.7-pl
как то решается вопрос вложенной пагинации, использую дефолтный код для вызова pdoPage
<div id="pdopage">
<div class="rows">
[[!pdoPage?
&tpl=`@INLINE <div>[[+pagetitle]]</div>`
&ajaxMode=`default`
]]
</div>
[[!+page.nav]]
</div>
если нажать на переход на страницу в пагинации, то после Ajax загрузки пагинация оборачивается в еще один ul (хотя в документации сказано: Внутри [[+page.nav]] у нас div с классом pagination — так в pdoPage по умолчанию, также в документации неверный дефолтный чанк &tplPageWrapper
@INLINE <div class="pagination"><ul class="pagination">[[+first]][[+prev]][[+pages]][[+next]][[+last]]</ul></div>
)<ul class="pagination">
<ul class="pagination">
<li class="page-item disabled"><a class="page-link" href="#">Первая</a></li>
...
</ul>
</ul>
только при Ajax такое происходит, подскажите как правильно настроить?Использую:
MODX Revolution 2.7.3-pl
PdoTools 2.12.7-pl
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.