這個做法是參考此篇「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();

低溫烘培 發表在 痞客邦 PIXNET 留言(0) 人氣()