2012年9月13日 星期四

我的CI模組

1. http://www.codeigniter.org.tw/  下載最新CI
2. https://github.com/Vheissu/Ci-Smarty 下載最新ci-smarty ,直接解壓縮到CI application目錄下
3. http://www.codeigniter.org.tw/user_guide/general/urls.html 設定ci url-rewrite (把index.php 拿掉),
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|images|robots\.txt|$)
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
index.php、images、robots.txt 的全部 HTTP request 都會被當成是 request index.php 檔案。 )
如果目錄是 http://localhost/justin/amp/index.php/smartytest RewriteBase 要設定 /justin/amp/
4. http://rental.zhupiter.com/postshow_178_1_1.html 打開本機 apache - url-rewrite ( 我電腦是 win 7 - appserv )
4-1 先確定自己的 Apache web server 有設定成支援 ReWrite。
   動態載入 ReWrite engine 的設定下會在 httpd.conf 中看到這一行『LoadModule rewrite_module modules/mod_rewrite.so』。4-2 在 DocumentRoot 所屬的 Directory 設定內設定 ReWrite 參數。
RewriteEngine On
4-3 因為我設定 virualhost 所以也要到 D:\AppServ\Apache2.2\conf\extra\httpd-vhosts.conf 修改設定


<VirtualHost *:80>
    DocumentRoot "D:\AppServ\www"
    ServerName localhost      
    <Directory "D:\AppServ\www">
        Options FollowSymLinks Indexes
        AllowOverride All
        Order allow,deny
        Allow from all
    RewriteEngine On
    </Directory>
</VirtualHost>
4-4 設定完 apache 後 去 win 7的 "服務" 重新啟動apache.
4-5 如果主機不支援url-rewrite或url-rewrite有問題且無法設定apache , 啟動CI的Query Strings
http://www.codeigniter.org.tw/user_guide/general/urls.html

CodeIgniter 也有提供這個功能,可以到 application/config.php 檔案中開啟底下的設定:
$config['enable_query_strings'] = FALSE;
$config['controller_trigger'] = 'c';
$config['function_trigger'] = 'm';
只要把 "enable_query_strings" 設定為 TRUE,這個功能就會啟動。
index.php?c=controller&m=method

設定encryption_key以啟動session功能
$config['encryption_key'] = 'xxx';

5. 在application\libraries\Smarty.php 中設定左分隔符和右分隔符

$this->left_delimiter = '{{';
$this->right_delimiter = '}}';

6. 在 application\config\smarty.php 調整smarty cache
$config['cache_status']         = TRUE;
設為FALSE 讓開發時不使用cache

7. application\config\autoload.php 設定
$autoload['helper'] = array('url'); 
讓前端能直接使用 {{base_url()}} 抓網站網址
$autoload['libraries'] = array('parser','database','session');
自動載入smarty、db、session 功能

8. 在linux主機上要把cache資料夾改權限
ex. $ chmod 777 -R cache

出現錯誤Only variable references should be returned by reference:
A PHP Error was encountered
Severity: Notice
Message: Only variable references should be returned by reference
Filename: core/Common.php
Line Number: 257
https://ellislab.com/forums/viewthread/244510/
解法:

return $_config[0] =& $config;
改成
$_config[0] =& $config;
return $_config[0];

沒有留言:

張貼留言