Kohana之分页使用
时间:2010-08-21 来源:liushan
实现了__set和__get方法,保护私有数据
设置查询的方法及查询的KEY
$current_page;
例:array('source' => 'query_string', 'key' => 'page'),
//返回当前页码
总项目数
$total_items;
例:500
返回数值
每页显示多少个项目
$items_per_page;
例:60
返回数值
取得总页数
$total_pages;
例:echo $pag->total_pages;//9
返回数值
当前页的第一个记录的开始数
$current_first_item;
返回数值
当前页的第一个记录的结束数
$current_last_item;
返回数值
上一页页号;返回假说明是第一页
$previous_page;
返回数值
下一页数目; 返回假说明是最后一页
$next_page;
返回数值
第一页的数字; 如果是当前是第一页则不返回
$first_page;
返回数值
最后一页的数字,如果是最后一页则不返回
$last_page; .
返回数值
查询的开始项,等于相当于开始项减一
$offset;
例:如果当前是第二页,第一条记录为10,那么他将是9
返回数值
方法:
使用实例来解释咯:
<?php $pag=Pagination::factory();//取得一个分页 $config=$pag->config_group("good");//取得配置 $pag->setup($config);//设置配置 $pag->total_items=500;//设置总页数 echo $pag->valid_page(2);//检验分页是否在列表内,返回真假 echo $pag->url(2);//取得第几页的链接 echo $pag->render();//渲染分页
呵呵,搭上配置文件配置方法:
<?php defined('SYSPATH') or die('No direct script access.'); return array( 'good' => array(
//current_page 设置链接方式 'current_page' => array('source' => 'query_string', 'key' => 'page'), // 'total_items' => 0, 'items_per_page' => 100, 'view' => 'pagination/basic',//对应的视图,下面介绍咯 'auto_hide' => TRUE, ), );
视图配置
这个是这个类的关键啦.呵呵
Kohana默认会先从application查找文件,所以,我们的视图上建立在自己的views里面的,
保证了不用修改它框架的实现扩充自己的功能
那我们就在views里面建立一个pagination文件夹
并建立我们上面用到的视图basic吧
里面的内容是拷贝的内容,你也可以拷贝pagination\views\pagination\basic.php,在自己修改咯
附上代码:
<p class="pagination"> <?php if ($first_page !== FALSE): ?> <a href="<?php echo $page->url($first_page) ?>" rel="first"><?php echo __('First') ?></a> <?php else: ?> <?php echo __('First') ?> <?php endif ?> <?php if ($previous_page !== FALSE): ?> <a href="<?php echo $page->url($previous_page) ?>" rel="prev"><?php echo __('Previous') ?></a> <?php else: ?> <?php echo __('Previous') ?> <?php endif ?> <?php for ($i = 1; $i <= $total_pages; $i++): ?> <?php if ($i == $current_page): ?> <strong><?php echo $i ?></strong> <?php else: ?> <a href="<?php echo $page->url($i) ?>"><?php echo $i ?></a> <?php endif ?> <?php endfor ?> <?php if ($next_page !== FALSE): ?> <a href="<?php echo $page->url($next_page) ?>" rel="next"><?php echo __('Next') ?></a> <?php else: ?> <?php echo __('Next') ?> <?php endif ?> <?php if ($last_page !== FALSE): ?> <a href="<?php echo $page->url($last_page) ?>" rel="last"><?php echo __('Last') ?></a> <?php else: ?> <?php echo __('Last') ?> <?php endif ?> </p><!-- .pagination -->
里面还可以使用__(),实现I18N,呵呵. 里面涉及的变量,函数.最最上面有提示,自己看啦~