博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
phpcms在自定义模块中的自定义标签分页
阅读量:5347 次
发布时间:2019-06-15

本文共 2236 字,大约阅读时间需要 7 分钟。

如果你是一个经验丰富的phpcms二次开发人员,本篇文章可以忽略不计,因为这里的写法自己都觉得很恶心

        今天在开发一个网站自建了一个模块叫做论坛模块,目录名称:luntan
        在论坛列表页面中需要显示所有的帖子并需要分页来显示,按照phpcms默认模版中标签定义方式
{pc:luntan action="get_send" num="2" page="$_GET[page]"} 按照这种写法在程序中data['limit'] = '0,2' 但是data[page] = NULL
这样接收不到页码,但是由于个人水平研究不明白这里应该要怎么才能将系统中的分页方法加载进来并让它好用,纠结好久想出了一个昏招,希望各位指正,并且如果有好的建议希望各位能够不惜时间,教我一下
要获得论坛发帖的列表需要一个获取的方法,如下

public function get_send($data){            $page = empty($_GET['page']) ? 1 : intval($_GET['page']);            $send_info = $this->luntan_send->listinfo($where = '', $order = '', $page, $pagesize = 20);            //$pages_send = $this->luntan_send->pages;            for($i = 0; $i < count($send_info); $i++){                $type_info = $this->luntan_type->get_one(array('type_id'=>$send_info[$i]['send_type_id']));                $send_info[$i]['send_type_name'] = $type_info['type_name'];                $reply_info = $this->luntan_reply->get_one(array('reply_send_id'=>$send_info[$i]['send_id']),'count(*) as reply_send_num');                $send_info[$i]['send_reply_num'] = $reply_info['reply_send_num'];            }            //echo $pages_send;            return $send_info;        }

注意在return上面一行的 echo $pages_send;  这里其实是借鉴了后台使用分页的方法让页面可以正常的显示出页码,并且可以做跳转

但是如果解开这个echo $pages_send;那么就没办法在页面中控制其显示的位置,为了让他能按照我的意愿来显示,在这个方法的下面又添加了一个方法,

public function get_send_page($data){            $page = empty($_GET['page']) ? 1 : intval($_GET['page']);            $send_info = $this->luntan_send->listinfo($where = '', $order = '', $page, $pagesize = 20);            $pages_send = $this->luntan_send->pages;            echo $pages_send;            return $send_info;        }

看到两个方法的名称的不同了,get_send  和  get_send_page   差了一个page,这样在里面的函数代码写法上后者由于只是需要显示页码,而前者只需要显示数据,则可以将get_send方法中用于获得页码的调用和输出屏蔽,即

  //$pages_send = $this->luntan_send->pages;
......
//echo $pages_send;
而后者 get_send_page 方法中,则不需要下一步的for循环来处理数据至于返回什么数据也不重要,主要的是利用echo出来的页面,所以这两个函数相同的部分为
$page = empty($_GET['page']) ? 1 : intval($_GET['page']);
$send_info = $this->luntan_send->listinfo($where = '', $order = '', $page, $pagesize = 20);
如果要修改默认页面中显示的个数,需要同事修改两个方法中
$send_info = $this->luntan_send->listinfo($where = '', $order = '', $page, $pagesize = 20);一句的$pagesize变量

 

转载于:https://www.cnblogs.com/azhw/p/4379056.html

你可能感兴趣的文章
Python环境搭建(安装、验证与卸载)
查看>>
一个.NET通用JSON解析/构建类的实现(c#)
查看>>
关于这次软件以及pda终端的培训
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>
新手村之循环!循环!循环!
查看>>
线程安全问题
查看>>
linux的子进程调用exec( )系列函数
查看>>
MySQLdb & pymsql
查看>>
zju 2744 回文字符 hdu 1544
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
前端笔记-bom
查看>>
上海淮海中路上苹果旗舰店门口欲砸一台IMAC电脑维权
查看>>
Google透露Android Market恶意程序扫描服务
查看>>
给mysql数据库字段值拼接前缀或后缀。 concat()函数
查看>>
迷宫问题
查看>>
【FZSZ2017暑假提高组Day9】猜数游戏(number)
查看>>
泛型子类_属性类型_重写方法类型
查看>>
对闭包的理解
查看>>
练习10-1 使用递归函数计算1到n之和(10 分
查看>>
Oracle MySQL yaSSL 不明细节缓冲区溢出漏洞2
查看>>