source: temp/trunk/data/class/SC_PageNavi.php @ 1328

Revision 1328, 3.4 KB checked in by naka, 20 years ago (diff)

* empty log message *

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