2015-12-13 / JSN / 0 Comments / 679 次瀏覽
Codeigniter 本身有支援多國語言的切換。例如
$this->lang->load('讀取語言分類的檔案名稱', '語言');
echo $this->lang->line('辨識鍵');
這樣是不是有點難懂又麻煩?如果我要顯示『正體中文』底下『選單檔案』中的『Hello』為 『哈囉,你好!』,我們要這麼寫
$this->lang->load('menu', 'chinese_zh');
echo $this->lang->line('hello');
如果你想要直覺一點的話,想要這麼用
正體中文->選單檔案->hello
那就使用我擴充的涵式庫 Translg 啦!你就可以直接這麼使用
$translg = new Translg();
echo $Translg->chinese_zh->menu->hello; //顯示 哈囉,你好!
echo $Translg->english->menu->hello; //顯示 Hello World
目前可以透過套件管理器 Composer 下載,也可以直接去 Github 下載。其他教學方式也都放在 Github 喔!
2013-07-04 / JSN / 0 Comments / 493 次瀏覽
看官方文件,原本以為application/core/只能這麼使用
****application/core/MY_Controller.php****
class MY_Controller extends CI_Controller
{
function __construct()
{
parent::__construct();
}
}
可是很多時候我們需要多做點分離的動作
任何地方:session開啟
前端:過濾XSS攻擊
後端:不過濾POST、GET的XSS或是認證使用者是否登入
這時候通通都實做在MY_Controller 未免太雜亂。
所以實驗了一下其實有另外一種寫法,是codeigniter 上面沒提到的。
============================================================================
****application/core/MY_Controller.php****
<?
/*
* 雖然文件名稱為MY_Controller.php,但是實際上裡面所寫的class名稱可以不必對應 MY_Controller
* 但我們還是依照規定,把共用的class取名MY_Controller
*
* class 架構是這樣
* [MY_Controller] 共用
* --[MY_BE_Controller] 後端使用
* --[MY_FE_Controller] 前端使用
*
*
*/
//共同使用的程序
class MY_Controller extends CI_Controller
{
function __construct()
{
parent::__construct();
//無論何處都要執行的請寫在這邊,例如開啟session
echo "目前使用MY_Controller<br>";
}
}
class MY_BE_Controller extends MY_Controller
{
function __construct()
{
parent::__construct();
//僅供後端使用的程序,例如認證使用者登入狀態
echo "目前使用MY_BE_Controller<br>";
}
}
class MY_FE_Controller extends MY_Controller
{
function __construct()
{
parent::__construct();
//僅供前端使用的程序, 例如過濾POST、GET
echo "目前使用MY_FE_Controller<br>";
}
}
?>
接著實驗看看:
(A)
****application/controllers/web.php****
class Web extends MY_BE_Controller
{
function __construct()
{
parent::__construct();
}
public function index()
{
}
}
/*
會得到:
目前使用MY_Controller
目前使用MY_BE_Controller
*/
(B)
****application/controllers/web.php****
class Web extends MY_FE_Controller
{
function __construct()
{
parent::__construct();
}
public function index()
{
}
}
/*
會得到:
目前使用MY_Controller
目前使用MY_FE_Controller
*/
這樣一來,前後端各自需要執行的整體程序,就不會通通擠在一起了!
2013-06-27 / JSN / 0 Comments / 37 次瀏覽
使用pagination class的時候
若沒有使用參數 $config[‘num_tag_open’] 與 $config[‘num_tag_close’]
會造成輸出的字串有空白( )字元佔位…..
導致分頁數字無法完美對齊。
如:
<div class="pagination_list">
<a href="http://">1</a>
<span class="current">2</span>
<a href="http://">3</a>
<a href="http://">4</a>
</div>
所以指定num_tag_open與num_tag_close隨便的標籤即可解決。
/* 自訂分頁數字連結 */
$config['num_tag_open'] = '<span>';
$config['num_tag_close'] = '</span>';
2013-05-28 / JSN / 0 Comments / 1,005 次瀏覽
在config/database.php設定如下
$active_group = 'default';
$active_record = TRUE;
$db['default']['hostname'] = 'mysql:host=localhost'; //如果使用dbdriver使用mysql或mysqli就填寫localhost即可。使用PDO寫法較不一樣。
$db['default']['username'] = '資料庫使用者名稱';
$db['default']['password'] = '資料庫使用者密碼';
$db['default']['database'] = '資料庫名稱';
$db['default']['dbdriver'] = 'pdo'; //使用PDO
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
比較須要注意的就是
$db[‘default’][‘hostname’]
$db[‘default’][‘dbdriver’]
的地方~
2013-05-04 / JSN / 0 Comments / 568 次瀏覽
找出你程式碼連接資料庫(像我是連MySQL)的程式碼
若寫的是localhost,替換成127.0.0.1即可