2012-07-24 80 views
2

我試圖整合phpgrid與我的codeigniter程序。整合phpgrid與codeigniter

我需要一些關於如何使用庫函數的說明。

我已經加入了phpgrid文件到應用程序/庫的路徑和我已加載使用$this->load->library('phpGrid');

下面是在phpgrid conf.php文件中的代碼libray。

<?php 
// mysql example 
define('DB_HOSTNAME','localhost'); // database host name 
define('DB_USERNAME', 'admin');  // database user name 
define('DB_PASSWORD', 'pop3'); // database password 
define('DB_NAME', xtra); // database name  
define('DB_TYPE', 'mysql'); // database type 
define('DB_CHARSET','utf8'); // ex: utf8(for mysql),AL32UTF8 (for oracle), leave blank to use the default charset 


define('SERVER_ROOT', '/grid'); 

/******** DO NOT MODIFY ***********/ 
require_once('phpGrid.php');  
/**********************************/ 
?> 

有人可以幫我我怎樣才能將定義和require_once文件引用到我的庫路徑?

或者是否有其他方法可以將phpgrid文件包含到我的CI項目中?

+2

你將不得不通過使用phpGrid類並使用'$ this-> load-> library('phpGrid')'來製作codeigniter庫,你可以在你的視圖中使用它。 – 2012-07-24 06:45:00

+0

@ArJinJain有點困難寫一個單獨的類,因爲文件被編碼:(我得到這個錯誤「消息:require_once(C:/ wamp/www /// grid/phpGrid.php)[function.require-once] :無法打開流:沒有這樣的文件或目錄「訪問頁面時。我認爲,如果我正確地參考了路徑,它將起作用。但不知道如何去做 – LiveEn 2012-07-24 06:56:47

+0

@LiveEn:你是否嘗試修改'require_once('phpGrid.php');'指向正確的位置? – 2012-07-24 16:18:11

回答

7

我剛剛看了一下PHPgrid源文件,看起來它們是加密的,所以你很少能夠完全「整合」Codeigniters MVC框架。

要使用這樣的外部庫工作,這裏就是我會一般做:

商店單獨的config.php文件(看起來像一個PHPgrid)定義在根目錄下的數據庫連接常量。

然後在你的Codeigniter config/database.php文件中需要這個,並使用常量來設置Codeigniter設置。因此,您的Codeigniter database.php將如下所示:

require_once('config.php'); 

$db['default']['hostname'] = DB_HOSTNAME; 

$db['default']['username'] = DB_USERNAME; 

$db['default']['password'] = DB_PASSWORD; 

$db['default']['database'] = DB_NAME; 

您不希望將數據庫連接詳細信息存儲在整個位置。

然後在你的phpgrid/conf.php文件的頂部添加config.php,並用相同的方法使用常量填充細節,顯然也要填寫其他phpgrid常量。

將所有PHPgrid文件放入應用程序/庫的子目錄中。現在,在您的應用程序/庫文件中創建一個新的文件,該文件被稱爲像ci_phpgrid.php並在其中創建一個新的類象下面這樣:

<?php 
require_once('phpgrid/conf.php'); 

class CI_phpgrid { 

    public function example_method($val = '') 
    { 
     $dg = new C_DataGrid("SELECT * FROM Orders", $val, "Orders"); 
     return $dg; 
    } 
} 

現在你可以使用這個用PHP電網進行溝通,離開原來的文件完好無損。

在你控制器,你只想做這樣的事情:

$this->load->library('ci_phpgrid'); 
$data['phpgrid'] = $this->ci_phpgrid->example_method(3) 

$this->load->view('home_page',$data); 

然後在視圖中可以使用顯示錶:

$phpgrid->display() 

正如我所說,我沒有用PHPgrid你需要包括所有相關的JS進行排序等,但這通常是你想要在CI中處理外部庫的方式。

+0

非常感謝!我不得不作出一些改變,然後它就像一個魅力 – LiveEn 2012-08-06 18:49:56

+1

找到它的官方教程:http://phpgrid.com/example/phpgrid-and-codeigniter-integration/ – KSchoniov 2015-07-13 05:26:44