我更改了库/ html文件夹中的核心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(); 是问题..在核心文件中它工作,在覆盖文件中没有。 有什么想法吗?
答案 0 :(得分:3)
您的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页,也许您想要添加测试。
答案 1 :(得分:1)
我在模板中更改了默认分页,如下所示:
如果你使用jQuery
,它真的很简单 $(document).ready(function() {
$( '.pagenav' ).removeClass( 'pagenav' ).addClass( 'pagination' );
});
你可以用任何东西代替“分页”。 同样,你可以为其子女改变
希望有所帮助