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

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

Здравствуйте дорогие читатели блога. Сегодня мы поговорим о переопределении пагинации в шаблоне Joomla.

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

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

Можно переопределить вывод пагинации в нашем Joomla шаблоне. Для этого возьмем файл из стандартного шаблона Joomla Ваш_сайт/templates/rhuk_milkyway/html/pagination.php и скопируем его в ту же директорию своего шаблона.

В файле представлены четыре функции:

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

Если не устраивают стандартная пагинация в 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>";
}
?>

Жду ваших вопросов в комментариях.

Комментарии  

 
0 #3 tigra 13.10.2014 13:17
Здравствуйте!
Подскажите, пожалуйста, как убрать вывод цифр для пагинации в блоге категории? Нужно чтобы остались только фоновые кружочки, с подсветкой активной страницы
Цитировать
 
 
+1 #2 voffka 23.10.2012 20:18
А как сделать, чтобы отображался еще и выпадающий список выбора количества элементов на странице (как пагинация в админке)?
Цитировать
 
 
+2 #1 Евген 11.10.2012 12:02
Вставляем код в /templates/youre_template/html/pagination.php, кодировка utf-8 с BOM
Отсутствуют ссылки "начало" "туда" "сюда" "конец", выводятся только номера страниц.
Наковыряно под жомлу 2.5.


function newColor(idCell ) {
if (document.all) eval('document.all.'+idCell+'.style.background = "#0196FF"');
else eval('document.getElementById( "' + idCell + '").style.background = "#0196FF"');
}
function backColor(idCel l) {
if (document.all) eval('document.all.'+idCell+'.style.background = "#C0C0C0"');
else eval('document.getElementById( "' + idCell + '").style.background = "#C0C0C0"');
}
Цитировать
 

Добавить комментарий


Защитный код
Обновить

MOD_BREADCRUMBS_HERE Главная страница
?>