免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1608 | 回复: 0
打印 上一主题 下一主题

4.初级篇:Zend Framework 教您怎样让实现留言本分页(ZF分页功能的实现)? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-01 03:48 |只看该作者 |倒序浏览
好意思啊...各位PHPer...自己这几天虽然是有几篇日志出来..可是这一系列的教程还是没有出来...呵呵...现在我就接着出第四篇教程吧..其实呢..要是你们实现了第三篇教程的话,这第四篇教程实现起来是非常容易的事情..不信..就看下面的步骤实现起来吧....

     这里的分页功能运用了..Zend_Paginator这个组件来实现留言本分页...这里我也是参考PHPCHINA里一位PHPer写的这
方面的教程.地址如下:
http://www.phpchina.com/bbs/thread-85269-1-1.html
..
    我实现的坏境以及项目的目录安排是在第三篇教程的基础上写的..如果有朋友不明白目录什么的安排..请用ZF1.6.0以上.请自己在我的博客里找一下这篇教程...我在这里就不多说什么了..谢谢..
      第一步:在我们的控制器里面,也就是indexController.php里找到indexAction这个动作.我们可以看到..在这个动作里.我们第三篇
教程只是取数据..我们现在把这个动作(Action)改写成如下形式..如下代码(有注解): function indexAction()
{   
$message=new message();//实例化数据库类
//取到所有留言getAllMessage,getAllReMessage
//二个方法在Model(Message.php)里定义的

//取到所有回复数据
$this->view->arrReviews=$message->getAllReMessage();

$page =1;//高置默认页
$numPerPage = 3;//每页显示的条数
if(
isset
($_GET['page']) &&
is_numeric
($_GET['page'])){
     $page = $_GET['page'];//取到URL传过来的页数码
}
$array=$message->getAllMessage();//取到所有留言数据
$paginator = Zend_Paginator::factory($array);
$paginator->setCurrentPageNumber($page)
       ->setItemCountPerPage($numPerPage);
$this->view->paginator = $paginator;

echo
$this->view->render('header.phtml');//显示模版头文件  
echo
$this->view->render('message/index.phtml');//显示模版  
echo
$this->view->render('footer.phtml');//显示模版脚文件  
}
  
   第二步:搞定我们要分页的样式,这里是以一个HTML设定分页的样式..在Zend Framework手册上.提供了三种分页显示的方式...大家可以自己去看一下他们的用法..其实很简单的..我运用了它的第一种.我们就在views/scripts/目录下建立一个新的模板页pagestyle.phtml..这个模板页是和留言本header.phtml以及footer.phtml同一级的..因为我们可能以后还会用到这个分页方式..所以我就放在这里..:pagestyle.phtml代码如下所示:(注意:在这里请在你的入口文件index.php定义一下你的WEB_ROOT为全局变量,它就是你网站根目录!):
if ($this->pageCount): ?>
class="paginationControl">
link
-->
if (
isset
($this->previous)): ?>
  "index/index/?page=
previous; ?> "> |
else: ?>
  class="disabled"> |
endif; ?>

foreach ($this->pagesInRange as $page): ?>
   if ($page != $this->current): ?>
"index/index/?page=
">$page; ?> |
   else: ?>     = $page; ?> |
   endif; ?>  endforeach; ?>
  
Next
page
link
-->
if (
isset
($this->next)): ?>
  "index/index/?page=
next; ?>">下一页 >
else: ?>
  class="disabled">下一页 >
endif; ?>

endif; ?>
     第三步:找到留言本显示页的index.pthml模板页,把原来:
foreach($this->messages as $message): ?>这个换成
if (
count
($this->paginator)): ?>
  $i=1;  foreach ($this->paginator as $message): ?>
之后.我们再在最后面加一分页的显示:
= $this->paginationControl($this->paginator,
'Elastic', 'pagestyle.phtml'); ?>这样..我们就可以看到我们留言分页大功告成!!如下图片:

希望大家可以看的明白..哈哈...源码我晚点整理一下给放出来...谢谢...
  现在补上源码


..
源码下载


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/16928/showart_1673519.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP