CodeIgniter自定义分页助手

时间:2013-01-09 15:30:10

标签: php codeigniter pagination

我想在CodeIgniter中创建自己的帮助器,我不知道出了什么问题。我将复制我的帮助文件,并在我的其他文件中,我将这个帮助器初始化并尝试回显并且没有任何显示。

 <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

     if (!function_exists('pagination'))

{

    function prikazi($per_page, $page, $url, $total)
    {
        $CI =& get_instance();
           $adjacents = "2";


    $page = ($page == 0 ? 1 : $page); 
    $start = ($page - 1) * $per_page;                              

    $prev = $page - 1;                         
    $next = $page + 1;
    $lastpage = ceil($total/$per_page);
    $lpm1 = $lastpage - 1;

    $pagination = "";
    if($lastpage > 1)
    {  
       $pagination .= "<ul class='pagination'>";
           $pagination .= "<li class='details'>Page $page of $lastpage</li>";
        if ($lastpage < 7 + ($adjacents * 2))
        {  
            for ($counter = 1; $counter <= $lastpage; $counter++)
            {
                if ($counter == $page)
                    $pagination.= "<li><a class='current'>$counter</a></li>";
                else
                    $pagination.= "<li><a href='{$url}$counter'>$counter</a></li>";                   
            }
        }
        elseif($lastpage > 5 + ($adjacents * 2))
        {
            if($page < 1 + ($adjacents * 2))    
            {
                for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<li><a class='current'>$counter</a></li>";
                    else
                        $pagination.= "<li><a href='{$url}$counter'>$counter</a></li>";                   
                }
                $pagination.= "<li class='dot'>...</li>";
                $pagination.= "<li><a href='{$url}$lpm1'>$lpm1</a></li>";
                $pagination.= "<li><a href='{$url}$lastpage'>$lastpage</a></li>";     
            }
            elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
            {
                $pagination.= "<li><a href='{$url}1'>1</a></li>";
                $pagination.= "<li><a href='{$url}2'>2</a></li>";
                $pagination.= "<li class='dot'>...</li>";
                for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<li><a class='current'>$counter</a></li>";
                    else
                        $pagination.= "<li><a href='{$url}$counter'>$counter</a></li>";                   
                }
                $pagination.= "<li class='dot'>..</li>";
                $pagination.= "<li><a href='{$url}$lpm1'>$lpm1</a></li>";
                $pagination.= "<li><a href='{$url}$lastpage'>$lastpage</a></li>";     
            }
            else
            {
                $pagination.= "<li><a href='{$url}1'>1</a></li>";
                $pagination.= "<li><a href='{$url}2'>2</a></li>";
                $pagination.= "<li class='dot'>..</li>";
                for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
                {
                    if ($counter == $page)
                        $pagination.= "<li><a class='current'>$counter</a></li>";
                    else
                        $pagination.= "<li><a href='{$url}$counter'>$counter</a></li>";                   
                }
            }
        }

        if ($page < $counter - 1){
            $pagination.= "<li><a href='{$url}$next'>Next</a></li>";
           // $pagination.= "<li><a href='{$url}$lastpage'>Last</a></li>";
        }else{
            //$pagination.= "<li><a class='current'>Next</a></li>";
           // $pagination.= "<li><a class='current'>Last</a></li>";
        }
        $pagination.= "</ul>\n";     
    }          
        return $pagination;
    }
}

在我的另一个档案中,我试着像这样回应:

  $this->load->helper('pagination');
    echo prikazi($bypage,$page,$link,$total); 

1 个答案:

答案 0 :(得分:0)

当你看到

$lastpage = ceil($total/$per_page);
$lpm1 = $lastpage - 1;

$pagination = "";
if($lastpage > 1)
{  
...
} else
return $pagination;

它可能归结为$ lastpage为0,因此返回一个空字符串。

您可能需要查看

 if (!function_exists('pagination'))

{

function prikazi($per_page, $page, $url, $total)
{

因为函数名称不匹配