2012-01-02 55 views
2

我安装了joomla 1.7(window/xampp/php 5.3),我目前的模板是beez_20。我不得不重写pagination.php和这样做我复制了pagination.php从joomla 1.7:覆盖pagination.php不工作

\libraries\joomla\html 

\templates\beez_20\html。当我重新加载主页时,我收到了如下图所示的损坏模板。

enter image description here

我得到正常的页面,当我从HTML文件夹中删除pagination.php。我相信这是改写分页的正确方法.php

缺少什么?需要更改任何配置?请提前发表您的意见

感谢

+1

那么,你只是想哟让分页回到默认?如果是这样,你可以从beez html文件夹中删除分页。 – john 2012-01-02 15:45:46

回答

4

,我真的相信这是做了正确的方式...

这里是你尝试用(作品对我来说)一个pagnation.php:

<?php 
// no direct access 
defined('_JEXEC') or die('Restricted access'); 

/** 
* This is a file to add template specific chrome to pagination rendering. 
* 
* pagination_list_footer 
* Input variable $list is an array with offsets: 
*  $list[limit]  : int 
*  $list[limitstart] : int 
*  $list[total]  : int 
*  $list[limitfield] : string 
*  $list[pagescounter] : string 
*  $list[pageslinks] : string 
* 
* pagination_list_render 
* Input variable $list is an array with offsets: 
*  $list[all] 
*   [data]  : string 
*   [active] : boolean 
*  $list[start] 
*   [data]  : string 
*   [active] : boolean 
*  $list[previous] 
*   [data]  : string 
*   [active] : boolean 
*  $list[next] 
*   [data]  : string 
*   [active] : boolean 
*  $list[end] 
*   [data]  : string 
*   [active] : boolean 
*  $list[pages] 
*   [{PAGE}][data]  : string 
*   [{PAGE}][active] : boolean 
* 
* pagination_item_active 
* Input variable $item is an object with fields: 
*  $item->base : integer 
*  $item->link : string 
*  $item->text : string 
* 
* pagination_item_inactive 
* Input variable $item is an object with fields: 
*  $item->base : integer 
*  $item->link : string 
*  $item->text : string 
* 
* This gives template designers ultimate control over how pagination is rendered. 
* 
* NOTE: If you override pagination_item_active OR pagination_item_inactive you MUST    override them both 
*/ 

function pagination_list_footer($list) 
{ 
// Initialize variables 
$lang =& JFactory::getLanguage(); 
$html = "<div class=\"list-footer\">\n"; 

if ($lang->isRTL()) 
{ 
    $html .= "\n<div class=\"counter\">".$list['pagescounter']."</div>"; 
    $html .= $list['pageslinks']; 
    $html .= "\n<div class=\"limit\">".JText::_('Display  Num').$list['limitfield']."</div>"; 
} 
else 
{ 
    $html .= "\n<div class=\"limit\">".JText::_('Display  Num').$list['limitfield']."</div>"; 
    $html .= $list['pageslinks']; 
    $html .= "\n<div class=\"counter\">".$list['pagescounter']."</div>"; 
} 

$html .= "\n<input type=\"hidden\" name=\"limitstart\" value=\"".$list['limitstart']."\" />"; 
$html .= "\n</div>"; 

return $html; 
} 

function pagination_list_render($list) 
{ 
// Initialize variables 
$lang =& JFactory::getLanguage(); 
$html = "<div class=\"pagination\"><ul>"; 
// Reverse output rendering for right-to-left display 
if($lang->isRTL()) 
{ 
    $html .= "<li class=\"pagination-start\">".$list['start']['data']."</li>"; 
    $html .= "<li class=\"pagination-prev\">".$list['previous']['data']."</li>"; 

    $list['pages'] = array_reverse($list['pages']); 

    foreach($list['pages'] as $page) { 
     if($page['data']['active']) { 
      // $html .= '<strong>'; 
     } 

     $html .= "<li>".$page['data']."</li>"; 

     if($page['data']['active']) { 
      // $html .= '</strong>'; 
     } 
    } 

    $html .= "<li class=\"pagination-next\">".$list['next']['data']."</li>"; 
    $html .= "<li class=\"pagination-end\">".$list['end']['data']."</li>"; 
    // $html .= '&#171;'; 
} 
else 
{ 

    foreach($list['pages'] as $page) 
    { 
     if($page['data']['active']) { 
      // $html .= '<strong>'; 
     } 

     $html .= "<li>".$page['data']."</li>"; 

     if($page['data']['active']) { 
      // $html .= '</strong>'; 
     } 
    } 


} 
$html .= "</ul></div>"; 
return $html; 
} 
?> 
+0

非常感谢:) – 2012-01-02 15:59:33

4

您不应该以您尝试的方式覆盖整个pagination.php。您只能覆盖某些功能。你看到这个页面的原因是因为如果你复制了整个pagination.php文件而没有改变任何东西,所以你重新声明了JPagination类,你不能这样做。

当您尝试对pagination.php进行更改时,您应该只重写希望覆盖的函数而不复制整个文件。

请看看这篇文章有点过时,但信息仍然适用于J! 2.5 http://docs.joomla.org/Understanding_Output_Overrides