phpcms 添加新方法时在前台调用自定义分页
在使用PHPCMS的过程中,总会遇到自己二次开发一个新的方法时需要用到另一个分页样式,以下是自己定义的分页函数,程序中使用my_listinfo即可实现自己的分页样式;
一、首先在公共函数里复制一份自己的分页函数: phpcms\libs\functions\global.func.php
大概714行左右,复制整个pages分页函数,并且另命名为my_pagesm,例:
/** * 分页函数 my_pages * * @param $num 信息总数 * @param $curr_page 当前分页 * @param $perpage 每页显示数 * @param $urlrule URL规则 * @param $array 需要传递的数组,用于增加额外的方法 * @return 分页 */ function my_pages($num, $curr_page, $perpage = 20, $urlrule = '', $array = array(),$setpages = 10) { if(defined('URLRULE') && $urlrule == '') { $urlrule = URLRULE; $array = $GLOBALS['URL_ARRAY']; } elseif($urlrule == '') {................................ ..................
代码就没有复制完整了,例子就是需要更改一个函数名;
二、然后找到 model.class.php这个文件, 路径大概在 :phpcms\libs\classes\model.class.php ;
找到函数 listinfo,然后复制一份出来,像pages分页函数类似,更改一个自定义函数名称,这里举例就是使用 的 my_listinfo 为函数名,如下代码:
/** * 查询多条数据并分页 my_listinfo * @param $where * @param $order * @param $page * @param $pagesize * @return unknown_type */ final public function my_listinfo($where = '', $order = '', $page = 1, $pagesize = 20, $key='', $setpages = 10,$urlrule = '',$array = array(), $data = '*') { $where = to_sqls($where); $this->number = $this->count($where); $page = max(intval($page), 1); $offset = $pagesize*($page-1); $this->pages = my_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages); $array = array(); if ($this->number > 0) { return $this->select($where, $data, "$offset, $pagesize", $order, '', $key); } else { return array(); } }
注:复制的my_listinfo函数里面的 分页函数要使用刚刚自定义的分页函数名称,填写好即可在程序中使用自定义的分页函数了;
三、在某个模块下的index.php文件里,添加一个新的 方法,下面本人使用的是content模块里的index.php文件,在index.php 文件的尾部添加一个 getSearch的函数,例:
//测试程序分页函数 public function getSearch(){ $this->db = pc_base::load_model('content_model'); $this->db->table_name='v9_news'; $page = isset($_GET['page']) && intval($_GET['page']) ? intval($_GET['page']) : 1; $infos = $this->db->my_listinfo('',$order = 'listorder DESC',$page, $pages = '3'); $pages = $this->db->pages; print_r($infos); include template('content','test'); }
$infos = $this->db->my_listinfo('',$order = 'listorder DESC',$page, $pages = '3');
以上的查询并分页就是调用我们自身定义的分页函数了,需要修改样式,去到自定义分页函数那里修改即可,调用分页,在前台{$pages}即可,这样我们就完成了一个自定义程序分页的使用。
Dcr163的博客
http://dcr163.cn/389.html(转载时请注明本文出处及文章链接)