首页 > 编程 > PHP > 正文

Zend Framework分页类用法详解

2020-03-22 17:07:21
字体:
来源:转载
供稿:网友
本文实例讲述了Zend Framework分页类用法。分享给大家供大家参考,具体如下:1、分页类Pagination.php,最好是把这个类放在Zend目录下html' target='_blank'>class XY_Pagination private $_navigationItemCount = 10; //导航栏显示导航总页数 private $_pageSize = null; //每页项目数 private $_align = "right"; //导航栏显示位置 private $_itemCount = null; //总项目数 private $_pageCount = null; //总页数 private $_currentPage = null; //当前页 private $_front = null; //前端控制器 private $_PageParaName = "page"; //页面参数名称 private $_firstPageString = "| "; //导航栏中第一页显示的字符 private $_nextPageString = " "; //导航栏中前一页显示的字符 private $_previousPageString = " "; //导航栏中后一页显示的字符 private $_lastPageString = " |"; //导航栏中最后一页显示的字符 private $_splitString = " | "; //页数字间的间隔符 / public function __construct($itemCount, $pageSize) if(!is_numeric($itemCount) || (!is_numeric($pageSize))) throw new Exception("Pagination Error:not Number"); $this- _itemCount = $itemCount; $this- _pageSize = $pageSize; $this- _front = Zend_Controller_Front::getInstance(); $this- _pageCount = ceil($itemCount/$pageSize); //总页数 $page = $this- _front- getRequest()- getParam($this- _PageParaName); if(empty($page) || (!is_numeric($page))) //为空或不是数字,设置当前页为1 $this- _currentPage = 1; else if($page 1) $page = 1; if($page $this- _pageCount) $page = $this- _pageCount; $this- _currentPage = $page; * 返回当前页 * @param int 当前页 public function getCurrentPage() return $this- _currentPage; * 返回导航栏目 * @return string 导航html */ public function getNavigation() $navigation = ''; $pageCote = ceil($this- _currentPage / ($this- _navigationItemCount - 1)) - 1; //当前页处于第几栏分页 $pageCoteCount = ceil($this- _pageCount / ($this- _navigationItemCount - 1)); //总分页栏 $pageStart = $pageCote * ($this- _navigationItemCount -1) + 1; //分页栏中起始页 $pageEnd = $pageStart + $this- _navigationItemCount - 1; //分页栏中终止页 if($this- _pageCount $pageEnd) $pageEnd = $this- _pageCount; $navigation .= "总共:{$this- _itemCount}条 {$this- _pageCount}页/n"; if($pageCote 0) //首页导航 $navigation .= '$this- _firstPageString "; if($this- _currentPage != 1) //上一页导航 $navigation .= '$this- _previousPageString "; while ($pageStart = $pageEnd) //构造数字导航区 if($pageStart == $this- _currentPage) $navigation .= "$pageStart".$this- _splitString; else $navigation .= '$pageStart".$this- _splitString; $pageStart++; if($this- _currentPage != $this- _pageCount) //下一页导航 $navigation .= ' $this- _nextPageString "; if($pageCote $pageCoteCount-1) //未页导航 $navigation .= '$this- _lastPageString "; //添加直接导航框 //$navigation .= ''; //2008年8月27号补充输入非正确页码后出现的错误——begin $navigation .= ' '; //2008年8月27号补充输入非正确页码后出现的错误——end $navigation .= " "; return $navigation; * 取得导航栏显示导航总页数 * @return int 导航栏显示导航总页数 public function getNavigationItemCount() return $this- _navigationItemCount; * 设置导航栏显示导航总页数 * @param int $navigationCount:导航栏显示导航总页数 public function setNavigationItemCoun($navigationCount) if(is_numeric($navigationCount)) $this- _navigationItemCount = $navigationCount; * 设置首页显示字符 * @param string $firstPageString 首页显示字符 public function setFirstPageString($firstPageString) $this- _firstPageString = $firstPageString; * 设置上一页导航显示字符 * @param string $previousPageString:上一页显示字符 public function setPreviousPageString($previousPageString) $this- _previousPageString = $previousPageString; * 设置下一页导航显示字符 * @param string $nextPageString:下一页显示字符 public function setNextPageString($nextPageString) $this- _nextPageString = $nextPageString; * 设置未页导航显示字符 * @param string $nextPageString:未页显示字符 public function setLastPageString($lastPageString) $this- _lastPageString = $lastPageString; * 设置导航字符显示位置 * @param string $align:导航位置 public function setAlign($align) $align = strtolower($align); if($align == "center") $this- _align = "center"; }elseif($align == "right") $this- _align = "right"; }else $this- _align = "left"; * 设置页面参数名称 * @param string $pageParamName:页面参数名称 public function setPageParamName($pageParamName) $this- _PageParaName = $pageParamName; * 获取页面参数名称 * @return string 页面参数名称 public function getPageParamName() return $this- _PageParaName; * 生成导航链接地址 * @param int $targetPage:导航页 * @return string 链接目标地址 private function createHref($targetPage = null) $params = $this- _front- getRequest()- getParams(); $module = $params["module"]; $controller = $params["controller"]; $action = $params["action"]; $targetUrl = $this- _front- getBaseUrl()."/$module/$controller/$action"; foreach ($params as $key = $value) if($key != "controller" && $key != "module" && $key != "action" && $key != $this- _PageParaName) $targetUrl .= "/$key/$value"; if(isset($targetPage)) //指定目标页 $targetUrl .= "/$this- _PageParaName/$targetPage"; else $targetUrl .= "/$this- _PageParaName/"; return $targetUrl;
$Users = new Users();//$rows = $Users- getAdapter()- fetchOne("select count(*) from users where `role`!='admin'"); //recorde count$rows = $Users- fetchAll("`role`!='admin'")- count(); //查询记录总数$rowsPerPage = 5; //perPage recordes$curPage = 1;if($this- _request- getParam('page')) $curPage = $this- _request- getParam('page');//search data and display$this- view- users = $Users- fetchAll("`role`!='admin'",'id desc',$rowsPerPage,($curPage-1)*$rowsPerPage)- toArray();$Pager = new XY_Pagination($rows,$rowsPerPage);$this- view- pagebar = $Pager- getNavigation();3、在view中调用分页更简单了。pagebar 或者在smarty模板情况下 {$pagebar} 更多关于zend相关内容感兴趣的读者可查看本站专题:《Zend FrameWork框架入门教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《ThinkPHP入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表