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

最新文章

  1. c++成员函数的存储方式---11
  2. Android底部TabHost API
  3. C++ STL之stack
  4. 浅析mysql 共享表空间与独享表空间以及他们之间的转化
  5. English - 英语中的时间表达法,这里全啦!
  6. 用jmeter进行多用户并发压力测试 [转]
  7. C++习题 对象数组求最大值
  8. hdu 5076 最小割灵活运用
  9. monkeyscript - 定制化monkey流程
  10. 【NOIP】OpenJudge - 15:银行利息
  11. 初识JAVA——流程控制之if语句
  12. Azure存储账户的日志分析方法
  13. #WEB安全基础 : HTML/CSS | 0x8.1CSS继承
  14. 使用Visual Studio Team Services敏捷规划和项目组合管理(四)——冲刺计划和任务板
  15. 【存储】RAID磁盘阵列选择
  16. iOS最新Mac OS X 10.11之后 安装cocoapods及使用详解
  17. 【资料下载区】【iCore、 iCore2相关资料】更新日期2017/1/11
  18. 蓝牙Remove Bond的流程分析
  19. MongoDB中的聚合操作
  20. compile vi from source code

热门文章

  1. 异常 java.lang.NumberFormatException: For input string:
  2. GYP构建系统总结
  3. oracle使用还原段的目的和还原数据的管理方法及还原段的类型
  4. table中td,th不能设置margin
  5. nginx的请求接收流程(一)
  6. [置顶] access函数-linux
  7. poj1458 dp入门
  8. 【ZOJ】3785 What day is that day? ——浅谈KMP在ACM竞赛中的暴力打表找规律中的应用
  9. 如何使用TestFlight进行App构建版本测试(转)
  10. Android开发之自定义圆角矩形图片ImageView的实现 - Jamy Cai