2013-05-12 102 views
2

我在图书馆/ HTML文件夹变为一个功能核心pagination.php像的Joomla 2.5分页覆盖

protected function _list_render($list) 
    { 
$stranky = JPagination::getPagesCounter(); 

     $html = '<ul>'; 
     $html .= '<li class="pagination-prev">' . $list['previous']['data'] . '</li>'; 


    $html .= '<li> &nbsp; | '. $stranky .' |&nbsp; </li>'; 

     $html .= '<li class="pagination-next">' . $list['next']['data'] . '</li>'; 
     $html .= '</ul>'; 

     return $html; 
    } 

这种变化的伟大工程,但我想实现是有覆盖该代码。所以我把同样的代码在pagination.php在HTML文件夹在我的模板文件夹,并更改名称的功能来pagination_list_render($列表)

function pagination_list_render($list) 
    { 

$stranky = JPagination::getPagesCounter(); 


     $html = '<ul>'; 
     $html .= '<li class="pagination-prev">' . $list['previous']['data'] . '</li>'; 

     $html .= '<li> &nbsp; | '. $stranky .' |&nbsp; </li>'; 

     $html .= '<li class="pagination-next">' . $list['next']['data'] . '</li>'; 
     $html .= '</ul>'; 

     return $html; 
    } 

但现在不工作了和整个页面被打破。

看来, $ stranky = JPagination :: getPagesCounter(); 是核心文件中的问题,它在覆盖文件中不起作用。 任何想法?

回答

2

您的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> &nbsp; | '. $counter .' | &nbsp; </li>'; 
    $html .= '<li class="pagination-next">' . $list['next']['data'] . '</li>'; 
    $html .= '</ul>'; 

    return $html; 
} 

也许你想添加一个测试,如果有超过1页。

+0

如果我叫getPagesCounter()静态或与您的sugested $此,在核心文件中的变化将产生良好的结果而改变。但是,如果我在chrome文件中放置相同的代码(静态或$ this),结果总是相同的,破损的页面。 Nibra,请你确认你是否试图重写这样的内容,它对你有用?如果你尝试,也许你会发现这个覆盖的问题在哪里。谢谢 – Matop79 2013-05-13 15:41:43

+0

对不起,我没有测试它。你是对的,JPagination对象在覆盖中不可用。更正(并测试)答案。 – nibra 2013-05-13 16:47:56

+0

您的解决方案有效!谢谢。我接受你的答案。但还有一个问题。在这种覆盖方法中真的没有办法包含(调用)JPagination对象?我宁愿使用优雅的方式来使用JPagination对象,而不是计算它。 – Matop79 2013-05-13 17:44:57

1

我改变了默认分页在我的模板是这样的:

它,如果你使用jQuery

$(document).ready(function() { 
     $('.pagenav').removeClass('pagenav').addClass('pagination'); 
    }); 

你可以把任何东西来代替“分页”真的很简单。 同样可以用于其子李

希望帮助