| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- <?php
- /**
- * 使用get方法请求页面,因为用Yii::$app->request->getQueryParams()获取页面的参数
- *
- * 一定要传进来的变量
- * @var int $pageCount 总共多少页
- */
- if (empty($baseUrl)) {
- $baseUrl = '/' . Yii::$app->request->getPathInfo();
- }
- $queryParams = Yii::$app->request->getQueryParams();
- $pageSize = isset($queryParams['pageSize']) && is_numeric($queryParams['pageSize']) ? intval($queryParams['pageSize']) : 20;
- $pageNumber = isset($queryParams['pageNumber']) && is_numeric($queryParams['pageNumber']) ? intval($queryParams['pageNumber']) : 1;
- // 首页
- $queryParams['pageNumber'] = 1;
- $firstPageUrl = $baseUrl . '?' . http_build_query($queryParams);
- // 上一页
- $queryParams['pageNumber'] = $pageNumber > 1 ? $pageNumber - 1 : 1;
- $prevPageUrl = $baseUrl . '?' . http_build_query($queryParams);
- // 下一页
- $queryParams['pageNumber'] = $pageNumber < $pageCount ? $pageNumber + 1 : $pageCount;
- $nextPageUrl = $baseUrl . '?' . http_build_query($queryParams);
- // 末页
- $queryParams['pageNumber'] = $pageCount;
- $lastPageurl = $baseUrl . '?' . http_build_query($queryParams);
- // 所有的页码
- $pageItem = [];
- for ($i = 1; $i <= $pageCount; $i++) {
- $queryParams['pageNumber'] = $i;
- $pageItem[$i] = $baseUrl . '?' . http_build_query($queryParams);
- }
- // 当前页码前后的省略号,比如总共11页,现在是第5页,前后显示2页,那么应该是... 3 4 5 6 7 ...这样的形式,避免在页数过多时把所有页码都显示出来
- $beforeCurrentPageEllipsis = false;
- $afterCurrentPageEllipsis = false;
- // 当前页码前后显示的页数
- $beforeAndAfterPageNum = 2;
- ?>
- <?php if ($pageCount > 1) : ?>
- <div class="pagination fn-right">
- <ul>
- <?php if ($pageNumber > 1) : ?>
- <li><a href="<?= $firstPageUrl ?>">首页</a></li>
- <?php else : ?>
- <li><a href="javascript:;">首页</a></li>
- <?php endif; ?>
- <?php if ($pageNumber > 1) : ?>
- <li><a href="<?= $prevPageUrl ?>">« 上一页</a></li>
- <?php else : ?>
- <li><a href="javascript:;">« 上一页</a></li>
- <?php endif; ?>
- <?php foreach ($pageItem as $k => $v) : ?>
- <?php if ($pageNumber - $k > $beforeAndAfterPageNum) : ?>
- <?php if (!$beforeCurrentPageEllipsis) : ?>
- <li class="active"><a href="javascript:;">...</a></li>
- <?php $beforeCurrentPageEllipsis = true; endif; ?>
- <?php elseif ($k - $pageNumber > $beforeAndAfterPageNum) : ?>
- <?php if (!$afterCurrentPageEllipsis) : ?>
- <li class="active"><a href="javascript:;">....</a></li>
- <?php $afterCurrentPageEllipsis = true; endif; ?>
- <?php $afterCurrentPageEllipsis = true; ?>
- <?php else : ?>
- <?php if ($k != $pageNumber) : ?>
- <li><a href="<?= $v ?>"><?= $k ?></a></li>
- <?php else : ?>
- <li class="active"><a href="javascript:;"><?= $k ?></a></li>
- <?php endif; ?>
- <?php endif; ?>
- <?php endforeach; ?>
- <?php if ($pageNumber < $pageCount) : ?>
- <li><a href="<?= $nextPageUrl ?>">下一页 »</a></li>
- <?php else : ?>
- <li><a href="javascript:;"> 下一页 » </a></li>
- <?php endif; ?>
- <?php if ($pageNumber < $pageCount) : ?>
- <li><a href="<?= $lastPageurl ?>">末页</a></li>
- <?php else : ?>
- <li><a href="javascript:;"> 末页</a></li>
- <?php endif; ?>
- </ul>
- </div>
- <?php endif; ?>
|