2013年1月30日 星期三

模組的偏好設定陣列值 ( $xoopsModuleConfig ) 應用在通用區塊


模組的偏好設定陣列值 $xoopsModuleConfig 需要應用在通用區塊時..
需要知道模組 mid 才能取得正確對應的 $xoopsModuleConfig 陣列值
在通用區塊的使用下會自動抓取目前所在的模組 mid
因此通用區塊中使用時,為避免模組mid錯誤,應該這樣寫

function b_data_show() {
        global $xoopsDB, $xoopsUser;
        // 指定模組名稱,取得指定模組 mid
        $module_handler =& xoops_gethandler('module');
        $xoopsModule =& $module_handler->getByDirname('
module_name');
        $mid = $xoopsModule->getVar('mid');
        // 取得該 mid 的模組參數
        $config_handler = & xoops_gethandler('config');
        $xoopsModuleConfig = & $config_handler->getConfigsByCat(0, $mid);
        return print_r( $xoopsModuleConfig );
}

2013年1月23日 星期三

PHP 字串處理 及 常規表示式

trim(); //去頭尾空白。
ltrim(); //只去除頭部(左方)空白。
rtrim(); //只去除尾部(右方)空白。
chop(); //
只去除尾部(右方)空白,同rtrim()

strtoupper(); //字串全部轉大寫。
strtolower(); //字串全部轉小寫。
ucfirst(); //字串首字轉大寫,不會排除空白歐,也就是說如果第一個字是空白,就等於沒有效果了。
ucwords(); //字串中每個字的字首轉大寫 ( 會將段落中 空白 及 \n 斷行後的首單字變成大寫,如果是自己用br或p標籤斷行則無作用 )。

nl2br(); //將 \n 改成換行
print(); //同作用同echo,但print是函式,傳回布林值。
printf(); //格式化字串,傳回整數。

sprintf(); //格式化字串。
轉換規格%[顯示寬度][-][][.小數位數]型別:有-代表向左靠齊,沒-代表向右。
%b:將變數解釋為整數,並以二進位顯示。
%c:將變數解釋為整數,並以字元顯示。
%d:將變數解釋為整數,並以十進位顯示。
%f:將變數解釋為浮點數,並以浮點數顯示。
%o:將變數解釋為整數,並以八進位顯示。
%s:將變數解釋為字串,並以字串顯示。
%x:將變數解釋為整數,並以十六進位顯示,用a-f。
%X:將變數解釋為整數,並以十六進位顯示,用A-F。

addSlashes(); //若有反斜時,加上Slash,讓輸入字串若含特殊字元時,加上逸出字元\,以免存入資料庫時衝碼。Q3上引數為變數時,做完此運算立刻存回此變數,導致變數值改變;較新的版本,引數為變數時,做完此運算不會導致變數值改變。
mysql_escape_string與addslashes的區別在於:

mysql_escape_string總是將「'」轉換成「\'」 

而addslashes 
如果magic_quotes_sybase=on 時是將「'」轉換成「''」 
如果magic_quotes_sybase=off 時是將「'」轉換成「\'」

atripSlashes();
//若有反斜時,去掉Slash,使資料庫取出資料還原。Q3上引數為變數時,做完此運算立刻存回此變數,導致變數值改變;較新的版本,引數為變數時,做完此運算不會導致變數值改變。

strtok(字串,」分隔字元」); //擷取字串的前面到分字元為止。

substr(字串,開始字元,長度);
//擷取子字串,第一字元算0;開始字元為負,為字串尾減該數,即字尾算1倒數該數之字元。長度省略則取到字尾;長度為負則取到字尾倒數該數之字元。

strcmp(字串1,字串2);
//比較兩字串,相等為0,正為字串一ASC碼大,負數為字串二ASC碼大。

strcasecmp(字串1,字串2);
//同上,但不分大小寫。
strlen();:字串長度。
strstr(字串,欲找之子字串); //找到傳回子字串「第一次」出現以後之剩餘字串,找不到傳回「假」。
strchr(字串,欲找之子字串);://同上。
stristr(字串,欲找之子字串);://同上,但不分大小寫。
strrchr(字串,欲找之子字串); //找到傳回子字串「最後一次」出現以後之剩餘字串,找不到傳回「假」。
strpos(字串,欲找之子字串,指定蒐尋之起始位置); //找到傳回子字串「第一次」出現的位置,找不到傳回「假」。字串首位置算0,省略蒐尋起點時,從字串首開始找。但是「假」傳回值是0,字首位置傳回值也是0,會混淆。可以用if(傳回值===fasle)測,如果成立傳回值代表「假」,如果不成立傳回值代表位置0。

strrpos(字串,欲找之子字串,指定蒐尋之起始位置);
//找到傳回「子字串字首字元」「最後一次」出現的位置,找不到傳回「假」。字串首位置算0,省略蒐尋起點時,從字串首開始找。

str_replace(蒐尋字串,代換字串,字串堆);
//在字串堆中找到「蒐尋字串」並用「代換字串」換掉它們。

substr_replace(字串堆,代換字串,起點,長度);
//在字串堆指定的起點及長度,用代換字串換掉它們。起點為0或正,由字串堆頭起算;起點為負,由字串堆尾起算。長度未指定,則換到字串堆尾;長度為0,則插入原字串;長度為正,則取代幾個字串數;長度為負,則自尾端開如取代,停於長度。

2013年1月17日 星期四

使用CSS來製作元素、圖片、文字的陰影

 請注意:以下測試皆為使用Chrome瀏覽器記錄顯示結果,並非所有瀏覽器皆有支援。

box-shadow 屬性:
先來看一下使用後的美圖。


達到此陰影效果部分的CSS語法:
box-shadow: 5px 5px 10px #000;

解說:
第一個值 5px 指的是X的偏移量,正值的話陰影會出現在元素的右邊,負值的話,會出現在左邊。
第二個值 5px 指的是Y的偏移量,正值的話陰影會出現在元素的下面,負值的話,會出現在上面。
第三個值是非必須的,但是如果沒有值的話,是不會有模糊的效果的,這個值是模糊的強度值
最後的是陰影顏色,可用16進位數值的表示方式,或是RGB數值顏色名稱。

text-shadow 屬性:
一樣先來看一下使用後的美圖。








達到此陰影效果部分的CSS語法:
text-shadow: 5px 5px 10px #000;

使用方法....沒錯..就是跟 box-shadow 都一樣,就不重複介紹嚕。

2013年1月13日 星期日

CSS指定滑鼠指標的語法:cursor

將滑鼠移到該語法,即可見到指標圖示效果哦!

cursor: pointer;
cursor: no-drop;
cursor: progress;
cursor: help;
cursor: wait;
cursor: text;
cursor: crosshair;
cursor: move;
cursor: not-allowed;
cursor: no-vertical-text;
cursor: all-scroll;
cursor: col-resize;
cursor: row-resize;
cursor: e-resize;
cursor: n-resize;
cursor: ne-resize;
cursor: nw-resize;
cursor: s-resize;
cursor: se-resize;
cursor: sw-resize;
cursor: w-resize;

xoops資料輸出處理及驗證

//替特殊符號加入脫逸符號,再存入資料庫
$myts =& MyTextSanitizer::getInstance();
$_POST['value']=$myts->addSlashes($_POST['value']);

//過濾不雅文字
$_POST['value']=$myts->censorString($_POST['value']);

//大量文字
$myts->htmlSpecialChars($text$quote_style=ENT_QUOTES,$charset'ISO-8859-1'$double_encode=true)


1.「$text」就是要被處理之後呈現的文字。
2.「$html」是否允許使用HTML語法,用所見即所得編輯器製作出來的請填1。
3.「$smiley」是否轉換表情圖,預設為1,會將:) 這類的符號轉換為圖片。
4.「$xcode」是否使用BBCode,如:[color=red]文字[/color]。
5.「$image」是否允許在文字中使用圖片。若為0,圖片會以連結來顯示。
6.「$br」是否要將「\n」換行符轉換為<br />,用所見即所得編輯器者請設為0。

//一般文字
$myts->htmlSpecialChars($text$quote_style=ENT_QUOTES,$charset'ISO-8859-1'$double_encode=true)


1.「$text」就是要被處理之後呈現的文字。
2.「$quote_style」要處理的引號模式,「ENT_COMPAT」僅處理雙引號;「ENT_QUOTES」處理雙引號和單引號(預設);「ENT_NOQUOTES」不對任何引號進行處理。
3.「$charset」轉換的預設編碼,通常使用預設值即可。
4.「$double_encode」只有PHP 5.2.3之後才有效。若設為false,則不對現有的HTML實體做編碼的動作。

//驗證

$XoopsFormHiddenToken=new XoopsFormHiddenToken();
$token $XoopsFormHiddenToken->render();

if(!$GLOBALS['xoopsSecurity']->check()){
    $error=implode("<br />" $GLOBALS['xoopsSecurity']->getErrors());
    redirect_header($_SERVER['PHP_SELF'],3, $error);
}