首页 > 后端开发 > php教程 > phpcms在自定义模块中的自定义标签分页

phpcms在自定义模块中的自定义标签分页

WBOY
发布: 2016-08-08 09:27:02
原创
992 人浏览过

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

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

注意在return上面一行的 echo $pages_send;  这里其实是借鉴了后台使用分页的方法让页面可以正常的显示出页码,并且可以做跳转
但是如果解开这个echo $pages_send;那么就没办法在页面中控制其显示的位置,为了让他能按照我的意愿来显示,在这个方法的下面又添加了一个方法,

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

看到两个方法的名称的不同了,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变量

以上就介绍了phpcms在自定义模块中的自定义标签分页,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板