gleez 下分页功能优化

当一个控制器里的方法只调用了一次分页功能,且在index的方法里,则无需进行以下优化,否则可以根据建议内容优化;

找到/modules/gleez/classes/gleez/pagination.php文件下的url方法;修改内容见红色字体

public function url($page = 1)

{

// Clean the page number

$page = max(1, (int) $page);

// gleez cms pagination

$pager = ‘/p‘. $page;

// No page number in URLs to first page

if ($page === 1 AND ! $this->config[‘first_page_in_url‘])

{

$page = NULL;

$pager = NULL;

}

switch ($this->config[‘current_page‘][‘source‘])

{

case ‘query_string‘:

//return URL::site($this->_route->uri($this->_route_params).

// $this->query(array($this->config[‘current_page‘][‘key‘] => $page)));

//当调用分页功能时,带uri传值时,则在url链接直接增加查询页数;否则显示的url默认指向该控制器的index的方法,后增加查询页数(且url省略index方法名显示)

if($this->_uri){

return URL::site($this->_uri.

$this->query(array($this->config[‘current_page‘][‘key‘] => $page)));

}else{

return URL::site($this->_route->uri($this->_route_params).

$this->query(array($this->config[‘current_page‘][‘key‘] => $page)));

}

case ‘route‘:

return URL::site($this->_route->uri(

array_merge(

$this->_route_params,

array($this->config[‘current_page‘][‘key‘] => $page)

)

). $this->query());

case ‘cms‘:

return URL::site($this->_uri . $pager . $this->query());

}

return ‘#‘;

}

在控制器方法里调用分页功能的方法,写法如下:

public function action_select()

{

$this->title = __(‘分页测试’);

$sql_p = “SELECT * FROM products”;

$p_values = DB::query(Database::SELECT,$sql_p)

->execute()

->as_array();

//计算总的查询记录

$count = count($p_values );

//分页

$pagination = Pagination::factory(array(

‘items_per_page‘ =>20,

‘total_items‘ => $count,

‘uri‘ => $this->request->uri(),//优化分页功能后,新增的

));

$current_page = isset($_GET[‘page‘])?$_GET[‘page‘]:1;

$sql_p     .=" LIMIT ".(($current_page-1)*20).",20";

$p_values  = DB::query(Database::SELECT,$sql_p )

->execute()

->as_array();

//加载试图

$view = View::factory(‘fenye‘)

->bind("pagination",$pagination)

->bind(“p_values”,$values);

$this->response->body($view);

}

视图文件中,增加分页的显示,如下

<table>

<thead>

<tr>

<th>model</th>

<th>属性</th>

</tr>

</thead>

<tbody>

<?php foreach($values as $key => $value){?>

<tr>

<td></td>

<td></td>

<?php } ?>

</tbody>

</table>

<?php echo $pagination;?>//分页显示

时间: 2024-10-25 04:28:25

gleez 下分页功能优化的相关文章

分页功能优化

abs(-5) 绝对值 p2.paginator=p 原文地址:https://www.cnblogs.com/jintian/p/11324497.html

吐槽下linq to sql的分页功能

在调试程序的时候发现一个非常奇怪的问题: 用使用linq分页,分页到第二页的时候,第二页里面有第一页里出现的数据,开始还以为是. linq语句写的有问题,调试半天,无解.后来发现是因为没有排序的缘故. 使用这个q.Skip((sc.cpage.GetValueOrDefault() - 1) * psize).Take(psize).ToList()分页一定要加个排序,否则分页有问题. 吐槽下linq to sql的分页功能,码迷,mamicode.com

winform中DataGridView实现分页功能

http://liyaguang20111105.blog.163.com/blog/static/19929420220146283255809/ 在winform的设计中,要实现对DataGridView控件的分页功能,需要两个控件:BindingSource.BindingNavigator,根据需求可对BindingNavigator进行自由的扩展,下图的示例则是根据一般需求对分页功能的实现.红色区域是对BindingNavigator控件扩展后的效果. 具体实现过程 : //窗体构造方

python2.0_day19_前端分页功能的实现

我们前面完成的客户纪录展示,只有4条,如果有上百条就不能在1页中全部展示了,那样是不人性化的.另外一次性取出来,数据量也比较大.假如现在有95条数据,我们想实现一个每页展示20条,那就分为5页.假如我们实现了,那么前端每一次请求就需要给后台提供参数了.这个参数就是告诉views里的视图函数我取第几页.需求分析: 95条,每页20条 第一次请求 返回20条,并且后端返回当前返回是第几页 ,所以第一次返回是1 点击下一页 1+1=2 ,把2传给后端,后端拿到后在把第二页的内容返回给前端,并且把当前返

一个js实现的分页功能

分页,一直是个令我头疼的问题,用java写网站的时候 ,需要用到分页功能,那时候是定义一个分页用的类,感觉比较麻烦,不过在数据量大的时候,应该会比较合适 去年做项目的过程中,用的是下拉刷新的组件,是别人写的,实现起来不方便, 效果也不太好 偶然在网上看到过js的分页功能,想想既然java能实现,js肯定是也能实现的. 参考网上的内容,稍微修改了下,暂且称之为0.1版 具体方法:先将所有的数据取出来,并用html展示出来,但用js去控制html标签的显示与隐藏,算是从另一个角度实现了分页功能 这一

django中orm分页功能(内置分页)

分批获取数据的方法 数据库方法 models.Uinfo.objects.all()[10:20] django自带的方法 创建一个新的url urlpatterns = [ url(r'^index.html/', views.index), ] 创建index函数 def index(request): """ 分页功能 :param request: :return: """ user_list = models.Uinfo.objects

DRF框架中分页功能接口

目录 DRF框架中分页功能接口 DRF框架中分页功能接口 一.在框架中提供来三个类来实现分页功能,PageNumberPagination.LimitOffsetPagination.CursorPagination PageNumberPagination是页码分页,这个类可以进行全局设置 LimitOffsetPagination按照偏移量来进行分页 两个类都可以实现,在程序的具体设计上会有一部分的差别,但是差别不大. CursorPagination加密分页功能 二.使用PageNumbe

网页分页功能的实现

最近在学习JavaWeb的时候,用到了分页功能,现在进行一个记录,以备不时之需 第一步:先完成分页Bean的编写. 就是对当前页数,每页显示的记录数,总记录数,总页数,分页显示的信息进行封装.作为通用的分页功能的实现,这里用到了泛型 import java.util.List; /** * 分页封装 * */ public class PageBean<T> { private int currPage;//当前页数 private int pageSize;//每页显示记录数 private

网站前端_JavaScript-项目经验.纯JavaScript实现客户端的分页功能?

项目简介: 说明: 此项目属于医院电子病例系统,由于历史原因,整个系统后台基于Java开发,前端使用Html+CSS+原生JavaScript,项目功能模块要求必须纯JS实现,而此次的任务是为住院病例页面编写一个客户端分页功能. 实现思路: 1. 基于客户端分页的前提是数据已经加载完毕,所以此功能模块必须等待数据加载完毕后再加载 2. 基于客户端分页的首页只需要显示24个患者信息即可 3. 上一页/当前页/下一页功能类似,基于当前页面传递同样的参数(页码, 限制患者数),所以自然而然想到了递归,