2013-05-12 123 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'); 
    }); 

你可以把任何東西來代替「分頁」真的很簡單。 同樣可以用於其子李

希望幫助