prev = ""._BP_BACK_PAGE; $this->next = ""._BP_NEXT_PAGE; $this->first = ""._BP_FIRST_PAGE; $this->last = ""._BP_LAST_PAGE; $this->limit = $limit; $this->total = $total; $this->pLimit = $page_limit; } function init(){ $this->used_query = array($this->url_page, $this->url_loadtime); $this->query_str = $this->processQuery($this->used_query); $this->glue = ($this->query_str == "")?'?': '&'; $this->current = (isset($_GET["$this->url_page"]))? $_GET["$this->url_page"]: 1; $this->pTotal = ceil($this->total / $this->limit); $this->pCurrent = ceil($this->current / $this->pLimit); } //初始設定 function set($active_color = "none", $buttons = "none"){ if ($active_color != "none"){ $this->act_color = $active_color; } if ($buttons != "none"){ $this->buttons = $buttons; $this->prev = $this->buttons['prev']; $this->next = $this->buttons['next']; $this->prev_layer = $this->buttons['prev_layer']; $this->next_layer = $this->buttons['next_layer']; $this->first = $this->buttons['first']; $this->last = $this->buttons['last']; } } // 處理 URL 的參數,過濾會使用到的變數名稱 function processQuery($used_query){ // 將 URL 字串分離成二維陣列 $vars = explode("&", $_SERVER['QUERY_STRING']); for($i = 0; $i < count($vars); $i++){ $var[$i] = explode("=", $vars[$i]); } // 過濾要使用的 URL 變數名稱 for($i = 0; $i < count($var); $i++){ for($j = 0; $j < count($used_query); $j++){ if (isset($var[$i][0]) && $var[$i][0] == $used_query[$j]) $var[$i] = array(); } } // 合併變數名與變數值 for($i = 0; $i < count($var); $i++){ $vars[$i] = implode("=", $var[$i]); } // 合併為一完整的 URL 字串 $processed_query = ""; for($i = 0; $i < count($vars); $i++){ $glue = ($processed_query == "")?'?': '&'; // 開頭第一個是 '?' 其餘的才是 '&' if ($vars[$i] != "") $processed_query .= $glue.$vars[$i]; } return $processed_query; } // 製作 sql 的 query 字串 (LIMIT) function sqlQuery(){ $row_start = ($this->current * $this->limit) - $this->limit; $sql_query = " LIMIT {$row_start}, {$this->limit}"; return $sql_query; } // 製作 bar function makeBar($url_page = "none"){ if ($url_page != "none"){ $this->url_page = $url_page; } $this->init(); // 取得目前時間 $loadtime = '&loadtime='.time(); // 取得目前頁框(層)的第一個頁數啟始值,如 6 7 8 9 10 = 6 $i = ($this->pCurrent * $this->pLimit) - ($this->pLimit - 1); $bar_center = ""; while ($i <= $this->pTotal && $i <= ($this->pCurrent * $this->pLimit)){ if ($i == $this->current){ $bar_center = "{$bar_center}[{$i}]"; }else{ $bar_center .= " query_str}{$this->glue}{$this->url_page}={$i}{$loadtime}'' title='{$i}'>{$i} "; } $i++; } $bar_center = $bar_center . ""; // 往前跳一頁 if ($this->current <= 1){ $bar_left = " {$this->prev} "; $bar_first = " {$this->first} "; } else{ $i = $this->current-1; $bar_left = " query_str}{$this->glue}{$this->url_page}={$i}{$loadtime}' title='"._BP_BACK_PAGE."'>{$this->prev} "; $bar_first = " query_str}{$this->glue}{$this->url_page}=1{$loadtime}' title='"._BP_FIRST_PAGE."'>{$this->first} "; } // 往後跳一頁 if ($this->current >= $this->pTotal){ $bar_right = " {$this->next} "; $bar_last = " {$this->last} "; } else{ $i = $this->current + 1; $bar_right = " query_str}{$this->glue}{$this->url_page}={$i}{$loadtime}' title='"._BP_NEXT_PAGE."'>{$this->next} "; $bar_last = " query_str}{$this->glue}{$this->url_page}={$this->pTotal}{$loadtime}' title='"._BP_LAST_PAGE."'>{$this->last} "; } // 往前跳一整個頁框(層) if (($this->current - $this->pLimit) < 1){ $bar_l = " {$this->prev_layer} "; } else{ $i = $this->current - $this->pLimit; $bar_l = " query_str}{$this->glue}{$this->url_page}={$i}{$loadtime}' title='".sprintf($this->pLimit,_BP_GO_BACK_PAGE)."'>{$this->prev_layer} "; } //往後跳一整個頁框(層) if (($this->current + $this->pLimit) > $this->pTotal){ $bar_r = " {$this->next_layer} "; } else{ $i = $this->current + $this->pLimit; $bar_r = " query_str}{$this->glue}{$this->url_page}={$i}{$loadtime}' title='".sprintf($this->pLimit,_BP_GO_NEXT_PAGE)."'>{$this->next_layer} "; } $page_bar['center'] = $bar_center; $page_bar['left'] = $bar_first . $bar_l . $bar_left; $page_bar['right'] = $bar_right . $bar_r . $bar_last; $page_bar['current'] = $this->current; $page_bar['total'] = $this->pTotal; $page_bar['sql'] = $this->sqlQuery(); return $page_bar; } } } ?> ```
進階搜尋
40人線上 (12人在瀏覽線上書籍)
會員: 0
訪客: 40