Kohana之分页使用

实现了__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,呵呵.
里面涉及的变量,函数.最最上面有提示,自己看啦~
 
原文地址:https://www.cnblogs.com/liushannet/p/1805178.html