Форум русской поддержки Joomla!® CMS
08.12.2016, 13:57:15 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Переопределение /libraries/cms/pagination

 (Прочитано 260 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Pavluk
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 21



« : 17.09.2015, 13:57:39 »

Добрый день, нужно изменить лимит вывода  pagination, он находится тут  /libraries/cms/pagination/pagination.php
Подскажите как переопределить, перепробовал масса вариантов
Сделать нужно примерно следующее 
P.S. Joomla 3.4.4
Записан
AlekVolsk
Профи
********

Репутация: +317/-3
Offline Offline

Пол: Мужской
Сообщений: 6458



« Ответ #1 : 17.09.2015, 14:28:22 »

это делается в /templates/ваш шаблон/html/pagination.php, переопределите там переменную $displayedPages, значение должно быть кратным 2, иначе рискуете получить ошибку деления (как-то попробовал поставить 5, подумал, что сайт вообще потерял).
Записан
Pavluk
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 21



« Ответ #2 : 17.09.2015, 14:31:19 »

это делается в /templates/ваш шаблон/html/pagination.php, переопределите там переменную $displayedPages, значение должно быть кратным 2, иначе рискуете получить ошибку деления (как-то попробовал поставить 5, подумал, что сайт вообще потерял).
Подскажите как правильно переопределить? Я уже создал pagination.php и переписал под себя но переменной этой там не было (переписывал под bootstrap на основе стандартного от Joomla 3.3)
Вот код мой
Код:
<?php
defined('_JEXEC') or die;

function pagination_list_footer($list)
{
$html = "<div class=\"pagination\">\n";
$html .= $list['pageslinks'];
$html .= "\n<input type=\"hidden\" name=\"" . $list['prefix'] . "limitstart\" value=\"" . $list['limitstart'] . "\" />";
$html .= "\n</div>";

return $html;
}

function pagination_list_render($list)
{
// Calculate to display range of pages
$currentPage = 1;
$range = 1;
$step = 6;
foreach ($list['pages'] as $k => $page)
{
if (!$page['active'])
{
$currentPage = $k;
}
}
if ($currentPage >= $step)
{
if ($currentPage % $step == 0)
{
$range = ceil($currentPage / $step) + 1;
}
else
{
$range = ceil($currentPage / $step);
}
}

$html = '<ul class="pagination">';
$html .= $list['start']['data'];
$html .= $list['previous']['data'];

foreach ($list['pages'] as $k => $page)
{
if (in_array($k, range($range * $step - ($step + 1), $range * $step)))
{
if (($k % $step == 0 || $k == $range * $step - ($step + 1)) && $k != $currentPage && $k != $range * $step - $step)
{
$page['data'] = preg_replace('#(<a.*?>).*?(</a>)#', '$1...$2', $page['data']);
}
}

$html .= $page['data'];
}

$html .= $list['next']['data'];
$html .= $list['end']['data'];

$html .= '</ul>';
return $html;
}

function pagination_item_active(&$item)
{
$class = '';

// Check for "Start" item
if ($item->text == JText::_('JLIB_HTML_START'))
{
$display = '<span class="icon-first">' . $item->link . '</span>';
}
// Check for "Prev" item
if ($item->text == JText::_('JPREV'))
{
$display = '<span class="icon-previous">' . $item->link . '</span>';
}
// Check for "Next" item
if ($item->text == JText::_('JNEXT'))
{
$display = '<span class="icon-next">' . $item->link . '</span>';
}

// Check for "End" item
if ($item->text == JText::_('JLIB_HTML_END'))
{
$display = '<span class="icon-last">' . $item->link . '</span>';
}

// If the display object isn't set already, just render the item with its text
if (!isset($display))
{
$display = $item->text;
$class   = ' class="hidden-xs"';
}

return '<li' . $class . '><a title="' . $item->text . '" href="' . $item->link . '" class="pagenav">' . $item->text . '</a></li>';
}

function pagination_item_inactive(&$item)
{
// Check for "Start" item
if ($item->text == JText::_('JLIB_HTML_START'))
{
return '<li class="disabled"><a><span class="icon-first">' . JText::_('JLIB_HTML_START').'</span></a></li>';
}

// Check for "Prev" item
if ($item->text == JText::_('JPREV'))
{
return '<li class="disabled"><a><span class="icon-previous">' . JText::_('JPREV').'</span></a></li>';
}

// Check for "Next" item
if ($item->text == JText::_('JNEXT'))
{
return '<li class="disabled"><a>' . JText::_('JNEXT').'</a></li>';
}

// Check for "End" item
if ($item->text == JText::_('JLIB_HTML_END'))
{
return '<li class="disabled"><a><span class="icon-last">' . JText::_('JLIB_HTML_END').'</span></a></li>';
}

// Check if the item is the active page
if (isset($item->active) && ($item->active))
{
return '<li class="active hidden-xs"><a>' . $item->text . '</a></li>';
}

// Doesn't match any other condition, render a normal item
return '<li class="disabled hidden-xs"><a>' . $item->text . '</a></li>';
}
Записан
Pavluk
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 21



« Ответ #3 : 17.09.2015, 14:32:54 »

это делается в /templates/ваш шаблон/html/pagination.php, переопределите там переменную $displayedPages, значение должно быть кратным 2, иначе рискуете получить ошибку деления (как-то попробовал поставить 5, подумал, что сайт вообще потерял).
Еще подскажите как сделать что бы "..." появлялось не на заданном номере как сейчас
Код:
$step = 6;
а появлялось в последнем отображаемом пункте как на скриншете выше
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet