[981]PHP入門+XOOPS模組設計

17. 多國語系與圖形驗證

一、語系基本概念

1.XOOPS有哪些語系,完全取決於language底下有多少種語系資料夾。
2.模組內,也可以提供各種國家的語系,語系檔放在「模組目錄/language」中。
3.一般而言語系檔會按照用途放在不同檔案,檔名不可亂改,一共有以下幾種:

000.PNG

4.「常數開頭」並沒有強制性,只是一種建議。
5.若是模組中有用到通知功能的時候,language底下會多出一個mail_template資料夾用來放郵寄內容的樣板。

二、加入語系常數的方法

1.常數可用define()來定義,例如:define("_MI_CONTACT_TITLE","標題:");
2.常數通常會以「_」作為開頭,並用「大寫英文」,以茲辨識。

三、加入語系常數的方法

1.PHP常數要插入字串中,不能直接放進去(不然程式會搞不清楚是字串還是常數),其方法如下:
2.原來字串→$aa="My name is Tad。";
3.套入常數→$aa="My name is " . _NAME . "。";

四、常數與變數結合的方法

1.可用sprintf()來結合常數與變數,常數名稱可用「%s」來代表變數,一個常數中可以有多個「%s」,依位置來對應變數,例如:


define("_MD_CONTACT_NOTE","通訊錄共有%s筆資料,男性%s筆,女性%s");
echo "目前狀態:".sprintf(_MD_CONTACT_NOTE,$total,$male,$female);

2.sprintf()的格式如下:
(1) %d - 將參數看待成整數,而且結果為十進位的數值
(2) %f - 將參數看待成浮點數,而且結果為浮點數
(3) %s – 將參數和結果都看待成字串

五、加入圖形驗證

1.此功能2.3.x才有,在表單中可用下列語法,產生驗證圖形:
include_once XOOPS_ROOT_PATH."/class/xoopsformloader.php";
$XoopsFormCaptcha=new XoopsFormCaptcha('','',false);
$Captcha=$XoopsFormCaptcha->render();
echo $Captcha;

2.送出表單後,要檢查驗證的方法:

xoops_load('captcha');
$xoopsCaptcha = XoopsCaptcha::getInstance();
if(!$xoopsCaptcha->verify()) {
    redirect_header($_SERVER['PHP_SELF'], 5, $xoopsCaptcha->getMessage());
}