2012年4月25日 星期三

2012年4月23日 星期一

由區塊取得偏好設定

TAD老師:「在任何取不到特定模組資訊的地方(例如首頁或其他不在模組底下的頁面),只要實體化一個模組控制器,就能取得該模組資訊」
//--------   由區塊取得徧好設定  -----------------

global $xoopsDB, $xoopsUser;

// 得到指定模組 mid

$module_handler =& xoops_gethandler('module');

$xoopsModule =& $module_handler->getByDirname('tad_form');

$mid = $xoopsModule->getVar('mid');

// 取得該 mid 的模組參數

$config_handler = & xoops_gethandler('config');

$xoopsModuleConfig = & $config_handler->getConfigsByCat(0, $mid);

//----------------------------------------------------------------

$stop_level=$xoopsModuleConfig['cate_level'];

$csn=$options[2];

//----------------------------------------------------------------

2012年4月11日 星期三

XOOPS常用的靜態變數



// $Id:$
// _LANGCODE: zh_tw
// _CHARSET : UTF-8
define("_PLEASEWAIT","請稍候");
define("_FETCHING","載入頁面…");
define("_TAKINGBACK","返回原來頁面…");
define("_LOGOUT","登出");
define("_SUBJECT","標題");
define("_MESSAGEICON","文章圖示");
define("_COMMENTS","評論");
define("_POSTANON","匿名發表");
define("_DISABLESMILEY","關閉表情圖");
define("_DISABLEHTML","關閉HTML語法");
define("_PREVIEW","預覽");
define("_GO","確定");
define("_NESTED","巢狀顯示");
define("_NOCOMMENTS","尚無評論");
define("_FLAT","全部展開");
define("_THREADED","樹狀顯示");
define("_OLDESTFIRST","舊的在前");
define("_NEWESTFIRST","新的在前");
define("_MORE","更多…");
define("_MULTIPAGE","如果文章需要跨頁,請在段落間插入 [pagebreak] 代碼。");
define("_IFNOTRELOAD","如果頁面沒有自動跳轉,請 點擊此處 繼續");
// Error messages issued by XoopsObject::cleanVars()
define( "_XOBJ_ERR_REQUIRED", "%s 為必填項" );
define( "_XOBJ_ERR_SHORTERTHAN", "%s 必須少於 %d 字元。" );
//%%%%%% File Name themeuserpost.php %%%%%
define("_PROFILE","會員資料");
define("_POSTEDBY","作者");
define("_VISITWEBSITE","存取網站");
define("_SENDPMTO","傳送私人訊息給 %s");
define("_SENDEMAILTO","傳送電子郵件給 %s");
define("_ADD","新增");
define("_REPLY","回覆");
define("_DATE","日期");   // Posted date
//%%%%%% File Name admin_functions.php %%%%%
define("_MAIN","主選單");
define("_MANUAL","使用手冊");
define("_INFO","資訊");
define("_CPHOME","管理區首頁");
define("_YOURHOME","網站首頁");
//%%%%%% File Name misc.php (who's-online popup) %%%%%
define("_WHOSONLINE","線上資訊");
define('_GUESTS', '訪客');
define('_MEMBERS', '會員');
define("_ONLINEPHRASE","%s人線上");
define("_ONLINEPHRASEX","%s人在瀏覽%s");
define("_CLOSE","關閉");  // Close window
//%%%%%% File Name module.textsanitizer.php %%%%%
define("_QUOTEC","參照:");
//%%%%%% File Name admin.php %%%%%
define("_NOPERM","抱歉,您沒有權限造訪該區域。");
//%%%%% Common Phrases %%%%%
define("_NO","否");
define("_YES","是");
define("_EDIT","編輯");
define("_DELETE","刪除");
define("_SUBMIT","送出");
define("_MODULENOEXIST","所選模組不存在!");
define("_ALIGN","對齊方式");
define("_LEFT","靠左");
define("_CENTER","齊中");
define("_RIGHT","靠右");
define("_FORM_ENTER", "請輸入 %s");
define("_MUSTWABLE","檔案 %s 的屬性需設為可寫!");// %s represents file name
// Module info
define('_PREFERENCES', '系統基本設定');
define("_VERSION", "版本");
define("_DESCRIPTION", "說明");
define("_AUTHOR", "作者");
define("_CREDITS", "Credits");
define("_LICENCE", "許可通訊協定");
define("_ERRORS", "錯誤");
define("_NONE", "無");
define('_ON','於');
define('_READS','次閱讀');
define('_WELCOMETO','歡迎存取 %s');
define('_SEARCH','搜尋');
define('_ALL', '全部');
define('_TITLE', '標題');
define('_OPTIONS', '選項');
define('_QUOTE', '引用');
define('_LIST', '清單');
define('_LOGIN','會員登入');
define('_USERNAME','帳號:');
define('_PASSWORD','密碼:');
define("_SELECT","選擇");
define("_IMAGE","圖片");
define("_SEND","傳送");
define("_CANCEL","取消");
define("_ASCENDING","升冪排列");
define("_DESCENDING","降冪排列");
define('_BACK', '返回');
define('_NOTITLE', '無標題');
/**
* Image manager
*/
define("_MD_ADDIMGCAT","新增分類");
define("_MD_IMGCATNAME","分類名稱");
define("_MD_IMGCATRGRP","選擇可使用此圖片管理的群組");
define("_MD_IMGCATWGRP","選擇可上傳圖片的群組");
define("_MD_IMGCATWEIGHT","在圖片管理中顯示順序");
define("_MD_IMGCATDISPLAY","顯示");
define("_MD_IMGCATSTRTYPE","圖片會上傳至:");
define("_MD_STRTYOPENG","選定後日後將無法更動!");
define("_MD_ASFILE","存為檔案(置於 uploads 目錄下)《建議!》");
define("_MD_INDB","存到資料庫(存為 \"blob\" 資料)");
define ("_MD_IMGMAIN","分類");
define ("_MD_EDITIMGCAT", "圖片設定");
define('_IMGMANAGER','圖片管理');
define('_NUMIMAGES', '%s 張圖片');
define('_ADDIMAGE','新增圖片');
define('_IMAGENAME','名稱');
define('_IMGMAXSIZE','最大檔案(位元組):');
define('_IMGMAXWIDTH','最大寬度(像素):');
define('_IMGMAXHEIGHT','最大高度(像素):');
define('_IMAGECAT','類別:');
define('_IMAGEFILE','圖片');
define('_IMGWEIGHT','顯示順序:');
define('_IMGDISPLAY','顯示此圖片?');
define('_IMAGEMIME','MIME格式:');
define('_FAILFETCHIMG', '檔案 %s 無法上傳。');
define('_FAILSAVEIMG', '檔案 %s 無法儲存。');
define('_NOCACHE', '不使用快取');
define('_CLONE', '複製');
// %%%%%    For xoopsform files %%%%%
define("_STARTSWITH", "起始");
define("_ENDSWITH", "結束");
define("_MATCHES", "符合");
define("_CONTAINS", "包括");
define('_REQUIRED', '要求回覆');
//%%%%%% File Name commentform.php %%%%%
define("_REGISTER","註冊新帳號");
//%%%%%% File Name xoopscodes.php %%%%%
define("_SIZE","大小");  // font size
define("_FONT","字型");  // font family
define("_COLOR","色彩");  // font color
define("_EXAMPLE","範例");
define("_ENTERURL","輸入連結網址:");
define("_ENTERWEBTITLE","輸入網站名稱:");
define("_ENTERIMGURL","輸入圖片網址");
define("_ENTERIMGPOS","輸入圖片位置");
define("_IMGPOSRORL","'R'或'r'為右,'L'或'l'為左邊,或空白。");
define("_ERRORIMGPOS","錯誤!請輸入圖片位置。");
define("_ENTEREMAIL","輸入電子郵件地址");
define("_ENTERCODE","輸入代碼內容");
define("_ENTERQUOTE","輸入引用內容");
define("_ENTERTEXTBOX","輸入文字內容");
define("_ALLOWEDCHAR","最大字元長度:");
define("_CURRCHAR","目前字元長度:");
define("_PLZCOMPLETE","請填寫主題和內容。");
define("_MESSAGETOOLONG","內容太長");
//%%%%% TIME FORMAT SETTINGS   %%%%%
define('_SECOND', '1秒');
define('_SECONDS', '%s秒');
define('_MINUTE', '1分鐘');
define('_MINUTES', '%s分鐘');
define('_HOUR', '1小時');
define('_HOURS', '%s小時');
define('_DAY', '1天');
define('_DAYS', '%s天');
define('_WEEK', '1週');
define('_MONTH', '1月');
define("_DATESTRING","Y年m月d日 H:i:s");
define("_MEDIUMDATESTRING","m月d日 H:i");
define("_SHORTDATESTRING","m月d日");
/*
The following characters are recognized in the format string:
a - "am" or "pm"
A - "AM" or "PM"
d - day of the month, 2 digits with leading zeros; i.e. "01" to "31"
D - day of the week, textual, 3 letters; i.e. "Fri"
F - month, textual, long; i.e. "January"
h - hour, 12-hour format; i.e. "01" to "12"
H - hour, 24-hour format; i.e. "00" to "23"
g - hour, 12-hour format without leading zeros; i.e. "1" to "12"
G - hour, 24-hour format without leading zeros; i.e. "0" to "23"
i - minutes; i.e. "00" to "59"
j - day of the month without leading zeros; i.e. "1" to "31"
l (lowercase 'L') - day of the week, textual, long; i.e. "Friday"
L - boolean for whether it is a leap year; i.e. "0" or "1"
m - month; i.e. "01" to "12"
n - month without leading zeros; i.e. "1" to "12"
M - month, textual, 3 letters; i.e. "Jan"
s - seconds; i.e. "00" to "59"
S - English ordinal suffix, textual, 2 characters; i.e. "th", "nd"
t - number of days in the given month; i.e. "28" to "31"
T - Timezone setting of this machine; i.e. "MDT"
U - seconds since the epoch
w - day of the week, numeric, i.e. "0" (Sunday) to "6" (Saturday)
Y - year, 4 digits; i.e. "1999"
y - year, 2 digits; i.e. "99"
z - day of the year; i.e. "0" to "365"
Z - timezone offset in seconds (i.e. "-43200" to "43200")
*/
//%%%%% LANGUAGE SPECIFIC SETTINGS   %%%%%
//define('_CHARSET', 'UTF-8');
//define('_LANGCODE', 'zh-TW');
define('_CHARSET', empty($xlanguage["charset"])?'UTF-8':$xlanguage["charset"]);
define('_LANGCODE', empty($xlanguage["code"])?'zh-TW':$xlanguage["code"]);
$xlanguage['charset_base'] = "utf8";
// change 0 to 1 if this language is a multi-bytes language
define("XOOPS_USE_MULTIBYTES", "1");
/**
* Additions to 2.4.0
**/
//define('_RESET', 'Reset');
define('_RESET', '重設');
define('_RE', 'Re:');
?>

