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

  • 3 Ответов
  • 377 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Оффлайн Pavluk

  • ***
  • 25
  • [+]0 / [-]0
  • Skype: Pavluk1992
    • Просмотр профиля
    • Частный мастер Pavluk
Добрый день, нужно изменить лимит вывода  pagination, он находится тут  /libraries/cms/pagination/pagination.php
Подскажите как переопределить, перепробовал масса вариантов
Сделать нужно примерно следующее 
P.S. Joomla 3.4.4

*

Оффлайн AlekVolsk

Re: Переопределение /libraries/cms/pagination
« Ответ #1 : 17.09.2015, 15:28:22 »
это делается в /templates/ваш шаблон/html/pagination.php, переопределите там переменную $displayedPages, значение должно быть кратным 2, иначе рискуете получить ошибку деления (как-то попробовал поставить 5, подумал, что сайт вообще потерял).

*

Оффлайн Pavluk

  • ***
  • 25
  • [+]0 / [-]0
  • Skype: Pavluk1992
    • Просмотр профиля
    • Частный мастер Pavluk
Re: Переопределение /libraries/cms/pagination
« Ответ #2 : 17.09.2015, 15: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($krange($range $step - ($step 1), $range $step)))
{
if (($k $step == || $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

  • ***
  • 25
  • [+]0 / [-]0
  • Skype: Pavluk1992
    • Просмотр профиля
    • Частный мастер Pavluk
Re: Переопределение /libraries/cms/pagination
« Ответ #3 : 17.09.2015, 15:32:54 »
это делается в /templates/ваш шаблон/html/pagination.php, переопределите там переменную $displayedPages, значение должно быть кратным 2, иначе рискуете получить ошибку деления (как-то попробовал поставить 5, подумал, что сайт вообще потерял).
Еще подскажите как сделать что бы "..." появлялось не на заданном номере как сейчас $step = 6;а появлялось в последнем отображаемом пункте как на скриншете выше