梦想之家

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}即可,这样我们就完成了一个自定义程序分页的使用。

01.png

您此刻的心情: