По умолчанию Joomla в постраничной навигации показывает 10 страниц. Чтобы изменить это число есть такой способ.
Стандартным переопределением шаблонов вывода этого не добиться. Нужная нам переменная $displayedPages хранится в файле ../libraries/src/Pagination/Pagination.php (верно для Joomla 3 и 4 версий).
Где значение жестко прописано:
$displayedPages = 10;
Вот так выглядит пагинация по умолчанию:
А вот так получилось в итоге:
Чтобы изменить это значение требуется пересобрать код вывода, но уже с нашими данными в переменной $displayedPages.
Для этого в месте вызова getPagesLinks() до ее вызова нужно вставить переопределенный код. Должно получится примерно так:
<?php if (($this->params->def('show_pagination', 1) == 1 || ($this->params->get('show_pagination') == 2)) && ($this->pagination->pagesTotal > 1)) : ?>
<div class="com-content-category-blog__navigation w-100 mt-5">
<div class="com-content-category-blog__pagination">
<?php
$displayedPages = 5;
$this->pagination->pagesStart = $this->pagination->pagesCurrent - ($displayedPages / 2);
if ($this->pagination->pagesStart < 1)
{
$this->pagination->pagesStart = 1;
}
if ($this->pagination->pagesStart + $displayedPages > $this->pagination->pagesTotal)
{
$this->pagination->pagesStop = $this->pagination->pagesTotal;
if ($this->pagination->pagesTotal < $displayedPages)
{
$this->pagination->pagesStart = 1;
}
else
{
$this->pagination->pagesStart = $this->pagination->pagesTotal - $displayedPages + 1;
}
}
else
{
$this->pagination->pagesStop = $this->pagination->pagesStart + $displayedPages - 1;
}
echo $this->pagination->getPagesLinks(); ?>
</div>
</div>
<?php if ($this->params->def('show_pagination_results', 1)) : ?>
<p class="com-content-category-blog__counter counter text-center">
<?php echo $this->pagination->getPagesCounter(); ?>
</p>
<?php endif; ?>
<?php endif; ?>
Этот код я вставил в шаблон блога категории - ../templates/<ваш шаблон>/html/com_content/category/blog.php, где первоначально был просто вызов метода
echo $this->pagination->getPagesLinks();