2012年3月30日 星期五

複選回復原始資料函數


//單選回復原始資料函數
//複選回復原始資料函數
if(!function_exists('chk2')){
  function chk2($default_array="",$NEED_V="",$default=0){
   if(in_array($NEED_V,$default_array)){
    return "checked";
   }elseif(empty($default_array) && $default=='1'){
    return "checked";
   }

   return "";
  }
}

1

單選回復原始資料函數(tad_tools)

( 資料庫值,選項值,預設值(1為是),selected)

//單選回復原始資料函數
if(!function_exists('chk')){
  function chk($DBV=null,$NEED_V="",$defaul="",$return="checked='checked'"){
   if($DBV==$NEED_V){
    return $return;
   }elseif(empty($DBV) && $defaul=='1'){
    return $return;
   }
   return "";
  }
}

連結自:http://www.php5.idv.tw/documents/mou/string/explode.html
explode
(PHP3 , PHP4)
explode ---  切開字串
語法 : array explode (string separator, string string [, int limit])
說明 : 
傳回一個字串的陣列,以參數 separator為界線將參數 string切開,如果有設定參數 limit,則傳回的陣列最多將會包含 limit個元素,而最後一個元素將會包含 string全部剩餘的部份。
Example :

   $pizza = "piece1 piece2 piece3 piece4 piece5 piece6"; 
   $pieces = explode (" ", $pizza);
