Code:
Copy code The code is as follows:
/**
* Treat the middle one as a sliding, fixed-length ruler
*
* Treat $this->_totalShowPages as a sliding, fixed-length ruler,
* Then $this-> ;_totalPages is a wooden block of a given length, and the ruler slides on this
* wooden block. There are two situations:
* 1. If the length of the ruler is greater than the length of the wooden block, then all page numbers will be output directly;
* 2. The length of the ruler is less than the length of the wooden block, then only the page with the length of the ruler will be found and output
* The starting point of the number——$start, $end;
* @Access protected
* @Return void
* @Exception none
*/
protected function _getShowPageNumber()
{
$pageHtml = '';
//Find the $start point
if($this->_curPage - 2 > 1) {
$start = $ this->_curPage - 2;
} else {
$start = 1;
}
//Find $end point
$end = $start + $this->_totalShowPages ;
if($end >= $this->_totalPages) {
$end = $this->_totalPages;
$start = $end - $this->_totalShowPages; // Ensure that the length of the page displayed is $this->_totalShowPages
}
if($start != 1) {
$pageHtml .= $this->_getPageHtml(1);
$preMore = $this->_curPage - $this->_totalShowPages;
if($preMore < 1) {
$preMore = 1;
}
$pageHtml .= $this-> ;_getMorePageHtml($preMore);
}
for($page = $start; $page < $end; $page ++) {
$pageHtml .= $this->_getPageHtml($ page);
}
if($end != $this->_totalPages) {
$pageHtml .= $this->_getMorePageHtml($end);
}
$ pageHtml .= $this->_getNormalPageHtml($this->_totalPages);
return $pageHtml;
}
Code implementation of the first old idea:
Copy code The code is as follows:
/**
* Step by step
*
* @desc
*
* @Access protected
* @Return void
* @Exception none
*/
protected function _getShowPageNumberTwo()
{
if($this->_curPage < $this->_totalShowPages) {
for($page = 1; $page < $this->_totalShowPages; $page ++) {
$pageHtml .= $this->_getPageHtml($page);
}
$pageHtml .= $this->_getMorePageHtml($this->_totalShowPages);
$pageHtml .= $this->_getNormalPageHtml($this->_totalPages);
} else {
$pageHtml .= $this->_getNormalPageHtml(1);
if($this->_curPage == $this->_totalShowPages) {
$pageHtml .= $this->_getMorePageHtml(1);
} else {
$pageHtml .= $this->_getMorePageHtml($this->_curPage - $this->_totalShowPages);
}
if($this->_curPage + $this->_totalShowPages >= $this->_totalPages) {
for($page = $this->_totalPages - $this->_totalShowPages; $page < = $this->_totalPages; $page ++) {
$pageHtml .= $this->_getPageHtml($page);
}
} else {
$start = $this->_curPage - 2;
$end = $this->_curPage + $this->_totalShowPages - 2;
for($page = $start; $page < $end; $page ++) {
$pageHtml .= $this->_getPageHtml($page);
}
$pageHtml .= $this->_getMorePageHtml($this->_curPage + $this->_totalShowPages - 2);
$pageHtml .= $this->_getNormalPageHtml($this->_totalPages);
}
}
return $pageHtml;
}
http://www.bkjia.com/PHPjc/676867.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/676867.htmlTechArticle代码: 复制代码 代码如下: /** * 把中间的看成一个可以滑动的固定长度的尺子 * * 把$this-_totalShowPages 当成一个可以滑动的固定长度尺子,...