links = array(); for($i = $start; $i <= $end; $i++) { $this->links[$i] = str_replace('##', $i, $baseURL); } } /** * set values by an array, key is page number, value is url * * @param * $pageInfos * @return unknown_type */ public function setWithArray(array $pageInfos) { $this->links = $pageInfos; } public function setCurrentPage($pageNum) { $this->current = $pageNum; } public function getCurrentPage() { return $this->current; } public function generate() { $links = array(); $i = 1; if(count($this->links) < 10) { foreach($this->links as $l) { $links[] = '' . ($i - 1 == $this->current ? '' . $i . '' : $i) . ''; $i++; } return implode($this->glue, $links); } reset($this->links); $l = current($this->links); $links[] = '' . ($i - 1 == $this->current ? '' . $i . '' : $i) . ''; if($this->current < 4) { for($j = 1; $j <= $this->current + 2; $j++) { $i++; $l = next($this->links); $links[] = '' . ($i - 1 == $this->current ? '' . $i . '' : $i) . ''; } $links[] = '...'; } elseif($this->current > count($this->links) - 5) { $links[] = '...'; for($i; $i < $this->current - 2; $i++) next($this->links); $i++; for($i; $i < count($this->links); $i++) { $l = next($this->links); $links[] = '' . ($i - 1 == $this->current ? '' . $i . '' : $i) . ''; } } else { $links[] = '...'; for($i; $i < $this->current - 2; $i++) next($this->links); for($j = 1; $j <= 5; $j++) { $i++; $l = next($this->links); $links[] = '' . ($i - 1 == $this->current ? '' . $i . '' : $i) . ''; } $links[] = '...'; } end($this->links); $i = count($this->links); $l = current($this->links); $links[] = '' . ($i - 1 == $this->current ? '' . $i . '' : $i) . ''; return implode($this->glue, $links); } }