這個做法是參考此篇「Using Zend Framework with CodeIgniter」修改而來的。
事實上外掛Zend的需要性可能比PEAR還要高,我之所以要外掛PEAR來做是因為CI的分頁類好像有問題@_@,索性就直接使用PEAR的分頁類了,而且PEAR的分頁類還有Jumping和Sliding不同模式可選用,在某些情況下,PEAR的彈性可能比較高。however...看你喜不喜歡多掛一個做同樣事情的library而已。
一、下載PEAR函式庫必要的「PEAR核心檔」即可,然後再下載所需的類別套件,以我為例就是「Pager套件」,最終的資料夾結構大概長這樣
二、將PEAR放到你的applicaiton/libraries/中,在application/libraries/中建立一個新檔,並命名為PEAR.php的類別檔(注意與applicaiton/libraries/PEAR底下的PEAR.php是不一樣的,不要混淆了),內容如下:
if (!defined('BASEPATH')) {exit('No direct script access allowed');}
class CI_PEAR
{
/**
* Constructor
*
* @param string $class class name
*/
function __construct($class = NULL)
{
// include path for PEAR library
// alter it accordingly if you have put the 'PEAR' folder elsewhere
ini_set('include_path',
ini_get('include_path') . PATH_SEPARATOR . APPPATH . 'libraries/PEAR');
if ($class)
{
require_once (string) $class . EXT;
log_message('debug', "PEAR Class $class Loaded");
}
else
{
log_message('debug', "PEAR Class Initialized");
}
}
/**
* PEAR Class Loader
*
* @param string $class class name
*/
function load($class)
{
require_once (string) $class . EXT;
log_message('debug', "PEAR Class $class Loaded");
}
}
三、在controllers中,你就可以這樣的使用
//注意,不必加上最後的.php
$this->pear->load('PEAR/Pager/Pager');
//設定分頁參數
$params = array(
'mode' => 'Jumping',
'perPage' => 3,
'delta' => 2,
'itemData' => array('a','b','c','d','e',[...omissis...],'z')
);
$pager = Pager::factory($params);
$data = $pager->getPageData();
$links = $pager->getLinks();
文章標籤
全站熱搜
