php仿ZOL分页类代码


<?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='https://www.jb51.net/?ctl={$ctlname}&act={$actname}&p=1$str'>首页</a> ";
$out .= "<a href='https://www.jb51.net/?ctl={$ctlname}&act={$actname}&p={$this->prev}$str'>上一页</a> ";
$out .= "<a href='https://www.jb51.net/?ctl={$ctlname}&act={$actname}&p={$this->next}$str'>下一页</a> ";
$out .= "<a href='https://www.jb51.net/?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='https://www.jb51.net/{$path}$list/{$film}_1.html'>首页</a> ";
$out .= "<a href='https://www.jb51.net/{$path}$list/{$film}_{$this->prev}.html'>上一页</a> ";
$out .= "<a href='https://www.jb51.net/{$path}$list/{$film}_{$this->next}.html'>下一页</a> ";
$out .= "<a href='https://www.jb51.net/{$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="'https://www.jb51.net/article/.$mpurl.'page=1">1 ...</a>' : '').
($this->pageno > 1 ? '<a href="'https://www.jb51.net/article/.$mpurl.'page='.($this->pageno - 1).'"><<</a>' : '');
for($i = $from; $i <= $to; $i++) {
$multipage .= $i == $this->pageno ? '<a><strong>'.$i.'</strong></a>' :'<a href="'https://www.jb51.net/article/.$mpurl.'page='.$i.'">'.$i.'</a>';
}

$multipage .= ($this->pageno < $pages ? '<a href="'https://www.jb51.net/article/.$mpurl.'page='.($this->pageno + 1).'">>></a>' : '').
($to < $pages ? '<a href="'https://www.jb51.net/article/.$mpurl.'page='.$pages.'">... '.$realpages.'</a>' : '').
($pages > $page ? '<kbd><input type="text" size="3" onkeydown="if(event.keyCode==13) {window.location=\''https://www.jb51.net/article/.$mpurl.'page=\'+this.value; return false;}" /></kbd>' : '');

$multipage = $multipage ? '<div><a> '.$this->infocount.' </a><a> '.$this->pageno.'https://www.jb51.net/'.$pages.' </a>'.$multipage.'</div>' : '';
}
return $multipage;
}

/**
* 样式3(zol)
*/
public function zol($mpurl)
{
$mpurl .= strpos($mpurl, '?') !== false ? '&' : '?';
$code = '<div>';
$code .= '<div>第<font>'.$this->pageno.'</font><font>/'.$this->pagecount.'</font>页 每页<font>'.$this->items.'</font> 共<font>'.$this->infocount.'</font>款产品</div>';
$code .= '<table cellpadding="0" cellspacing="3">';
$code .= '<tr>';
if ($this->pageno == $this->prev)
{
$code .= "<td><a disabled='disabled'><<上一页</a></td>";
}
else
{
$code .= "<td><a href='https://www.jb51.net/{$mpurl}page={$this->prev}'><<上一页</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 bgcolor="#2E6AB1">'.$j.'</td>';
}
else
{
$code .= "<td 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><a disabled='disabled' >下一页>></a></td>";
}
else
{
$code .= "<td><a href='https://www.jb51.net/{$mpurl}page={$this->next}'>下一页>></a></td>";
}
$code .= '</tr>';
$code .= '</table>';
$code .= '</div>';
return $code;
}
}

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/9b6ff20970308453e49d8aad4fc98f5f.html