?>
參考 : split( )  implode( )



################################################################################
#  name: get_city_option($DBV)
#  用途:得到地址選項
#  變數:$DBV
#  回傳:
#
################################################################################
function get_city_option($DBV=""){
  global $xoopsModuleConfig;
  $citys = explode (";", $xoopsModuleConfig['form_city']);//將字串分割成陣列
  $main="";
  foreach($citys as $city){
    $main.="
  }
  return $main;
}

2012年3月26日 星期一

用一張背景圖,製作按鈕的效果

Html碼

  


2012年3月24日 星期六

以 PHP 讀取 Excel 檔案的資料

使用class:PHP-ExcelReader

  1. 軟體下載
  2. reader.php 中的下面這行要修改
    將 require_once 'Spreadsheet/Excel/Reader/OLERead.php';
    改為 require_once 'oleread.inc';
  3. example.php 中 修改
     $data->setOutputEncoding('CP1251');
    為 $data->setOutputEncoding('CP950');
    資料庫:
    $data->setOutputEncoding('utf-8');  //設定輸出的編碼,可直接選擇輸出為UTF8編碼
    不然中文會有問題。

2012年3月23日 星期五

FCK專用CSS語法-table

連結:http://sillybean.net/css/seaglass.css  http://icant.co.uk/csstablegallery/tables/29.php


