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

如果你是一个经验丰富的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变量

时间: 2024-08-26 06:26:27

phpcms在自定义模块中的自定义标签分页的相关文章

自定义JSP中的Taglib标签之四自定义标签中的Function函数

转自http://www.cnblogs.com/edwardlauxh/archive/2010/05/19/1918589.html 之前例子已经写好了,由于时间关系一直没有发布,这次带来的是关于taglib中的<tag>的基本功能已经介绍完毕了,在taglib中我们发现有一个标签叫做<function>,这次简单介绍<function>标签的基本用法,<function>标签可以做什么呢?它可以让我们在jsp用直接调用某个方法,根据自定义的方法返回指定

phpcms V9 广告模块中广告模板修改

广告模块模板位置 \phpcms\modules\poster\install\templates\*.html 我的需求: 去掉边框控制代码,是否显示边框我将在页面模板中设置,因些需要删除模板中的以下代码段: style='border:0px;' 修改后要清除缓存才会生效:

ECharts自定义toolbox中增加自定义按钮

今天想能不能在ECharts中的ToolBox增加自己的按钮,然后读了一下ToolBox代码,自己试了试,验证是可以的. 1.效果图 图片中红色框起来的按钮 2.代码 selfButtons:{//自定义按钮 danielinbiti,这里增加,selfbuttons可以随便取名字 show:true,//是否显示 title:'自定义', //鼠标移动上去显示的文字 icon:'test.png', //图标 option:{}, onclick:function(option1) {//点击

Django自定义模型(model)中的字段标签

方法一: 在编辑页面中,每个字段的标签都是从模块的字段名称生成的. 规则很简单: 用空格替换下划线:首字母大写.例如:Book模块中publication_date的标签是Publication date. 然而,字段名称并不总是贴切的.有些情况下,你可能想自定义一个标签. 你只需在模块中指定verbose_name. 举个例子,说明如何将Author.email的标签改为e-mail,中间有个横线. class Author(models.Model): first_name = models

nginx自定义模块编写-根据post参数路由到不同服务器

nginx可以轻松实现根据不同的url 或者 get参数来转发到不同的服务器,然而当我们需要根据http包体来进行请求路由时,nginx默认的配置规则就捉襟见肘了,但是没关系,nginx提供了强大的自定义模块功能,我们只要进行需要的扩展就行了. 我们来理一下思路,我们的需求是: nginx根据http包体的参数,来选择合适的路由 在这之前,我们先来考虑另一个问题: 在nginx默认配置的支持下,能否实现服务器间的跳转呢?即类似于状态机,从一个服务器执行OK后,跳转到另一台服务器,按照规则依次传递

python基础知识8——模块1——自定义模块和第三方开源模块

模块的认识 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组成的代码集合就称为模块. 如:os 是系统相关的模块:file是文件操作相关的模块 模块分为三种: 自定义模块 内置模块 第三方开源模块 自定义模块 1.定义模块 2.导入模块 Python之所以应用越来越广泛,在一定程度上也

Nginx自定义模块编写:根据post参数路由到不同服务器

Nginx自定义模块编写:根据post参数路由到不同服务器 2014-05-05 15:27 blogread IT技术博客 字号:T | T Nginx可以轻松实现根据不同的url 或者 get参数来转发到不同的服务器,然而当我们需要根据http包体来进行请求路由时,Nginx默认的配置规则就捉襟见肘了,但是没关系,Nginx提供了强大的自定义模块功能,我们只要进行需要的扩展就行了. 我们来理一下思路,我们的需求是: Nginx根据http包体的参数,来选择合适的路由 在这之前,我们先来考虑另

python导入自定义模块

一.查看自定义模块路径是否包含在sys中 >>> import sys>>> sys.path 若不包含,可用sys.path.append('/xxx/xx/xx')添加. 二.导入 import  XXX 导入过程,自定义模块就运行了.自定义模块中包含函数,可用XXX.XX(xx)调用. 最简单的办法是用 .pth 文件来实现.Python 在遍历已知的库文件目录过程中,如果见到一个 .pth 文件,就会将文件中所记录的路径加入到 sys.path 设置中,这样 .

python学习之模块-自定义模块(一)

第五章 5.1 自定义模块 模块概念: ? 把一些常用的函数放在一个py文件中,这个文件就称之为模块. 模块的意义: ? 1.方便管理.让程序的解构更加清晰,实现功能的重复使用: ? 2.提升开发效率.俗话说的拿来主义,避免重复造轮子,使用别人写好的实现了某些功能的模块,可以大大提高开发效率. 模块的分类: ? 第一类:内置模块,也叫做标准库.python自带,200多个,每个模块又包含很多的功能,比如os,sys,time: ? 第二类:第三方模块,第三方库.需通过pip install指令安