Joomla 1.7: переопределение pagination.php не работает - PullRequest
2 голосов
/ 02 января 2012

Я установил Joomla 1.7 (window / xampp / php 5.3) и мой текущий шаблон beez_20. Я должен переопределить файл pagination.php и для этого скопировал файл pagination.php из

\libraries\joomla\html

до

\templates\beez_20\html. Когда я перезагружаю домашнюю страницу, я получаю сломанный шаблон, как показано на следующем рисунке.

enter image description here

Я получаю обычную страницу, когда удаляю pagination.php из папки html. Я считаю, что это правильный способ переопределить pagination.php

что не хватает? Нужно изменить любую конфигурацию? пожалуйста, оставьте свои комментарии

Заранее спасибо

Ответы [ 2 ]

4 голосов
/ 31 января 2012

Вы не должны переопределять весь pagination.php так, как вы пытались. Вы можете переопределить только определенные функции. Причина, по которой вы видите эту страницу, заключается в том, что если вы скопировали весь файл pagination.php без каких-либо изменений, значит, вы повторно объявляете класс JPagination и не можете этого сделать.

Когда вы пытаетесь внести изменения в pagination.php, вам следует переписать только те функции, которые вы хотите переопределить, а не копировать весь файл.

Пожалуйста, ознакомьтесь с этой статьей, она немного устарела, но информация по-прежнему применима даже в J! 2.5 http://docs.joomla.org/Understanding_Output_Overrides

4 голосов
/ 02 января 2012

Я верю, что это правильный способ сделать это ...

Вот 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;
}
?>
...