<?php
///翻页类
class pages {
/**
* 页面输出结果
*
* @var string
*/
var $output;
/**
* 使用该类的文件,默认为 PHP_SELF
*
* @var string
*/
var $file;
/**
* 页数传递变量,默认为 'p'
*
* @var string
*/
var $pvar = "page";
/**
* 页面大小
*
* @var integer
*/
var $psize;
/**
* 当前页面
*
* @var ingeger
*/
var $curr;
/**
* 要传递的变量数组
*
* @var array
*/
var $varstr;
/**
* 总页数
*
* @var integer
*/
var $tpage;
/**
* 分页设置
*
* @access public
* @param int $pagesize 页面大小
* @param int $total 总记录数
* @param int $current 当前页数,默认会自动读取
* @return void
*/
function set($pagesize=20,$total,$current=false) {
global $HTTP_SERVER_VARS,$HTTP_GET_VARS,$htmlstr,$MenuInfo;
$this->total = $total;
$this->tpage = ceil($total/$pagesize);
if (!$current) {$current = $HTTP_GET_VARS[$this->pvar];}
if ($current>$this->tpage) {$current = $this->tpage;}
if ($current<1) {$current = 1;}
$this->curr = $current;
$this->psize = $pagesize;
if (!$this->file) {$this->file = $HTTP_SERVER_VARS['PHP_SELF'];}
if ($this->tpage > 0) {
$this->output.="<table cellspacing=1><tr>";
if ($current>10) {
$this->output.='<td ><a class=pages href='.$this->file.'?'.$this->pvar.'='.($current-10).($this->varstr).' title=""><img src='.ROOTPATH.'templates/'.$MenuInfo["skin"].'/images/2arrow_l_on.gif border=0></a></td>';
}else{
$this->output.='<td ><img src='.ROOTPATH.'templates/'.$MenuInfo["skin"].'/images/2arrow_l_off.gif border=0></td>';
}
if ($current>1) {
$this->output.='<td ><a class=pages href='.$this->file.'?'.$this->pvar.'='.($current-1).($this->varstr).' title=""><img src='.ROOTPATH.'templates/'.$MenuInfo["skin"].'/images/1arrow_l_on.gif border=0></a></td><td width=3></td>';
}else{
$this->output.='<td ><img src='.ROOTPATH.'templates/'.$MenuInfo["skin"].'/images/1arrow_l_off.gif border=0></td><td width=3></td>';
}
if(floor($current/10)==$current/10){
$start = floor($current/10)*10-9;
}else{
$start = floor($current/10)*10+1;
}
$end = $start+9;
if ($start<1) {$start=1;}
if ($end>$this->tpage) {$end=$this->tpage;}
for ($i=$start; $i<=$end; $i++) {
if ($current==$i) {
$this->output.='<td class=pagesnow><b>['.$i.']</b></td>';
} else {
$this->output.='<td class=pages ><b>[<a class=pages href='.$this->file.'?'.$this->pvar.'='.$i.$this->varstr.'><b>'.$i.'</b></a>]<b></td>';
}
}
if ($current<$this->tpage) {
$this->output.='<td width=3></td><td style="padding-left:3px;padding-right:3px"><a href='.$this->file.'?'.$this->pvar.'='.($current+1).($this->varstr).' ><img src='.ROOTPATH.'templates/'.$MenuInfo["skin"].'/images/1arrow_r_on.gif border=0></a></td>';
}else{
$this->output.='<td width=3></td><td><img src='.ROOTPATH.'templates/'.$MenuInfo["skin"].'/images/1arrow_r_off.gif border=0></td>';
}
if ($this->tpage>10 && ($this->tpage-$current)>=10 ) {
$this->output.='<td><a href='.$this->file.'?'.$this->pvar.'='.($current+10).($this->varstr).' ><img src='.ROOTPATH.'templates/'.$MenuInfo["skin"].'/images/2arrow_r_on.gif border=0></a></td>';
}else{
$this->output.='<td><img src='.ROOTPATH.'templates/'.$MenuInfo["skin"].'/images/2arrow_r_off.gif border=0></td>';
}
$this->output.="</tr></table>";
}
}
/**
* 要传递的变量设置
*
* @access public
* @param array $data 要传递的变量,用数组来表示,参见上面的例子
* @return void
*/
function setvar($data) {
foreach ($data as $k=>$v) {
$this->varstr.='&'.$k.'='.urlencode($v);
}
}
/**
* 分页结果输出
*
* @access public
* @param bool $return 为真时返回一个字符串,否则直接输出,默认直接输出
* @return string
*/
function output($return = false) {
if ($return) {
return $this->output;
} else {
echo $this->output;
}
}
/**
* 生成Limit语句
*
* @access public
* @return string
*/
function limit() {
return (($this->curr-1)*$this->psize).','.$this->psize;
}
function ShowNow() {
global $strPagesTotalStart,$strPagesTotalEnd,$strPagesNowPagesFrom,$strPagesNowPagesTo,$strPagesNowListFrom,$strPagesNowListTo,$strNoRecode;
global $sLan,$strPagesResaults,$strPagesOf;
if($sLan=="zh_cn" || $sLan=="zh_tw"){
if($this->total>0){
if($this->total<=($this->curr-1)*$this->psize+$this->psize){
return $strPagesTotalStart.$this->total.$strPagesTotalEnd.' '.$strPagesNowPagesFrom.$this->curr.$strPagesNowPagesTo.' '.$strPagesNowListFrom.(($this->curr-1)*$this->psize+1).'-'.$this->total.$strPagesNowListTo;
}else{
return $strPagesTotalStart.$this->total.$strPagesTotalEnd.' '.$strPagesNowPagesFrom.$this->curr.$strPagesNowPagesTo.' '.$strPagesNowListFrom.(($this->curr-1)*$this->psize+1).'-'.(($this->curr-1)*$this->psize+$this->psize).$strPagesNowListTo;
}
}else{
return $strNoRecode;
}
}else{
if($this->total>0){
if($this->total<=($this->curr-1)*$this->psize+$this->psize){
return $strPagesResaults.' '.(($this->curr-1)*$this->psize+1).'-'.$this->total.$strPagesOf.' '.$this->total;
}else{
return $strPagesResaults.' '.(($this->curr-1)*$this->psize+1).'-'.(($this->curr-1)*$this->psize+$this->psize).$strPagesOf.' '.$this->total;
}
}else{
return $strNoRecode;
}
}
}
}
?>