58 lines
2.0 KiB
PHP
Executable File
58 lines
2.0 KiB
PHP
Executable File
<?php
|
|
namespace backend\widgets\common;
|
|
|
|
use yii\helpers\Html;
|
|
use yii\widgets\LinkPager;
|
|
|
|
class LinkPages extends LinkPager
|
|
{
|
|
/**
|
|
* Renders the page buttons.
|
|
* @return string the rendering result
|
|
*/
|
|
protected function renderPageButtons()
|
|
{
|
|
$pageCount = $this->pagination->getPageCount();
|
|
if ($pageCount < 2 && $this->hideOnSinglePage) {
|
|
return '';
|
|
}
|
|
|
|
$buttons = [];
|
|
$currentPage = $this->pagination->getPage();
|
|
|
|
// first page
|
|
if ($this->firstPageLabel !== false) {
|
|
$buttons[] = $this->renderPageButton($this->firstPageLabel, 0, $this->firstPageCssClass, $currentPage <= 0, false);
|
|
}
|
|
|
|
// prev page
|
|
if ($this->prevPageLabel !== false) {
|
|
if (($page = $currentPage - 1) < 0) {
|
|
$page = 0;
|
|
}
|
|
$buttons[] = $this->renderPageButton($this->prevPageLabel, $page, $this->prevPageCssClass, $currentPage <= 0, false);
|
|
}
|
|
|
|
// internal pages
|
|
list($beginPage, $endPage) = $this->getPageRange();
|
|
for ($i = $beginPage; $i <= $endPage; ++$i) {
|
|
$buttons[] = $this->renderPageButton($i + 1, $i, null, false, $i == $currentPage);
|
|
}
|
|
|
|
// next page
|
|
if ($this->nextPageLabel !== false) {
|
|
if (($page = $currentPage + 1) >= $pageCount - 1) {
|
|
$page = $pageCount - 1;
|
|
}
|
|
$buttons[] = $this->renderPageButton($this->nextPageLabel, $page, $this->nextPageCssClass, $currentPage >= $pageCount - 1, false);
|
|
}
|
|
|
|
// last page
|
|
if ($this->lastPageLabel !== false) {
|
|
$buttons[] = $this->renderPageButton($this->lastPageLabel, $pageCount - 1, $this->lastPageCssClass, $currentPage >= $pageCount - 1, false);
|
|
}
|
|
|
|
return html::tag('div',Html::tag('ul', implode("\n", $buttons), $this->options),['class'=>'dataTables_paginate paging_bootstrap pagination']);
|
|
//return Html::tag('ul', implode("\n", $buttons), $this->options);
|
|
}
|
|
} |