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(转载时请注明本文出处及文章链接)
