超强PHP分页类2.0发布,支持自定义风格,默认4种显示模式 _2

  /**
   * 获取显示跳转按钮的代码
   *
   * @return string
   */
function select
()
{
   
$return=''
;
   return
$return
;
}

/**
   * 获取mysql 语句中limit需要的值
   *
   * @return string
   */
function offset
()
{
   return
$this->offset
;
}

/**
   * 控制分页显示风格(你可以增加相应的风格)
   *
   * @param int $mode
   * @return string
   */
function show($mode=1
)
{
   switch (
$mode
)
   {
    case
'1'
:
    
$this->next_page='下一页'
;
    
$this->pre_page='上一页'
;
     return
$this->pre_page().$this->nowbar().$this->next_page().'第'.$this->select().'页'
;
     break;
    case
'2'
:
    
$this->next_page='下一页'
;
    
$this->pre_page='上一页'
;
    
$this->first_page='首页'
;
    
$this->last_page='尾页'
;
     return
$this->first_page().$this->pre_page().'[第'.$this->nowindex.'页]'.$this->next_page().$this->last_page().'第'.$this->select().'页'
;
     break;
    case
'3'
:
    
$this->next_page='下一页'
;
    
$this->pre_page='上一页'
;
    
$this->first_page='首页'
;
    
$this->last_page='尾页'
;
     return
$this->first_page().$this->pre_page().$this->next_page().$this->last_page
();
     break;
    case
'4'
:
    
$this->next_page='下一页'
;
    
$this->pre_page='上一页'
;
     return
$this->pre_page().$this->nowbar().$this->next_page
();
     break;
    case
'5'
:
     return
$this->pre_bar().$this->pre_page().$this->nowbar().$this->next_page().$this->next_bar
();
     break;
   }
  
}
/*----------------private function (私有方法)-----------------------------------------------------------*/
/**
   * 设置url头地址
   * @param: String $url
   * @return boolean
   */
function _set_url($url=""
)
{
   if(!empty(
$url
)){
      
//手动设置
   
$this->url=$url.((stristr($url,'?'))?'&':'?').$this->page_name."="
;
   }else{
      
//自动获取
   
if(empty($_SERVER['QUERY_STRING'
])){
       
//不存在QUERY_STRING时
    
$this->url=$_SERVER['REQUEST_URI']."?".$this->page_name."="
;
    }else{
       
//
    
if(stristr($_SERVER['QUERY_STRING'],$this->page_name.'='
)){
        
//地址存在页面参数
     
$this->url=str_replace($this->page_name.'='.$this->nowindex,'',$_SERVER['REQUEST_URI'
]);
     
$last=$this->url[strlen($this->url)-1
];
      if(
$last=='?'||$last=='&'
){
         
$this->url.=$this->page_name."="
;
      }else{
         
$this->url.='&'.$this->page_name."="
;
      }
     }else{
        
//
     
$this->url=$_SERVER['REQUEST_URI'].'&'.$this->page_name.'='
;
     }
//end if    
   
}
//end if
  
}
//end if
}

/**
   * 设置当前页面
   *
   */
function _set_nowindex($nowindex
)
{
   if(empty(
$nowindex
)){
   
//系统获取
   
   
if(isset($_GET[$this->page_name
])){
    
$this->nowindex=intval($_GET[$this->page_name
]);
    }
   }else{
      
//手动设置
   
$this->nowindex=intval($nowindex
);
   }
}
  
/**
   * 为指定的页面返回地址值
   *
   * @param int $pageno
   * @return string $url
   */
function _get_url($pageno=1
)
{
   return
$this->url.$pageno
;
}

/**
   * 获取分页显示文字,比如说默认情况下_get_text('1')将返回[1]
   *
   * @param String $str
   * @return string $url
   */
function _get_text($str
)
{
   return
$this->format_left.$str.$this->format_right
;
}

/**
    * 获取链接地址
*/
function _get_link($url,$text,$style=''
){
  
$style=(empty($style))?'':'class="'.$style.'"'
;
   if(
$this->is_ajax
){
      
//如果是使用AJAX模式
   
return '.$style.' href="javascript:'.$this->ajax_action_name.'(\''.$url.'\')">'.$text.''
;
   }else{
    return
'.$style.' href="'.$url.'">'.$text.''
;
   }
}
/**
    * 出错处理方式
*/
function error($function,$errormsg
)
{
      die(
'Error in file '.__FILE__.' ,Function '
.$function.'() :'.$errormsg );
}
}
?>


提供一个简单的演示demo
PHP代码如下:

require_once('../libs/classes/page.class.php');
$page=new page(array('total'=>1000,'perpage'=>20
));
echo
'mode:1
'
.$page->show
();
echo
'
mode:2
'
.$page->show(2
);
echo
'
mode:3
'
.$page->show(3
);
echo
'
mode:4
'
.$page->show(4
);
echo
'
开始AJAX模式:'
;
$ajaxpage=new page(array('total'=>1000,'perpage'=>20,'ajax'=>'ajax_page','page_name'=>'test'
));
echo
'mode:1
'
.$ajaxpage->show
();
?>


效果图见附件!


提供自定义风格的演示demo一个:
PHP代码如下:

require_once('../libs/classes/page.class.php');
class
mypage extends
page
{
     function
mypage($array
)
{
     
parent::page($array
);
  
$this->first_page=1
;
  
$this->last_page=$this->totalpage
;
  
$this->set('format_left',''
);
  
$this->set('format_right',''
);
}

function
show
()
{
     
$pagestr=''
;
  
$pagestr.='
';
   return
$pagestr
;
}
}
$page=new mypage(array('total'=>1000,'perpage'=>20
));
echo
$page->show
();
?>


其中用到的CSS样式

你可能感兴趣的:(PHP)