source: branches/feature-module-paygent/data/class/SC_PageNavi.php @ 17

Revision 17, 3.5 KB checked in by uehara, 14 years ago (diff)
Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7
8/* ¢¨»ÈÍѾò·ï¢¨
9    ¡¦form¥¿¥°¤Ë°Ê²¼¤òÄɲ乤롣
10        <input type="hidden" name="pageno" value="<!--{$tpl_pageno}-->">
11    ¡¦¥½¡¼¥¹¤ÎºÇ½é¤Ë°Ê²¼¤òµ­½Ò¤¹¤ë¡£
12        $objPage->tpl_pageno = $_POST['pageno'];
13    ¡¦$func_name¤Ë»ØÄꤹ¤ëJavaScript¤ÎÎã
14        // ¥Ú¡¼¥¸¥Ê¥Ó¤Ç»ÈÍѤ¹¤ë
15        function fnNaviPage(pageno) {
16            document.form1['pageno'].value = pageno;
17            document.form1.submit();
18        }       
19*/
20class SC_PageNavi {
21    var $now_page;      // ¸½ºß¤Î¥Ú¡¼¥¸ÈÖ¹æ
22    var $max_page;      // ºÇ½ª¤Î¥Ú¡¼¥¸ÈÖ¹æ
23    var $start_row;     // ³«»Ï¥ì¥³¡¼¥É
24    var $strnavi;       // ¥Ú¡¼¥¸Á÷¤êʸ»úÎó
25    var $arrPagenavi = array(); // ¥Ú¡¼¥¸
26
27    // ¥³¥ó¥¹¥È¥é¥¯¥¿
28    function SC_PageNavi($now_page, $all_row, $page_row, $func_name, $navi_max = NAVI_PMAX) {
29        $this->arrPagenavi['mode'] = 'search';
30
31        //¸½ºß¥Ú¡¼¥¸($now_page)¤¬Àµ¤·¤¤¿ôÃͤǤʤ¤¾ì¹ç
32        if (!eregi("^[[:digit:]]+$", $now_page) || $now_page < 1 || $now_page == "") {
33            $this->now_page = 1;
34        } else {
35            $this->now_page = $now_page;
36        }
37        $this->arrPagenavi['now_page'] = $this->now_page;
38
39        // ºÇ½ª¥Ú¡¼¥¸¤Î·×»»
40        $this->max_page = ceil($all_row/$page_row);
41
42        // ºÇ½ª¥Ú¡¼¥¸¤è¤ê¤â¸½ºß¥Ú¡¼¥¸¤¬Â礭¤¤¾ì¹ç¤Ï¡¢ºÇ½é¤ËÌ᤹¡£
43        if($this->max_page < $this->now_page) {
44            $this->now_page = 1;
45        }
46
47        $this->start_row = ($this->now_page - 1) * $page_row;
48   
49        // ³«»Ï¹Ô¤¬ÉÔÀµ¤Ê¾ì¹ç
50        if (!($this->start_row < $all_row && $this->start_row >= 0)) {
51            $this->start_row = 0;
52        }
53
54        if($all_row > 1) {
55
56            //¡ÖÁ°¤Ø¡×¡Ö¼¡¤Ø¡×¤ÎÀßÄê
57            if ($this->now_page > 1) {
58                $before="<a href=\"". $_SERVER['PHP_SELF']. "\" onclick=\"$func_name('" . (($this->now_page) - 1) . "'); return false;\"><<Á°¤Ø</a> ";
59                $this->arrPagenavi['before'] = ($this->now_page) - 1;
60            }else{
61                $this->arrPagenavi['before'] = $this->now_page;
62            }
63           
64            if ($this->now_page < $this->max_page) {
65                $next="<a href=\"". $_SERVER['PHP_SELF']. "\" onclick=\"$func_name('" . (($this->now_page) + 1) ."'); return false;\">¼¡¤Ø>></a> ";
66                $this->arrPagenavi['next'] = ($this->now_page) + 1;
67            }else{
68                $this->arrPagenavi['next'] = $this->now_page;
69            }
70           
71            // ɽ¼¨¤¹¤ëºÇÂç¥Ê¥Ó¿ô¤ò·è¤á¤ë¡£
72            if($navi_max == "" || $navi_max > $this->max_page) {
73                // À©¸Â¥Ê¥Ó¿ô¤Î»ØÄ꤬¤Ê¤¤¡£¥Ú¡¼¥¸ºÇÂç¿ô¤¬À©¸Â¥Ê¥Ó¿ô¤è¤ê¾¯¤Ê¤¤¡£
74                $disp_max = $this->max_page;
75            } else {
76                // ¸½ºß¤Î¥Ú¡¼¥¸¡ÜÀ©¸Â¥Ê¥Ó¿ô¤¬É½¼¨¤µ¤ì¤ë¡£
77                $disp_max = $this->now_page + $navi_max - 1;
78                // ¥Ú¡¼¥¸ºÇÂç¿ô¤òĶ¤¨¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¥Ú¡¼¥¸ºÇÂç¿ô¤Ë¹ç¤ï¤»¤ë¡£
79                if($disp_max > $this->max_page) {
80                    $disp_max = $this->max_page;
81                }
82            }
83
84            // ɽ¼¨¤¹¤ëºÇ¾®¥Ê¥Ó¿ô¤ò·è¤á¤ë¡£
85            if($navi_max == "" || $navi_max > $this->now_page) {
86                // À©¸Â¥Ê¥Ó¿ô¤Î»ØÄ꤬¤Ê¤¤¡£¸½ºß¥Ú¡¼¥¸Èֹ椬À©¸Â¥Ê¥Ó¿ô¤è¤ê¾¯¤Ê¤¤¡£
87                $disp_min = 1;
88            } else {
89                // ¸½ºß¤Î¥Ú¡¼¥¸-À©¸Â¥Ê¥Ó¿ô¤¬É½¼¨¤µ¤ì¤ë¡£
90                $disp_min = $this->now_page - $navi_max + 1;
91            }
92           
93            $this->arrPagenavi['arrPageno'] = array();
94            for ($i=$disp_min; $i <= $disp_max; $i++) {
95                if($i != $disp_max) {
96                    $sep = " | ";
97                } else {
98                    $sep = "";
99                }
100               
101                if ($i == $this->now_page) {
102                    $page_number .= "<strong>$i</strong> ";
103                } else {
104                    $page_number.="<a href=\"". $_SERVER['PHP_SELF']. "\" onclick=\"$func_name('$i'); return false;\">$i</a> ";
105                }
106               
107                $page_number.=$sep;
108               
109                $this->arrPagenavi['arrPageno'][$i] = $i;
110            }
111           
112            if ($before || $next) {
113                $this->strnavi = $before .$page_number .$next;
114            }
115        }else{
116            $this->arrPagenavi['arrPageno'][0] = 1;
117            $this->arrPagenavi['before'] = 1;
118            $this->arrPagenavi['next'] = 1;
119        }
120    }
121}
122
123?>
Note: See TracBrowser for help on using the repository browser.