FCK專用CSS語法

Css



Html


title

  1. List_1
  2. List_2
  3. List_3
  4. List_4

屬性


每一個屬性在以下會有詳細地介紹:

list-style-type

list-style-type 屬性是用來設定在清單中,每一條之前的記號要用什麼。最常見的 list-style-type 設定值為:

none (沒有)
disc (全黑圓圈)
circle (空心圓圈)
square (正方形)
One may also wish to use ordered character sets. Common ones are:

upper-latin (大寫拉丁文)
lower-latin (小寫拉丁文)
upper-roman (大寫羅馬文)
lower-roman (小寫羅馬文)
upper-alpha (大寫希臘文 )
lower-alpha (小寫希臘文 )

list-style-type屬性(連結來源:http://www.chou-it.com/info/dictionary/web/css/list.html)

繼承屬性,設定項目符號的形狀。同時指定項目符號的形狀和圖像時,圖像優先被顯示,當圖像無法顯事時才會顯示符號。在CSS1的規格有9種,CSS2的規格有12種。
  • ○Win IE
  • ○Firefox
  • ○Opera
  • ○Safari
  • ○MC IE
屬性適用元素屬性值說明
list-style-type表單元素(li元素)none --以下CSS1規格-- disc circle square decimal lower-roman upper-roman lower-alpha upper-alpha --以下CSS2規格-- decimal-leading-zero hebrew armenian georgian cjk-ideographic hiragana katakana hiragana-iroha katakana-iroha lower-latin upper-latin lower-greek  inherit→ 無項目符號 --以下CSS1規格-- → 點 → 圓圈 → 方塊 → 數字(1,2,3...) → 小寫羅馬數字(i,ii,iii...) → 大寫羅馬數字(I,II,III...) → 英文小寫(a,b,c...) → 英文大寫(A,B,C...) --以下CSS2追加的規格-- → 數字前加"0"(01,02,03...) → hebrew 數字 → armenian數字 → georgian數字 → 漢字數字(一,二,三...) → 平假名(あ,い,う...) → 片假名(ア,イ,ウ...) → 平假名いろは(い,ろ,は...) → 片假名イロハ(イ,ロ,ハ...) → 小寫羅馬數字(i,ii,iii...) → 大寫羅馬數字(I,II,III...) → 希臘文字(α, β, γ...) → 強制繼承上層元素的屬性值
 
.disc {list-style-position:inside;list-style-type:disc;}
.circle { list-style-position:inside;list-style-type:circle;}
.square { list-style-position:inside;list-style-type:square;}
.decimal{ list-style-position:inside;list-style-type:decimal;}
.lower-roma{ list-style-position:inside;list-style-type:lower-roma;}
.upper-roman{ list-style-position:inside;list-style-type:upper-roman;}
.lower-alpha{ list-style-position:inside;list-style-type:lower-alpha;}
.upper-alpha{ list-style-position:inside;list-style-type:upper-alpha;}
output
  • disc
  • circle
  • square
  • decimal
  • lower-roma
  • upper-roman
  • lower-alpha
  • upper-alpha

Blogger加掛SyntaxHighlighter,顯示漂亮的彩色程式碼

文章來源:http://blog.lyhdev.com/2010/09/bloggersyntaxhighlighter.html

範例:





  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6

Syntax Highlighting是一種讓程式碼更容易閱讀的方法,透過不同色彩及字體的標示,讓閱讀者更容易分辨變數、保留字、函式等關鍵字。

以PHP來說,最常用的Syntax Highlighting工具就是老牌的GeSHi,它支援的程式語言種類之多,讓人冒出驚嘆號!而且直到最近它一直都有在維護、改良,我在一個星期前發現它新版不能正確解析Scheme程式語言的程式碼,把bug提交給GeSHi開發者的Issue Tracker,結果很快就釋出改正的新版本。

然而GeSHi需要在伺服器端做處理,如果是自己架設的部落格,要整合GeSHi並不難,而且通常都有現成的外掛可用。

但是以Blogger這種放別人家的網誌服務,就沒辦法用簡單的方法整合GeSHi。

幸好有syntaxhighlighter的出現,僅靠瀏覽器端執行的JavaScript就可以達到相同效果。

最新的syntaxhighlighter版本已經移到這裡「SyntaxHighlighter  3.0.83」,目前仍有在持續維護。雖然支援的程式語言種類沒有GeSHi那樣包山包海,但對於常見的程式語言來說(如下列表),已經相當夠用了。
AS3, Bash, ColdFusion, CSharp, Cpp, Css, Delphi, Diff, Erlang, Groovy, JScript, Java, JavaFX, Perl, Php, Plain, PowerShell, Python, Ruby, Scala, Sql, Vb, Xml 

使用SyntaxHighlighter對網頁的SEO也是有幫助的,因為程式碼在HTML原始碼中是完整的呈現,像Pastebin.com用JavaScript的方式內嵌,實際網頁原始碼根本沒有包含程式碼;同時,在最後輸出給瀏覽器的HTML中,
...
之間是原始的程式碼文字,並不會被加入額外的HTML標籤。所以瀏覽者在搜尋時,關鍵字若出現在網誌提供的程式碼中,文章就會更有機會被找到。

讓人興奮的是,SyntaxHighlighter有提供公開的Hosted Version,這意味著純粹使用Blogger寫網誌,而沒有申請其他檔案寄存服務的使用者,並不用再麻煩地去註冊一個空間來放所需的檔案,也不必偷偷使用別人的連結。設定的步驟相當簡單,請參考以下設定步驟。

SyntaxHighlighter預設已有不錯的行號顯示:


在Blogger的後台,打開「設計」、「修改HTML」。

先找到標籤,在此標籤前加入以下代碼。




完成修改後,儲存。

接著在編輯網誌文章時,使用「修改HTML」模式,使用
標籤來呈現程式碼,而class屬性則設為「brush: 程式語言代碼」,程式語言代碼請參考在文章開頭的SyntaxHighlighter已支援程式語言列表。
println 'Hello World'
println 1 + 2 + 3
另一個議題是,當我們要放的程式碼文字,包含了HTML的特殊字元,例如大於>、小於<等,這時候就需要用HTML編碼工具先轉換好,否則Blogger會認為文章包含不合法的HTML標籤。 如果您使用的瀏覽器剛好是先進的Firefox,可以參考我們先前發表過的Blogger HTML Encode文章,使用我們開發的Greasemonkey Script即可以輕鬆解決這個問題。