Question

I installed joomla 1.7(window/xampp/php 5.3) and my current template is beez_20. I have to override the pagination.php and to do so I copied the pagination.php from

\libraries\joomla\html

to

\templates\beez_20\html. When I reload the home page, I am getting a broken template as in the following picture.

enter image description here

I get the normal page when I remove the pagination.php from the html folder. I believe this is the correct method to override the pagination.php

what is missing ? need to change any configuration ? please post your comments

Thanks in advance

Was it helpful?

Solution

I do belive this is the correct way to do it...

Here is a pagnation.php for you to try with (works for me):

<?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;
}
?>

OTHER TIPS

You should not override the entire pagination.php in the manner you tried. You can only override certain functions. The reason you are seeing this page is because if you copied the entire pagination.php file with out changing anything, so you are re-declaring the JPagination class and you can't do that.

When you are try to make changes to the pagination.php you should only re-write the functions you wish to override not copy the entire file.

Please check out this article it's a little dated but the information still applies even in J! 2.5 http://docs.joomla.org/Understanding_Output_Overrides

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top