超強力なPHPページングクラス(PHPCHINAより転載)
リリース: 2016-07-11 20:00:38
1
2/**
3 * ファイル名: ext_page.class.php
4 * @package: phpbean
5 * @author :feifengxlq
6 * @copyright :Copyright 2006 feifengxlq
7 * @license:バージョン 2.0
8 * @create:2006-5-31
9 * @modify:2006-6-1
10 * @modify:feifengxlq 2006-11-4
11 * 説明: 超強力なページング クラス、4 つのページング モード、デフォルトのページング スタイルは Baidu や Google に似ています。
12 * 2.0 の追加機能: カスタム スタイルのサポート、カスタム スタイルのサポート、PHP4 と PHP5 の両方のサポート、
13 * 詳細については、[url=http://www.phpobject. net/blog/read.php]http://www.phpobject.net/blog/read.php[/url]?
14
* 例:
15
* モード 4 A ページングモード:
16
require_once('../libs/classes/page.class.php');
17
$page=new page(array('total'=>1000 ,' perpage'=>20));
18
echo 'mode:1'.$page->show();
19
echo 'mode:2
'.$ page- >show(2);
20
echo 'mode:3
'.$page->show(3);
21
echo 'mode:4
'.$page- >show(4);
22
AJAX をオンにします:
23
$ajaxpage=new page(array('total'=>1000,'perpage'=>20,'ajax' = >'ajax_page','page_name'=>'test'));
24
echo 'mode:1'.$ajaxpage->show();
25
ページネーションの定義から継承表示モード:
26
デモ: http://www.phpobject.net/blog
27
*/
28
クラス
ページ
29
{
30
/*
*
31
* config ,public32 PB_page"
;
//
page URL ページを制御するために使用されるタグ。たとえば、xxx.php?PB_page=2 の PB_page '
;
/ /
次のページ 35
var $pre_page= ''
;//前のページ 36 var $first_page='最初 '
; //ホームページ 37 var$last_page= '最後'
;// 最後のページ 38 var $pre_bar=' '
;//前のページングバー 39 var$ next_bar='>>'
; //次のページバー 40 var$format_left= '['
;41 var $is_ajax= false;//
AJAX ページング モードをサポートするかどうか43 44 /** 45 * プライベート
46 *47
$pagebarnum=10
;// レコードストリップの数を制御します。49
ページ数 50var$ajax_action_name =''
;//AJAX アクションname 51 var $nowindex= 1
;//現在のページ52 var$url= "";// URLアドレスヘッダー
53 var $offset= 0; 54
55 /* * 56 * コンストラクター コンストラクター
57 *
58 * @param array $array['total'] ,$array['perpage'],$ array['nowindex'],$array['url'],$array['ajax'] 59
*/
60
関数 ページ( $array)
61 { 62 if(is_array($array)){
63 if(!array_key_exists( '合計',$array))$this->エラー(__FUNCTION__,') 合計のパラメータが必要です」 );
64 $total=intval($array['total ']);
65 $perpage=(array_key_exists('perpage',$array ))?intval($ array['perpage']):10;
66 $nowindex =(array_key_exists( 'nowindex',$array))?intval($array['nowindex ']) :'';
67 $url=(array_key_exists('url',) $配列))?$配列 ['url']:'';
68 }else{
69 $total =$配列;
70 $perpage=10;
71 $nowindex='';
72 $url='';
73 }
74 if((!is_int($total))||() $合計0 ))$this->error(__FUNCTION__,$total.'は正の整数ではありません!' );
75 if((!is_int($perpage))||($perpage0)) $this->error(__FUNCTION__,$perpage.'は正の整数ではありません!');
76 if(!空($array['page_name']))$this-> セット(' page_name',$array['page_name']);//設置ページ名
77 $this->_set_nowindex($nowindex);//设置当前页
78 $this->_set_url( $url);//地上設置链址
79 $this->合計ページ=ceil($合計/$ );
80 $this->オフセット=($this->nowindex-1)* $this->ページごと;
81 if(!空($array['ajax ']))$this ->open_ajax($array['ajax']);//AJAXモードを開く
82}
83 /**
84 * 変更がこのクラスに属さない場合、例外がスローされます
。 85 *
86 * @param string $var
87 */
89 関数
set($var) ,$value) 90 {
91 if
(in_array( $var ,get_object_vars( $this))) 92 $this
->$var =$value; 93 else
{ 94 $this
->error(__FUNCTION__, $var."はPに属しませんB_ページ!"); 95 }
96
97 }
98 /**
99 * 逆AJAXモードをオンにする
100 *
101 * @param string $action デフォルトの ajaxアクションをトリガーします。
102 */
103 function open_ajax($action)
104 {
105 $this->is_ajax=true;
106 $this->ajax_action_name =$アクション;
107 }
108 /**
109 * 「次のページ」を表示するコードを取得します
110 *
111 * @param string $style
112 * @return string
113 next_page($style
=' ') 115 {116
$this->
合計ページ){117 戻る $this-> _get_link($this-> _get_url(
$this->nowindex +1),$this->next_page, $スタイル); 118 }119 return ''
.$style .
'"> '.$this ->次のページ.'';120 }
121
122 /**
123 * 「前のページ」を表示するコードを取得します
124 *
125 * @param string $style
126 * @return string
127 */
1 28 関数 pre_page( $ style='')
129{
130 if($this -> nowindex>1 ){
131 戻る $this->_get_link($this->_get_url ($this-> nowindex -1),$this->pre_page,$style);
132 }
133 return ''.$style.' ">'. $this->pre_page.'';
134}
135
136/* **
140 */
141
function first_page(
$style=) '')
142 { 143 if( $this->
nowindex==1
){144 '. $style.'">
'.$this->first_page.' ;145 }
146 戻る $this->_get_link($this->_get_url(1 )、$this ->first_page,$style);
147}
148
149 /**
150 * 「最後のページ」を表示するコードを取得します
151 *
152 * @return string
153 */
154 functionlast_page($style='')
155 {
156 if($this - >nowindex==$this->合計ページ){
157 '. $style . '">'.$this->last_page.'' ;15 8 }
159 戻る $this->_get_link($this->_get_url( $this->合計ページ) 、$this->last_page、$style);
160 }
161
162 機能 nowbar($style='',$nowindex_style='')
163 {
164 $plus =ceil($this->pagebarnum/2);
165 if ($これ-> ページバーナム-$plus+$this->nowindex>$this->合計ページ)$plus =( $this->pagebarnum-$this->合計ページ+$this->nowindex);
166
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31