public function init() { $pagenums = floor($this->rownum / $this->rowper); //155/10=15页 $this->offset = $this->pagenum == $pagenums ? $this->rownum % $this->rowper : $this->rowper; $this->limit = ($this->pagenum - 1) * $this->rowper; $this->bar = array(); //添加pre $pre = new Page(Page::PRE, Page::NOSELECTED, 0, Page::EDITABLE, $this->url . ($this->pagenum - 1)); if ($this->pagenum == 1) { $pre->setEditable(Page::NOT_EDITABLE); } $this->bar[] = $pre; //添加第一页 $page1 = new Page(Page::NOR, Page::NOSELECTED, 1, Page::EDITABLE, $this->url . "1"); if ($this->pagenum == 1) { $page1->setEditable(Page::NOT_EDITABLE); $page1->setSelected(page::SELECTED); } $this->bar[] = $page1; $start = 2; $end = $pagenums - 1; //添加... $flag = 0; if ($pagenums > $this->barnum) { //添加前... if (floor(($this->barnum - 1) / 2) + 1 < $this->pagenum) { $pagelue1 = new Page(Page::LUE, Page::NOSELECTED, 0, page::NOT_EDITABLE, 0); $start = $this->pagenum + 1 - floor(($this->barnum - 1) / 2); $this->bar[] = $pagelue1; } //编辑后...但不添加 if ($this->pagenum < $pagenums - floor($this->pagenum / 2)) { $flag = 1; $end = $this->pagenum + floor($this->barnum / 2); } } //添加数字 for ($i = $start; $i <= $end; $i++) { $page = new Page(Page::NOR, Page::NOSELECTED, $i, Page::EDITABLE, $this->url . "{$i}"); if ($i == $this->pagenum) { $page->setSelected(Page::SELECTED); $page->setEditable(Page::NOT_EDITABLE); } $this->bar[] = $page; } //添加后... if ($flag == 1) { $pagelue2 = new Page(Page::LUE, Page::NOSELECTED, 0, page::NOT_EDITABLE, 0); $this->bar[] = $pagelue2; } //添加最后一页 $pageend = new Page(Page::NOR, Page::NOSELECTED, $pagenums, Page::EDITABLE, $this->url . "{$pagenums}"); if ($this->pagenum == $pagenums) { $pageend->setEditable(Page::NOT_EDITABLE); $pageend->setSelected(page::SELECTED); } $this->bar[] = $pageend; //添加latter $latter = new Page(Page::LAT, Page::NOSELECTED, 0, Page::EDITABLE, $this->url . ($this->pagenum + 1)); if ($this->pagenum == $pagenums) { $latter->setEditable(Page::NOT_EDITABLE); } $this->bar[] = $latter; }