zoukankan
html css js c++ java
分页类(Zend Framework)
Code
class
Pagination
{
private
$_navigationItemCount
=
10
;
//
导航栏显示导航总页数
private
$_pageSize
=
null
;
//
每页项目数
private
$_align
=
"
left
"
;
//
导航栏显示位置
private
$_itemCount
=
null
;
//
总项目数
private
$_pageCount
=
null
;
//
总页数
private
$_currentPage
=
null
;
//
当前页
private
$_front
=
null
;
//
前端控制器
private
$_PageParaName
=
"
page
"
;
//
页面参数名称
private
$_firstPageString
=
"
|<<
"
;
//
导航栏中第一页显示的字符
private
$_nextPageString
=
"
>>
"
;
//
导航栏中前一页显示的字符
private
$_previousPageString
=
"
<<
"
;
//
导航栏中后一页显示的字符
private
$_lastPageString
=
"
>>|
"
;
//
导航栏中最后一页显示的字符
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
=
'
<div class="PageNavigation" style="text-align:
'
.
$this
->
_align
.
'
">
'
;
$navigation
.=
"
<em>
$this
->_itemCount</em>\n
"
;
$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;
}
if
(
$pageCote
>
0
)
//
首页导航
{
$navigation
.=
'
<a href="
'
.
$this
->
createHref(
1
)
.
"
\
"
>
$this
->
_firstPageString
</
a
>
"
;
}
if(
$this
->_currentPage != 1) //上一页导航
{
$navigation
.= '<a href=
"'
.$this->createHref($this->_currentPage-1);
$navigation .= "\">$this->_previousPageString</a>";
}
while ($pageStart <= $pageEnd) //构造数字导航区
{
if($pageStart == $this->_currentPage)
{
$navigation .= "<strong>$pageStart</strong>";
}
else
{
$navigation .=
'
<
a href
=
"
'.
$this
->createHref(
$pageStart
).
"
\
"
>
$pageStart
</a>
"
;
}
$pageStart
++
;
}
if
(
$this
->
_currentPage
!=
$this
->
_pageCount)
//
下一页导航
{
$navigation
.=
'
<a href="
'
.
$this
->
createHref(
$this
->
_currentPage
+
1
)
.
"
\
"
>
$this
->
_nextPageString
</
a
>
"
;
}
if(
$pageCote
<
$pageCoteCount
-1) //未页导航
{
$navigation
.= '<a href=
"'
.$this->createHref($this->_pageCount)."\">$this->_lastPageString</a>";
}
//添加直接导航框
$navigation .=
'
<
input type
=
"
text
"
size
=
"
3
"
onkeydown
=
"
if(event.keyCode==13){window.location=\' ';
$navigation
.=
$this
->createHref().'\'+this.value;return false;}
"
/>
'
;
$navigation .= "</div>";
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();
$controller = $params["controller"];
$action = $params["action"];
$targetUrl = "/exercise/$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;
}
}
查看全文
相关阅读:
MVC是什么意思?
Paypal 在线支付接口应用从零开始,第2节,[支付API原理及流程]
人人网
百度框计算研究
最近总被黑。然后。。发现了很多知识值得学习。。分享出来。
首次购房契税下调至1% 首付降为20%
由“百鸡问题”浅谈程序性能
10月1日起机动车所有人可自行编排车牌号
08中国互联网大会23在南京开幕
MySQL联合创始人向Sun递交辞呈
原文地址:https://www.cnblogs.com/ywkpl/p/1080418.html
最新文章
进程及线程的区别及各自优缺点
sscanf应用举例
【转】Ubuntu 10.10 图形安装教程、网络设置、软件源、基本配置(超详细)
Ubuntu 更新源地址列表更改方法及下载
(转)使用异步 I/O 大大提高应用程序的性能
SQL优化34条
mysql prepare语句使用
转 病毒编程技术
Nuget
转:VS与Win7共舞:性能计数器进行性能分析
热门文章
查询一个库里的所有表名称
转:Sql server中时间函数用法详解
性能测试工具xperf之系统启动(2)
蛙蛙推荐:编写一个服务监控的软件
转:在 .NET 中实现异步回调访问数据库
怎么提高点数据加载速度呢?
Eclipse换DarkestDark主题之后,无法使用快捷键
普通java项目转换为带有Tomcat的动态Web项目
Java中包的基本管理与编译
Paypal 在线支付接口应用从零开始,第1节,[建立沙盒测试环境]
Copyright © 2011-2022 走看看