php仿ZOL分页类代码
2018-09-07 15:16



复制代码 代码如下:
<?php 
/** 
* 功能:分页类 
* 作者:phpox 
* 时间:Sat Jul 14 18:15:02 CST 2007 
*/ 
defined(PHPOX) or die(header(HTTP/1.1 403 Not Forbidden)); 
class page{ 
public $infocount; 
public $pagecount; 
public $items; 
public $pageno; 
public $start; 
public $next; 
public $prev; 
public $maxpages; 
public function __construct($infocount,$items,$pageno){ 
$this->infocount = $infocount; 
$this->items = $items; 
$this->pageno = $pageno; 
$this->pagecount = $this->getpagecount(); 
$this->justpageno(); 
$this->start = $this->getstart(); 
$this->gotoprev(); 
$this->gotonext(); 
} 
private function justpageno(){ 
if (emptyempty($this->pageno) $this->pageno < 1){ 
$this->pageno = 1; 
} 
if ($this->pageno > $this->pagecount){ 
$this->pageno = $this->pagecount; 
} 
} 
private function gotonext(){ 
$next = $this->pageno + 1; 
if ($next > $this->pagecount){ 
$this->next = $this->pagecount; 
}else { 
$this->next = $next; 
} 
} 
private function gotoprev(){ 
$prev = $this->pageno -1; 
if ($prev < 1){ 
$this->prev = 1; 
}else { 
$this->prev = $prev; 
} 
} 
private function getpagecount(){ 
return ceil($this->infocount / $this->items); 
} 
private function getstart(){ 
if ($this->pageno <= 1){ 
return 0; 
}else { 
return ($this->pageno - 1) * $this->items; 
} 
} 
/** 
* 样式0(php) 
*/ 
public function showpage($ctlname,$actname,$args = null){ 
if ($args !== null){ 
if (is_array($args)){ 
$str = &.encode_url_args($args); 
} 
} 
$out = ; 
$out .= 每页显示{$this->items}条信息 ; 
$out .= 当前页<strong><font color=\#FF0000\>{$this->pageno}</font>/{$this->pagecount}</strong> ; 
$out .= 共有{$this->infocount}条信息 ; 
$out .= <a href=?ctl={$ctlname}&act={$actname}&p=1$str>首页</a> ; 
$out .= <a href=?ctl={$ctlname}&act={$actname}&p={$this->prev}$str>上一页</a> ; 
$out .= <a href=?ctl={$ctlname}&act={$actname}&p={$this->next}$str>下一页</a> ; 
$out .= <a href=?ctl={$ctlname}&act={$actname}&p={$this->pagecount}$str>尾页</a> ; 
$out .= 跳转到:; 
$out .= <select id=\page\ name=\page\ onchange=\javascript:window.location=?ctl={$ctlname}&act={$actname}$str&p=+this.options[this.selectedIndex].value;\>\n; 
$out .= <option value=\1\>请选择</option>\n; 
for ($i = 1;$i <= $this->pagecount;$i++){ 
$out .= <option value=\$i\>第{$i}页</option>\n; 
} 
$out .= </select>\n; 
return $out; 
} 
/** 
* 样式1(html) 
*/ 
function htmlshowpage($path,$list,$film){ 
$out = ; 
$out .= 每页显示{$this->items}条信息 ; 
$out .= 当前页<strong><font color=\#FF0000\>{$this->pageno}</font>/{$this->pagecount}</strong> ; 
$out .= 共有{$this->infocount}条信息 ; 
$out .= <a href={$path}$list/{$film}_1.html>首页</a> ; 
$out .= <a href={$path}$list/{$film}_{$this->prev}.html>上一页</a> ; 
$out .= <a href={$path}$list/{$film}_{$this->next}.html>下一页</a> ; 
$out .= <a href={$path}$list/{$film}_{$this->pagecount}.html>尾页</a> ; 
$out .= 跳转到:; 
$out .= <select id=\page\ name=\page\ onchange=\javascript:window.location={$path}html/$list/{$film}_+this.options[this.selectedIndex].value +.html\>\n; 
$out .= <option value=\1\>请选择</option>\n; 
for ($i = 1;$i <= $this->pagecount;$i++){ 
$out .= <option value=\$i\>第{$i}页</option>\n; 
} 
$out .= </select>\n; 
return $out; 
} 
/** 
* 样式2(discuz) 
*/ 
function multi($mpurl,$page = 10) { 
$multipage = ; 
$mpurl .= strpos($mpurl, ?) !== false ? & : ?; 
$realpages = 1; 
if($this->infocount > $this->items) { 
$offset = 2; 
$realpages = @ceil($this->infocount / $this->items); 
$pages = $this->maxpages && $this->maxpages < $realpages ? $this->maxpages : $realpages; 
if($page > $pages) { 
$from = 1; 
$to = $pages; 
} else { 
$from = $this->pageno - $offset; 
$to = $from + $page - 1; 
if($from < 1) { 
$to = $this->pageno + 1 - $from; 
$from = 1; 
if($to - $from < $page) { 
$to = $page; 
} 
} elseif($to > $pages) { 
$from = $pages - $page + 1; 
$to = $pages; 
} 
} 
$multipage = ($this->pageno - $offset > 1 && $pages > $page ? <a href=.$mpurl.page=1 class=first>1 ...</a> : ). 
($this->pageno > 1 ? <a href=.$mpurl.page=.($this->pageno - 1). class=p_redirect><<</a> : ); 
for($i = $from; $i <= $to; $i++) { 
$multipage .= $i == $this->pageno ? <a class=p_curpage><strong>.$i.</strong></a> :<a href=.$mpurl.page=.$i. class=p_num>.$i.</a>; 
} 
$multipage .= ($this->pageno < $pages ? <a href=.$mpurl.page=.($this->pageno + 1). class=p_redirect>>></a> : ). 
($to < $pages ? <a href=.$mpurl.page=.$pages. class=last>... .$realpages.</a> : ). 
($pages > $page ? <kbd><input type=text name=custompage size=3 onkeydown=if(event.keyCode==13) {window.location=\.$mpurl.page=\+this.value; return false;} /></kbd> : ); 
$multipage = $multipage ? <div class=p_bar><a class=p_total> .$this->infocount. </a><a class=p_pages> .$this->pageno./.$pages. </a>.$multipage.</div> : ; 
} 
return $multipage; 
} 
/** 
* 样式3(zol) 
*/ 
public function zol($mpurl) 
{ 
$mpurl .= strpos($mpurl, ?) !== false ? & : ?; 
$code = <div class=f22 mt10 hei14>; 
$code .= <div style=line-height:30px>第<font class=a_hong14b>.$this->pageno.</font><font class=a_hei14>/.$this->pagecount.</font>页 每页<font class=a_hei14>.$this->items.</font> 共<font class=a_hong14b>.$this->infocount.</font>款产品</div>; 
$code .= <table border=0 align=right cellpadding=0 cellspacing=3>; 
$code .= <tr>; 
if ($this->pageno == $this->prev) 
{ 
$code .= <td width=64 align=center class=bd_hui huei14b><a disabled=disabled class=a_hui12b><<上一页</a></td>; 
} 
else 
{ 
$code .= <td width=64 align=center class=bd_lan a_lan14><a href={$mpurl}page={$this->prev} class=a_lan12b><<上一页</a></td>; 
} 
$i = 10 ; 
$k = 1; 
if ($this->pageno < 1) 
{ 
$this->pageno = 1; 
} 
if ($this->pageno > $this->pagecount) 
{ 
$this->pageno = $this->pagecount; 
} 
$s = $this->pageno-2; 
if ($s <= 0) 
{ 
$s = 1; 
} 
$e = $this->pageno+2; 
if ($e < 5 ) 
{ 
$e = 5; 
} 
if ($e > $this->pagecount) 
{ 
$e = $this->pagecount; 
} 
for ($j=$s;$j<=$e;$j++) 
{ 
if ($this->pageno == $j) 
{ 
$code .= <td width=22 bgcolor=#2E6AB1 class=bei14 align=center>.$j.</td>; 
} 
else 
{ 
$code .= <td width=22 align=center class=bd_lan a_lan14 onMouseOver=\this.style.border=1px solid #2062A4\ onMouseOut=\this.style.border=1px solid #AACCEE\ style=\CURSOR: hand\ onClick=\javascript:window.location=({$mpurl}page={$j})\>$j</td>; 
} 
} 
if ($this->pageno == $this->pagecount) 
{ 
$code .= <td align=center width=64 class=bd_hui huei14b><a disabled=disabled >下一页>></a></td>; 
} 
else 
{ 
$code .= <td align=center width=64 class=bd_lan lan14b><a href={$mpurl}page={$this->next} class=a_lan12b>下一页>></a></td>; 
} 
$code .= </tr>; 
$code .= </table>; 
$code .= </div>; 
return $code; 
} 
}