Постраничная навигация в Joomla определяется в файле libraries\joomla\html\pagination.php

Но изменять этот файл не стоит, потому как изменения скорее всего затрутся при обновлении joomla.

Для переопределения внешнего вида постраничной навигации нужно положить файл pagination.php в папку html шаблона.

$chromePath = JPATH_THEMES . '/' . $app->getTemplate() . '/html/pagination.php';
if (function_exists('pagination_list_render'))
{
    $listOverride = true;
}

 


Так в файле libraries\joomla\html\pagination.php проверяется наличие файла html\pagination.php и наличие в нем нужных функций.

Если файл переопределения pagination.php есть в шаблоне, то он подгружается

include_once $chromePath;


Если есть переопределяющая функция, она выполняется, если ее нет - выполняется функция из файла libraries\joomla\html\pagination.php

$list['all']['data'] = ($itemOverride) ? 
           pagination_item_active($data->all) : $this->_item_active($data->all);

 


Вот список функций которые переопределяются

  • pagination_item_active
  • pagination_item_inactive
  • pagination_list_render
  • pagination_list_footer

Но тут может возникнуть вопрос, а как можно заменить слова веред, назад и т.д. Или лучше их совсем убрать, а вместо них сделать стрелочки.

Убрать эти надписи можно в менеджере языков, переопределение языковых констант.

Ищем константы

  • JLIB_HTML_END
  • JLIB_HTML_START
  • JLIB_HTML_VIEW_ALL
  • JNEXT
  • JPREV

и убираем их значения.

Теперь с помощью CSS можно вывести для соответствующих пунктов стрелочки или какое другое оформление.

Файл pagination.php с копиями функций можно положить в папку html шаблона и настроить вывод более подходящим образом.

pagination.php pagination.php (724)

Убрать результат разбиения на страницы можно в настройках компонента материалов:

pagination.php - переопределение вывода постраничной навигации Joomla

Можно также в шаблоне компонента закомментировать код, который выводит количество страниц:

<?php if ($this->params->def('show_pagination_results', 1)) : ?>
 <p class="counter">
  <?php echo $this->pagination->getPagesCounter(); ?>
 </p>
<?php endif; ?>

Этот код можно найти в файлах blog.php и default_articles.php в папке 

components\com_content\views\category\tmpl

Код для вывода постраничной навигации:

<?php echo $this->pagination->getPagesLinks(); ?>