1.
$paginator
=
new
Zend_Paginator(
new
Zend_Paginator_Adapter_Array(
$array
));
设置当前页码:
1.
$paginator
->setCurrentPageNumber(
$page
);
从URL获取当前页码: (ZF Dream)
1.
$paginator
->setCurrentPageNumber(
$this
->_getParam(
'page'
));
把分页内容发到视图:
1.
$this
->view->paginator =
$paginator
;
当然视图那里必须有$this->paginator接收,象这样:
01.
<html>
02.
<body>
03.
<h1>Example</h1>
04.
<?php
if
(
count
(
$this
->paginator)): ?>
05.
<ul>
06.
<?php
foreach
(
$this
->paginator
as
$item
): ?>
07.
<li><?php
echo
$item
; ?></li>
08.
<?php
endforeach
; ?>
09.
</ul>
10.
<?php
endif
; ?>
11.
12.
<?php
echo
$this
->paginationControl(
$this
->paginator,
13.
'Sliding'
,
//页码样式
14.
'my_pagination_control.phtml'
);
//页码模板?>
15.
</body>
16.
</html>
下面是几种页码样式: (ZF Dream)
All:显示所有页;
Elastic:Google式,页码范围会根据用户当前页而扩展或缩小;
Jumping:页码最后页之后会显示第一页;
Sliding:Yahoo式,当前页会放在页码中间,这是默认样式。
当然,paginationControl也可以不在视图中设置,而是写在控制器中:
01.
Zend_Paginator::setDefaultScrollingStyle(
'Sliding'
);
02.
03.
Zend_View_Helper_PaginationControl::setDefaultViewPartial(
04.
05.
'my_pagination_control.phtml'
06.
07.
);
08.
09.
10.
$paginator
->setView(
$view
);
官方手册提供了几种页码模板的视图写法,偷懒的人可以直接复制过来用:
(1)Search pagination,效果如下:
(2)Item pagination,效果如下:
(3)Dropdown pagination,效果就是个下拉框选页码
下面是页码模板视图中可以使用的一些占位符,你要写自己的页码模板时会有用,写法是$this->first:
值 | 类型 | 解释 |
first | integer | 第一页的页码 |
firstItemNumber | integer | 当前页上第一条记录是整个记录集的第几条 |
firstPageInRange | integer | 第一个显示出的页码(各页码样式不同) |
current | integer | 当前页码 |
currentItemCount | integer | 本页上的记录有几条 |
itemCountPerPage | integer | 每页上最多可以显示几条记录 |
last | integer | 最后一页的页码 |
lastItemNumber | integer | 当前页上最后一条记录是整个记录集的第几条 |
lastPageInRange | integer | 最后一个显示出的页码(各页码样式不同) |
next | integer | 下一页的页码 |
pageCount | integer | 一共多少页 |
pagesInRange | array | 显示在网页上的页码数组(各页码样式不同) |
previous | integer | 上一页的页码 |
totalItemCount | integer | 一共有几条记录 |
下面是Paginator类的一些方法: (ZF Dream)
1、设置当前页码(默认是1)
1.
$paginator
->setCurrentPageNumber(
$page
);
2、设置每页显示的最大数量(默认是10)
1.
$paginator
->setItemCountPerPage(
$num
);
3、设置页码里显示多少页(默认为10页)
1.
$paginator
->setPageRange(
$page
);
注意:大多数时候这个数字会有用,但是不同的页码样式会有不同的效果,比如Elastic会把这个数字作为起始值
4、设置视图,方便调用
1.
$paginator
->setView(
$view
);
这里$view就是当前视图的对象。