我已经在libraries/html文件夹中的core pagination.php中更改了一个函数,就像这样
protected function _list_render($list)
{
$stranky = JPagination::getPagesCounter();
$html = '<ul>';
$html .= '<li class="pagination-prev">' . $list['previous']['data'] . '</li>';
$html .= '<li> | '. $stranky .' | </li>';
$html .= '<li class="pagination-next">' . $list['next']['data'] . '</li>';
$html .= '</ul>';
return $html;
}
这个更改效果很好,但我想要实现的是覆盖此代码。所以我将相同的代码放在模板文件夹中 html 文件夹中的 pagination.php 中,并将函数名称更改为 pagination_list_render($list)
function pagination_list_render($list)
{
$stranky = JPagination::getPagesCounter();
$html = '<ul>';
$html .= '<li class="pagination-prev">' . $list['previous']['data'] . '</li>';
$html .= '<li> | '. $stranky .' | </li>';
$html .= '<li class="pagination-next">' . $list['next']['data'] . '</li>';
$html .= '</ul>';
return $html;
}
但现在它不再工作了,整个页面都坏了。
看来 $stranky = JPagination::getPagesCounter(); 是问题所在..在核心文件中它可以工作,在覆盖文件中则不能。 有什么想法吗?
最佳答案
您的 chrome 文件(分页模板覆盖)无法访问 JPagination 对象,因此您必须自己计算值。
public function pagination_list_render($list)
{
$total = count($list['pages']);
$current = 0;
foreach ($list['pages'] as $i => $page) {
if (!$page['active']) {
$current = $i;
break;
}
}
$counter = JText::sprintf('JLIB_HTML_PAGE_CURRENT_OF_TOTAL', $current, $total);
$html .= '<ul>';
$html .= '<li class="pagination-prev">' . $list['previous']['data'] . '</li>';
$html .= '<li> | '. $counter .' | </li>';
$html .= '<li class="pagination-next">' . $list['next']['data'] . '</li>';
$html .= '</ul>';
return $html;
}
如果页面超过 1 页,也许您想添加测试。
关于php - Joomla 2.5 分页覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16512074/