thinkphp5 layui分页样式
tp5之layui分页样式
1.分页类
路径:\thinkphp\library\think\paginator\driver
Layui.php
<?php
namespace think\paginator\driver;
use think\Paginator;
class Layui extends Paginator
{/*** 上一页按钮* @param string $text* @return string*/protected function getPreviousButton($text = "上一页"){if ($this->currentPage() <= 1) {return $this->getDisabledTextWrapper($text);}$url = $this->url($this->currentPage() - 1);return $this->getPageLinkWrapper($url, $text);}/*** 下一页按钮* @param string $text* @return string*/protected function getNextButton($text = '下一页'){if (!$this->hasMore) {return $this->getDisabledTextWrapper($text);}$url = $this->url($this->currentPage() + 1);return $this->getPageLinkWrapper($url, $text);}/*** 页码按钮* @return string*/protected function getLinks(){if ($this->simple)return '';$block = ['first' => null,'slider' => null,'last' => null];$side = 3;$window = $side * 2;if ($this->lastPage < $window + 6) {$block['first'] = $this->getUrlRange(1, $this->lastPage);} elseif ($this->currentPage <= $window) {$block['first'] = $this->getUrlRange(1, $window + 2);$block['last'] = $this->getUrlRange($this->lastPage - 1, $this->lastPage);} elseif ($this->currentPage > ($this->lastPage - $window)) {$block['first'] = $this->getUrlRange(1, 2);$block['last'] = $this->getUrlRange($this->lastPage - ($window + 2), $this->lastPage);} else {$block['first'] = $this->getUrlRange(1, 2);$block['slider'] = $this->getUrlRange($this->currentPage - $side, $this->currentPage + $side);$block['last'] = $this->getUrlRange($this->lastPage - 1, $this->lastPage);}$html = '';if (is_array($block['first'])) {$html .= $this->getUrlLinks($block['first']);}if (is_array($block['slider'])) {$html .= $this->getDots();$html .= $this->getUrlLinks($block['slider']);}if (is_array($block['last'])) {$html .= $this->getDots();$html .= $this->getUrlLinks($block['last']);}return $html;}/*** 渲染分页html* @return mixed*/public function render(){if ($this->hasPages()) {if ($this->simple) {return sprintf('<ul class="pager">%s %s</ul>',$this->getPreviousButton(),$this->getNextButton());} else {return sprintf('%s %s %s',$this->getPreviousButton(),$this->getLinks(),$this->getNextButton());}}}/*** 生成一个可点击的按钮** @param string $url* @param int $page* @return string*/protected function getAvailablePageWrapper($url, $page){return '<a href="' . htmlentities($url) . '">' . $page . '</a>';}/*** 生成一个禁用的按钮** @param string $text* @return string*/protected function getDisabledTextWrapper($text){return '<a class="layui-laypage-prev" >' . $text . '</a>';}/*** 生成一个激活的按钮** @param string $text* @return string*/protected function getActivePageWrapper($text){return '<span class="layui-laypage-curr"> <em class="layui-laypage-em"></em><em>' . $text . '</em></span>';}/*** 生成省略号按钮** @return string*/protected function getDots(){return $this->getDisabledTextWrapper('...');}/*** 批量生成页码按钮.** @param array $urls* @return string*/protected function getUrlLinks(array $urls){$html = '';foreach ($urls as $page => $url) {$html .= $this->getPageLinkWrapper($url, $page);}return $html;}/*** 生成普通页码按钮** @param string $url* @param int $page* @return string*/protected function getPageLinkWrapper($url, $page){if ($page == $this->currentPage()) {return $this->getActivePageWrapper($page);}return $this->getAvailablePageWrapper($url, $page);}
}
2.配置文件
paginate.php
<?php
/*** @auther: xxf* Date: 2019/9/2* Time: 10:24*/
//分页配置
return ['type' => 'Layui','var_page' => 'page',
];
3.模型查询
public function getUserShowList($size = 20, $where = null){$res = $this->field('id,title,list_order,is_top,create_time,create_time time')->where($where)->order(['is_top' => 'desc', 'list_order' => 'desc', 'id' => 'desc'])->paginate($size);return $res;}
4.模板渲染
<div class="layui-box layui-laypage layui-laypage-molv">{$list|raw}</div>
效果
thinkphp5 layui分页样式相关推荐
- layui分页和模板引擎
模板引擎 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...
- GridView自定义分页样式(上一页,下一页,到第几页)(新手教程)
今天要为网站做一个文章列表,发现GridView的分页样式很难看,于是结合网上的例子,自己做了一个.不是很美观,不过还是很实用的,先看下效果吧,如图(1).演示地址http://www.veryam. ...
- tp5.0分页样式调控
基础的分页调用 /*** 控制器部分代码*///实例化模型$areasModel=new Areas();//分页数据集$listarea=$areasModel->paginate($page ...
- 帝国CMS列表分页样式(三)[!--show.listpage--]
帝国CMS,列表,模版,分页,样式,[!--show.listpage--] 我们在自己设计网站列表页面或者仿别人的列表页面的时候可能会感觉帝国cms默认的列表页分页样式不是很好看,不过经过我最记得使 ...
- Laravel自定义分页样式
Laravel 的分页组件默认为 Bootstrap 的分页样式,但如果我们用的并不是 Bootstrap 或者说分页的 HTML结构不一样,这时我们需要自定义分页.其实 Laravel 的分页组件是 ...
- java实现layui分页_基于LayUI分页和LayUI laypage分页的使用示例
本文介绍了LayUI分页,LayUI动态分页,LayUI laypage分页,LayUI laypage刷新当前页,分享给大家,具体如下: 效果图: 一.引用js依赖 主要是jquery-1.11. ...
- php分页样式,thinkphp分页样式修改
用tp框架内置的分页很容易实现分页功能. 首先是实例化数据表,然后统计数据,最后进行实例化分页类并按自己需要显示. 但是内置的分页样式可能不喜欢,感觉不是那么友好.所有可以个性化修改一下. 手册也提供 ...
- Thinkphp5 自定义分页类
1.在extend\目录下创建page目录,在page目录中创建Page.php文件,将以下代码放入文件中 <?php namespace page; use think\Paginator; ...
- 如何修改DeDe标签Pagelist分页样式详解
我们在用dede仿站的时候,调用文章列表页的分页时,我们会用到:{dede:pagelist listitem="info,index,end,pre,next,pageno" l ...
- php laravel paginate,laravel 8 修改默认的paginate分页样式 的方法可以很简单
我们的分页样式成了这样,如果,为了一个分页,放弃bootstrap,是不聪明的,或者重写分页也是不太合适的. 还是老套路,先去百度,看看有没有现成的轮子... 结果搜到了这个, laravel8替换p ...
最新文章
- 【转】Android下编译jni库的二种方法(含示例) -- 不错
- PPT 下载 | 桑文锋:数据化建设的时代机遇
- mysql group by having count_mysql中count(), group by, order by使用详解
- c# in deep 之Lambda表达式
- Rxjs 里 subscribeToArray 工具函数的详细分析
- P3243-[HNOI2015]菜肴制作【拓扑排序,优先队列】
- 第七章:react-ui
- java 面试 —— java 基础
- visio 2019 简单流程图教程
- 25.专栏订阅者利用专栏技术再现无线密码破解
- ZZULIOJ 1047: 对数表
- 基于Flink CDC实现实时数据采集(一)-接口设计
- PS 插件批量压缩png图片
- 查找目录下大小超过10M的文件
- 用批处理文件把.txt后缀的文件全部换成其他后缀文件
- AMiner论文推荐——Large-scale Localization Datasets in Crowded Indoor Spaces
- java毕业设计青少年心理健康公益扶助网站源码+lw文档+mybatis+系统+mysql数据库+调试
- siki Unity - A计划
- Zynga跨平台计划难以挽回股价跳水
- limit与OFFSET