代码:
/**<BR> * 把中间的看成一个可以滑动的固定长度的尺子<BR> *<BR> * 把$this->_totalShowPages 当成一个可以滑动的固定长度尺子,<BR> * 然后$this->_totalPages就是一个给定长度的木块,尺子在这个<BR> * 木块上滑动。情况两种:<BR> * 1. 尺子长度大于木块长度,那么就直接输出所有的页码;<BR> * 2. 尺子长度小于木块长度,那么就只用找到输出这个尺子长度页<BR> * 数的起始点——$start, $end;<BR> * @Access protected<BR> * @Return void<BR> * @Exception none<BR> */<BR> protected function _getShowPageNumber()<BR> {<BR> $pageHtml = '';<BR> //找到$start点<BR> if($this->_curPage - 2 > 1) {<BR> $start = $this->_curPage - 2;<BR> } else {<BR> $start = 1;<BR> }<BR> //找到$end 点<BR> $end = $start + $this->_totalShowPages;<BR> if($end >= $this->_totalPages) {<BR> $end = $this->_totalPages;<BR> $start = $end - $this->_totalShowPages; //保证页面显示的长度为$this->_totalShowPages<BR> }<BR> if($start != 1) {<BR> $pageHtml .= $this->_getPageHtml(1);<BR> $preMore = $this->_curPage - $this->_totalShowPages;<BR> if($preMore < 1) {<BR> $preMore = 1;<BR> }<BR> $pageHtml .= $this->_getMorePageHtml($preMore);<BR> }<BR> for($page = $start; $page < $end; $page ++) {<BR> $pageHtml .= $this->_getPageHtml($page);<BR> }<BR> if($end != $this->_totalPages) {<BR> $pageHtml .= $this->_getMorePageHtml($end);<BR> }<BR> $pageHtml .= $this->_getNormalPageHtml($this->_totalPages);<br><br> return $pageHtml;<BR> }<BR>
第一种老想法的代码实现:
/**<BR> * 一步步的来<BR> *<BR> * @desc<BR> *<BR> * @Access protected<BR> * @Return void<BR> * @Exception none<BR> */<BR> protected function _getShowPageNumberTwo()<BR> {<BR> if($this->_curPage _totalShowPages) {<BR> for($page = 1; $page _totalShowPages; $page ++) {<BR> $pageHtml .= $this->_getPageHtml($page);<BR> }<BR> $pageHtml .= $this->_getMorePageHtml($this->_totalShowPages);<BR> $pageHtml .= $this->_getNormalPageHtml($this->_totalPages);<BR> } else {<BR> $pageHtml .= $this->_getNormalPageHtml(1);<BR> if($this->_curPage == $this->_totalShowPages) {<BR> $pageHtml .= $this->_getMorePageHtml(1);<BR> } else {<BR> $pageHtml .= $this->_getMorePageHtml($this->_curPage - $this->_totalShowPages);<BR> }<BR> <i>*本5文来源gaodai$ma#com搞$$代**码)网@</i><img>搞代码gaodaima</img> if($this->_curPage + $this->_totalShowPages >= $this->_totalPages) {<BR> for($page = $this->_totalPages - $this->_totalShowPages; $page _totalPages; $page ++) {<BR> $pageHtml .= $this->_getPageHtml($page);<BR> }<BR> } else {<BR> $start = $this->_curPage - 2;<BR> $end = $this->_curPage + $this->_totalShowPages - 2;<BR> for($page = $start; $page < $end; $page ++) {<BR> $pageHtml .= $this->_getPageHtml($page);<BR> }<BR> $pageHtml .= $this->_getMorePageHtml($this->_curPage + $this->_totalShowPages - 2);<BR> $pageHtml .= $this->_getNormalPageHtml($this->_totalPages);<BR> }<BR> }<br><br> return $pageHtml;<BR> }<BR>