Переопределение пагинации в шаблоне

05/10/2010 Документация Joomla 1.5

Пагинация - это разбиение на страницы. Изначально в Joomla пагинация выглядит как показано на рисунке.

article_list_pagination

Можно переопределить, заменить вывод, пагинации в вашем шаблоне. Для этого возьмем файл из стандартного шаблона Joomla {joomla root}\tamplates\rhuk_milkyway\html\pagination.php и скопируем его в ту же директорию своего шаблона.

В этом файле представленны 4 функции:

  • pagination_list_footer - в ней можно переопределить выпадающий список, использующийся для отображения количества объектов на странице.
  • pagination_list_render - эта функция для переопределяет вывод количества страниц, а так же ссылки "Первая", "Предыдущая", "Последняя" и "Следующая"
  • pagination_item_active - определяет вид ссылок, кроме текущей страницы (на картинке это 2,3,4...)
  • pagination_item_inactive - определяет вид ссылок текущей страницы (на картинке это << Start, < Prev и 1)

Таким образом, если не устраивают стандартные элементы используемые в Joomla для пагинации, можно их переопределить в своем шаблоне.

Пример файла pagination.php

<?php
defined('_JEXEC') or die('Restricted access');
 
function pagination_list_footer($list)
{
 // Initialize variables
 $lang =& JFactory::getLanguage();
 $html = "<ul class=\"list-footer\">\n";
 
 $html .= "\n<div class=\"limit\">".JText::_('Display Num').$list['limitfield']."</div>";
 $html .= $list['pageslinks'];
 $html .= "\n<div class=\"counter\">".$list['pagescounter']."</div>";
 
 $html .= "\n<input type=\"hidden\" name=\"limitstart\" value=\"".$list['limitstart']."\" />";
 $html .= "\n</div>";
 
 return $html;
}
 
function pagination_list_render($list)
{
 // Initialize variables
 $lang =& JFactory::getLanguage();
 $html = "<ul class=\"pagination\">";
 // Если выбрана первая страния то не показываем ссылки "Первая" и "Предыдущая"
 if ($list['start']['active'])
 {
 $html .= $list['start']['data'];
 $html .= $list['previous']['data'];
 }
 foreach( $list['pages'] as $page )
 {
 if($page['data']['active']) {
 // $html .= '<strong>';
 }
 
 $html .= $page['data'];
 
 if($page['data']['active']) {
 // $html .= '</strong>';
 }
 }
 // Если выбрана последняя страния то не показываем ссылки "Следующая" и "Последняя"
 if ($list['end']['active']) 
 {
 $html .= $list['next']['data'];
 $html .= $list['end']['data'];
 }
 
 $html .= "</ul>";
 return $html;
}
 
function pagination_item_active(&$item) {
 
 return "<li><a href=\"".$item->link."\" title=\"".$item->text."\" class=\"pagination\">".$item->text."</a></li>";
 
}
 
function pagination_item_inactive(&$item) {
 return "<li><span>".$item->text."</span></li>";
}
?>

4 

Комментарии   

 
0 Мебля
22.07.2013 15:17
День добрый. А как изменить "Start, prev, next, end" на русский?
Joomla 2.5

Спасибо!
 
 
-4 Иван
06.12.2014 00:22
А если банально перевести верхний файл, к примеру:
Вместо $html .= $list['end']['data'];
Заменить на: $html .= $list['конец']['data'];