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即可以輕鬆解決這個問題。 

2012年3月19日 星期一

XOOPS的時間函數運用

參考連結:http://www.mysuc.com/test/My97DatePicker/
  1.  post_date由於沒有出現在顯示畫面,所以存入資料庫用
    「strtotime("now")」
    當要做比較時,由於「 start_date 」、「 end_date 」存入資料庫已轉換為「主機時間」
    故語法為:
    $checkday=date("Y-m-d H:i:s" , strtotime("now")); //這個是主機時間
    $sql = "select * from ".$xoopsDB->prefix("資料表")." where enable='1' and start_date < '{$checkday}'  and end_date > '{$checkday}'";
  2. 存入資料庫:
    $start_date=date("Y-m-d H:i:00",userTimeToServerTime(strtotime($_POST['start_date'])));
    $end_date=date("Y-m-d H:i:00",userTimeToServerTime(strtotime($_POST['end_date'])));
    資料庫型態為「 datetime 」
      # 處理時間(日期->時間戳記)
      $_POST['start_date']=userTimeToServerTime(strtotime($_POST['start_date']));
      $_POST['end_date']=userTimeToServerTime(strtotime($_POST['end_date']));
  3. 從資料庫撈出:
    $start_date=(!isset($DBV['start_date']))?date("Y-m-d H:i:00"):$DBV['start_date'];
    $end_date=(!isset($DBV['end_date']))?date("Y-m-d H:i:00",strtotime("+7 days")):$DBV['end_date'];
    $start_date=date("Y-m-d H:i:00",xoops_getUserTimestamp(strtotime($start_date)));
    $end_date=date("Y-m-d H:i:00",xoops_getUserTimestamp(strtotime($end_date)));
    # -------- 處理時間(時間戳記->日期格式) -------------------------------------
    $start_date=date("Y-m-d",xoops_getUserTimestamp($start_date));
    $end_date=date("Y-m-d",xoops_getUserTimestamp($end_date));
    # ---------------------------------------------------------------------------

  4. 運用:
    資料庫型態為「 datetime 」
    $today=xoops_getUserTimestamp(time()); //轉成時間戳記

    $start_date=xoops_getUserTimestamp(strtotime($start_date));//轉成時間戳記

    $end_date=xoops_getUserTimestamp(strtotime($end_date)); //轉成時間戳記

    $title=($start_date< $today and $end_date >$today)?"{$title}":$title;//比較時間
  5.  預設值:
    $start_date=(!isset($DBV['start_date']))?date("Y-m-d H:i:00",xoops_getUserTimestamp(strtotime("now"))):$DBV['start_date'];

    $end_date=(!isset($DBV['end_date']))?date("Y-m-d H:i:00",xoops_getUserTimestamp(strtotime("+7 days"))):$DBV['end_date'];
  6.  參考連結: http://php.net/manual/en/function.strtotime.php

    =====================================================
  7. 目前時間:
    $date_now=date("Y-m-d H:i:s" , xoops_getUserTimestamp(strtotime("now")));

    $date=(!isset($DBV['date']))?
    $date=date("Y-m-d H:i:s" , xoops_getUserTimestamp(strtotime("now"))):
    $date=date("Y-m-d H:i:s" , xoops_getUserTimestamp($DBV['date']));
  8. 轉成XOOPS使用者時間
    $default_val 為  「 datetime 」 格式
    date("Y-m-d H:i:s" , xoops_getUserTimestamp(strtotime($default_val)))
    --------------------------------------------------------------------------
    date("Y-m-d H:i:s" , xoops_getUserTimestamp(strtotime("now"))); //這個是主機時間
  9. 資料庫為 int(10)
    #-----------------------------初始值--------------------------------------------------------------
    $main_date=(!isset($DBV['main_date']))?date("Y-m-d H:i:00",xoops_getUserTimestamp(time())):date("Y-m-d H:i:s",xoops_getUserTimestamp($DBV['main_date'])); #公告日期
    #-----------------------------寫入資料庫--------------------------------------------------------------
    $_POST['main_date']=userTimeToServerTime(strtotime($_POST['main_date']));    # 公告日期 $date=getdate($_POST['main_date']);
     $year=$date['year']; 取得年
     $mon=$date['mon']; 取得月

    參考:http://tw1.php.net/manual/en/function.getdate.php

    # -------------   日期列表  -----------------------------
    $main_date=(!empty($main_date))?date("Y-m-d H:i:s",xoops_getUserTimestamp($main_date)):""; #公告日期
     
  10. # -------------   取得年、月、日函數  -----------------------------
    $date=getdate(時間戳記);
    $year=$date['year']; #取得年
    $mon=$date['mon'];  #取得月
  11. 取得上個月的第一天及最後一天
    $time = strtotime('last month'); echo date('Y-m-t', $time); //个月的最后一天    echo date('Y-m-01', $time); //上个月的第一天
  12. 取得本月的第一天及最後一天
    $time=strtotime('now');   echo date('Y-m-01',$time).'----'.date('Y-m-t',$time);




2012年3月7日 星期三

網站導航的刪除、修改

1.如圖按鈕


2.如圖按鈕




3.將不要連結刪除

  如要新增,請複製其中一段,然後修改即可
<li> <a class="menuMain" title="關於學校" href="http://www.bkkg.cyc.edu.tw/modules/tadnews/page.php?nsn=4" trage>關於學校</a></li>




4.如果需要另開頁面,請在
<a href="" target="_blank">連結文字</a>
加上屬性「target="_blank"



刪除電子相簿類別

1.至管理介面


2.至分類管理 


3.執行刪除