Вывод пагинации без дублирования ссылок на первую и последнюю страницы с помощью pdoPage
        1)Сниппет:

3) Результат при активной 1-ой:

Хотелось бы получить такой результат: закрепленные ссылки на первую и последнюю страницы, между ними 3 промежуточные страницы. Пробовал найти как выводить плейсхолдер [[+pages]] без первой и последней, но не нашел.
Заранее благодарю за любые мысли, направляющие в нужную сторону.
    
    
                                                                                
            [[!pdoPage?
        &tpl=`New`
        &limit=`4`
        &includeTVs=`image`
        &limit=`2`
        &pageLimit=`3`
        &tplPageWrapper=`@INLINE <nav aria-label="pagination"><ul class="pagination">[[+prev]][[+first]][[+pages]][[+last]][[+next]]</ul></nav>`
        &tplPageFirst=`@INLINE <li class="page-item 1"><a class="page-link" href="[[+href]]">1</a></li>`
        &tplPageLast=`@INLINE <li class="page-item 1"><a class="page-link" href="[[+href]]">[[+pageCount]]</a></li>`
        &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 class="page-item"><a class="page-link" href="[[+href]]"><img src="assets/app/img/prev.png" alt="Предыдущая"><span class="sr-only">Next</span></a></li>`
        &tplPageNext=`@INLINE <li class="page-item"><a class="page-link" href="[[+href]]"><img src="assets/app/img/next.png" alt="Следующая"><span class="sr-only">Next</span></a></li>`
        &tplPagePrevEmpty=`@INLINE <li class="page-item disabled"><a class="page-link" ><img src="assets/app/img/prev.png" alt="Предыдущая"><span class="sr-only">Next</span></a></li>`
        &tplPageNextEmpty=`@INLINE <li class="page-item disabled"><a class="page-link" ><img src="assets/app/img/next.png" alt="Следующая"><span class="sr-only">Next</span></a></li>`
        &tplPageFirstEmpty=``
        &tplPageLastEmpty=``
      ]]2) Результат при активной 2-ой:
3) Результат при активной 1-ой:

Хотелось бы получить такой результат: закрепленные ссылки на первую и последнюю страницы, между ними 3 промежуточные страницы. Пробовал найти как выводить плейсхолдер [[+pages]] без первой и последней, но не нашел.
Заранее благодарю за любые мысли, направляющие в нужную сторону.
Комментарии: 6
                А что если схалтурить и сделать вот так в чанке tplPage:
Проверьте-ка вдруг подойдет
                    {if $pageNo not in [1, $pageCount]}
<li class="page-item"><a href="{$href}" class="page-link">{$pageNo}</a></li>
{/if}
// Или через css
<li class="page-item" {$pageNo in [1, $pageCount] ? 'style="display:none" или class="hidden"' : ''}><a href="{$href}" class="page-link">{$pageNo}</a></li>Проверьте-ка вдруг подойдет
                Первый вариант работает наполовину: убирает дублирование, на 1 и 2 выводит 4 кнопки, на 3-* 5 кнопок. Также хотелось бы еще убрать такое же дублирование последних кнопок, так как с $pageCount почему-то не убирает, хотя если подставить число страниц, то убирает.
Второй вариант работает некорректно.
                    Второй вариант работает некорректно.
                Оба варианта одинаковые, но не суть.
Я так и думал, что в чанк tplPage не приходит плейсхолдер [[+pageCount]], нуу… так как я слаб в php, то я бы попробовал залезть через js в объект pdoPage до загрузки и сделал бы нужные манипуляции
                    Я так и думал, что в чанк tplPage не приходит плейсхолдер [[+pageCount]], нуу… так как я слаб в php, то я бы попробовал залезть через js в объект pdoPage до загрузки и сделал бы нужные манипуляции
                Попробуйте вот так:
                    {'!pdoPage' | snippet : [
    'tplPage' => '@INLINE {if $pageNo not in [1, $_modx->getPlaceholder("pageCount")]}<li class="page-item"><a href="{$href}" class="page-link">{$pageNo}</a></li>{/if}',
    'pageLimit' => 3
]}На первой и последней странице по два выводит?            
                Нет, так не выходит.
Немного сделал иначе, с небольшой потерей функционала.
Теперь стрелки ссылаются на 1-ю и последнюю страницы.
                    Немного сделал иначе, с небольшой потерей функционала.
Теперь стрелки ссылаются на 1-ю и последнюю страницы.
[[!pdoPage?
        &tpl=`New`
        &limit=`4`
        &includeTVs=`image`
        &limit=`2`
        &pageLimit=`5`
        &tplPageWrapper=`@INLINE <nav aria-label="pagination"><ul class="pagination">[[+first]][[+pages]][[+last]]</ul></nav>`
        &tplPageFirst=`@INLINE <li class="page-item"><a class="page-link" href="[[+href]]"><img src="assets/app/img/prev.png" alt="Предыдущая"><span class="sr-only">Next</span></a></li>`
        &tplPageLast=`@INLINE <li class="page-item"><a class="page-link" href="[[+href]]"><img src="assets/app/img/next.png" alt="Следующая"><span class="sr-only">Next</span></a></li>`
        &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=``
        &tplPageNext=``
        &tplPagePrevEmpty=``
        &tplPageNextEmpty=``
        &tplPageFirstEmpty=`@INLINE <li class="page-item disabled"><a class="page-link" ><img src="assets/app/img/prev.png" alt="Предыдущая"><span class="sr-only">Next</span></a></li>`
        &tplPageLastEmpty=`@INLINE <li class="page-item disabled"><a class="page-link" ><img src="assets/app/img/next.png" alt="Следующая"><span class="sr-only">Next</span></a></li>`
      ]]            
                Результат как на Связном.


Копируем сниппет pdoPage с новым именем _pdoPage.
(С целью исключения перезаписи при обновлении)
Строка 159. Конструкция вида:
Меняем
Сам вызов
                    

Копируем сниппет pdoPage с новым именем _pdoPage.
(С целью исключения перезаписи при обновлении)
Строка 159. Конструкция вида:
if (!empty($pageCount) && $pageCount > 1) {
        $pagination = array(
            'first' => $page > 1 && !empty($tplPageFirst)
                ? $pdoPage->makePageLink($url, 1, $tplPageFirst)
                : '',
            'prev' => $page > 1 && !empty($tplPagePrev)
                ? $pdoPage->makePageLink($url, $page - 1, $tplPagePrev)
                : '',
            'pages' => $pageLimit >= 7 && empty($disableModernPagination)
                ? $pdoPage->buildModernPagination($page, $pageCount, $url)
                : $pdoPage->buildClassicPagination($page, $pageCount, $url),
            'next' => $page < $pageCount && !empty($tplPageNext)
                ? $pdoPage->makePageLink($url, $page + 1, $tplPageNext)
                : '',
            'last' => $page < $pageCount && !empty($tplPageLast)
                ? $pdoPage->makePageLink($url, $pageCount, $tplPageLast)
                : '',
        );Меняем
$page > 1 на $page > 2
$page < $pageCount на $page < $pageCount - 1Сам вызов
[[!_pdoPage?
    -//-
    &tplPageFirst=`@INLINE <li class="control"><a href="[[+href]]">[[+pageNo]]</a></li>`
    &tplPageLast=`@INLINE <li class="control"><a href="[[+href]]">[[+pageNo]]</a></li>`
    &tplPageFirstEmpty=`@INLINE `
    &tplPageLastEmpty=`@INLINE `
    &tplPagePrevEmpty=`@INLINE `
    &tplPageNextEmpty=`@INLINE `
]]            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.