设为首页收藏本站
查看: 77|回复: 0

[PHP] phpCodeIgniter框架创建自己的分页类

[复制链接]

论坛元老

Rank: 6Rank: 6

积分
34274
主题
17031
UID
1347
M币
67
贡献
17176

  • 发表于 2013-12-26 17:15:00 | 显示全部楼层 |阅读模式
    CodeIngniter框架拥有自己分页类,但是自己在使用过程中发现了个问题,就是当当前页数为负值时,会造成分页显示异常。

      想通过下面代码控制当前页数不超出范围:
    if($cpage >= $total_pages) { $cpage = $total_pages; } elseif($cpage  
    通过上面的代码:当当前页数超过最大页数时可以设置$cpage=$total_pages,分页样式显示正常;但是当当前页数小于0时,虽然$cpage=1,但是此时分页样式会出现异常。

    为了弥补这个异常,我们可以通过创建属于自己的一个分页类,下面为创建步骤:

    1、在项目应用目录libraries目录中,创建类Myclass.php

    提示:

    1)、文件名首字母大写. 例如: Myclass.php

    2)、类声明首字母大写. 例如: class Myclass

    3)、类的名字和文件名应符合

    2、类Myclass.php
      1) { $page .= "
  • 首页"; } //输出前4页 $start_page = $cpage - 5; $start_page = ($start_page "; } //输出后5页 $end_page = $cpage + 5; $end_page = ($end_page >= $total_page) ? $total_page : $end_page; for($i = $cpage; $i {$i}"; } else { $page .= "
  • {$i}"; } } //最后一页 if($cpage "; } $page .= ''; return $page; } }
    上面为自己的分页类。

    3、使用自己的类

    在所有的Controller 函数中,你可以用以下的标准方式初始化你的类:
    $this->load->library('myclass');  当 myclass 是文件名时,不用加上”.php”扩展名.这里名字不分大小写.

    一旦你自定义的类加载完毕,你可以通过以下方式调用类,注意使用 小写 的名字:
    $this->myclass->my_function(); // 对象的实例名永远都是小写的
    在初始化自定义类时传递参数

    当初始化类库时,你可以通过第二个参数动态的传递数组到类的构造函数中去:
    $params = array('type' => 'large', 'color' => 'red'); $this->load->library('Someclass', $params);
    当你使用这个特性时,你必须为类的构造函数加上参数:  

      

      
    当然你也可以按照我上面的代码方式去传递参数。
  • 回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    在我站开通SVIP可同时获得17个站点VIP资源 立即登录 立即注册
    快速回复 返回顶部 返回列表