跳到主要內容

發表文章

目前顯示的是 2011的文章

PHP遞迴模型範例

PHP遞迴模型範例 這是一個簡單的PHP遞迴模型範例,此模型的邏輯可以延伸應用於多層選單的開發上。 1、範例說明 <?php Recursive(1);      //呼叫傳遞參數1進入函數中 function Recursive($value){ $digital = array('a','b','c','d','e');      //建立陣列a.b.c.d.e echo $value."=".$digital[$value-1]. "<div>第{$value}層{$digital[$value-1]}:menu{$value}</div><Br>";   //透過遞迴次數,解出陣列中的數值a.b.c.d.e,並輸出於樣板。 if ($value>=5){    //如果遞迴次數超過5或是=5,結束遞迴 return; } Recursive($value+1); //呼叫函數自己,每次增加數值1,所以就是1+1=2,2+1=3,3+1=4,4+1=5。 } ?> 2、輸出內容 1=a 第1層a:menu1 2=b 第2層b:menu2 3=c 第3層c:menu3 4=d 第4層d:menu4 5=e 第5層e:menu5 教學撰寫: 徐嘉裕 (Neohsu)

php解析進入網站搜尋爬蟲,並針對不同的搜尋爬蟲定義顯示或隱藏內容的方法。

解析進入網站搜尋爬蟲,並針對不同的搜尋爬蟲定義顯示或不顯示內容的方法.。 1、範例說明 //解析進入網站的瀏覽器版本 $browser = $_SERVER['HTTP_USER_AGENT']; //將不想顯示內容的網路爬蟲加入 $reptile = array( 'Googlebot' , // Google爬蟲 'Yahoo! Slurp' , //雅虎爬蟲 'msnbot' // Bing爬蟲 ); //進行判斷比對,如有出現為設定隱藏的搜尋爬蟲,則回傳true foreach ($reptile as $k){ if (strpos("/{$browser}/i", $k) !== false) { $webreptil=true; } } 2、將於需要隱藏不被搜尋爬蟲蒐錄的內容加入判斷 if($webreptil!=true){ $main=" 此為不想被搜尋爬蟲收錄顯示的內容 "; } echo $main; 以上內容當判斷條件成立時, 將不會輸出於前端頁面,這樣yahoo,msn,Google搜尋爬蟲在收錄此頁資料時,自然也不會收錄這些被隱藏的內容。 教學撰寫: 徐嘉裕 Neohsu

使用js於div容器中新增加內容,而不會覆蓋到原有的內容的方法: insertAdjacentHTML();

JS 於div容器中新增加內容,而不會覆蓋到原有的內容的方法 insertAdjacentHTML(); 1、範例說明 欲將此段內容<div>新增加內容</div> 加到 <div id="testjs"><h3>現有內容</h3></div> 裡面,但又不要覆蓋原本的內容。 2、JS部分 <script type="text/javascript"> var byId = document.getElementById(" testjs "); byId.insertAdjacentHTML(" afterBegin "," <div>新增加內容</div> "); </script> 紅字 afterBegin 為設定新內容加入的方式。 其編譯之後= <div id="testjs"> <div>新增加內容</div> <h3>現有內容</h3></div> 加入元件方式共有4種參數可以選擇 afterBegin 於div內,內容之前加入新增加內容 beforeEnd 於div內,內容之後加入新增加內容 beforeBegin 於div外,內容之前加入新增加內容 afterEnd 於div外,內容之後加入新增加內容 教學撰寫: 徐嘉裕 Neohsu

fred_place 場地預約模組,將會員帳號修改為顯示會員姓名的方法!

如有預約場地,fred_place 模組預設是顯示會員帳號, 以下為修改顯示會員真實姓名的方法 找到以下檔案,用筆記本打開! fred_place/index.php 找到第181行 $state=$class[$j][$col_e[$i]];替換成以下的 /*==========修改開始,將帳號改為姓名=========*/ $truename=$class[$j][$col_e[$i]]; //使用user帳號至users資料表中撈出姓名欄位中數值 $selectdb=$xoopsDB->prefix('users'); $sql="select name from $selectdb where `uname`='$truename'"; $result = $xoopsDB -> query($sql) or die($sql); list($okusername) = $xoopsDB -> fetchRow($result); //增加條件判斷,如果會員姓名為空值,則顯示會員帳號 if($okusername==""){ $state=$class[$j][$col_e[$i]]; }else{ $state=$okusername; }  //原始設定 $state=$class[$j][$col_e[$i]]; /*================修改結束=====================*/ 存檔後,原本的會員帳號就會改顯示會員姓名,不過需要去會員管理->編輯會員帳號->輸入真實姓名,這裡才會顯示,否則還是會顯示帳號。 教學撰寫:   徐嘉裕 (Neohsu)

修復場地預約模組(fred_place)區塊cancel.png圖片無法正常顯示Bug的方法

今天測試預約模組(fred_place)時發現一個小bug,如果開啟場地預約區塊,其中的cancel.png圖片無法正常顯示,會顯示x。 以下為bug排除方法 1、找到以下檔案。用筆記本打開 fred_place/blocks/list_place.php 找到第113行的code ============================================             $del="<a href='".XOOPS_URL."/modules/fred_place/index.php?op=cancel&date=$show_day&place_sn=$place_sn&col=$col_e[$i]'><img src='".XOOPS_URL."images/icons/cancel.png' border=0></a>";                } elseif($class[$j][$col_e[$i]]==$Uname) { $del="<a href='".XOOPS_URL."/modules/fred_place/index.php?op=cancel&date=$show_day&place_sn=$place_sn&col=$col_e[$i]'><img src='".XOOPS_URL."images/icons/cancel.png' border=0></a>"; =============================================== 替換為以下的code, 藍色為新增加路徑部分 ==================================================            $del="<a href='".XOOPS_URL."/modules/fred_place/in

於JS中呼叫AS3函數並傳遞參數方法 ExternalInterface.addCallback();

於JS中呼叫AS3函數並傳遞參數方法 ExternalInterface.addCallback(); 1、JS部分,Code範例為JS按鈕事件觸發後呼叫 AS3函數changeBall  <script language="javascript"> var $asvalue="test"; //宣告變數$asvalue,變數值為test //瀏覽器兼容判斷 function thisMovie(movieName) {        if (navigator.appName.indexOf("Microsoft")!= -1) {         return window[movieName];        } else {         return document[movieName];        }    } function callExternalInterface(){  thisMovie("SWF名稱"). changeBall (' $asvalue' );  // changeBall為欲呼叫之as函數 , $asvalue為js欲傳遞到as3的參數值 。 } </script> <form><input type=button value="JS按鈕" onclick="callExternalInterface()"></input></form> 2、AS部分,Code範例為JS按鈕事件觸發後AS3接收JS所傳遞過來的參數 $asvalue import flash.external.*; ExternalInterface.addCallback(" changeBall ", $asvalue ); function changeBall ( $asvalue ){ trace( $asvalue ); //輸出結果為js中傳遞變數直"test"; } 教學撰寫: 徐嘉裕 (Neohsu)

於AS3中呼叫JS函數並傳遞參數方法 ExternalInterface.call( );

於AS3中呼叫JS函數並傳遞參數方法 ExternalInterface.call( ); 1、AS3部分,Code範例為按鈕事件觸發後呼叫 JS函數jstest var $jsvalue="test"; //宣告變數$jsvalue,變數值為test this.addEventListener(MouseEvent.CLICK,clicktrue); //按鈕偵聽器 function clicktrue(me:MouseEvent){ ExternalInterface.call(" jstest ", $jsvalue ); // jstest為欲呼叫之JS函數 , $jsvalue為AS3欲傳遞到JS的參數值 。 }  2、JS部分,Code範例為Flash按鈕事件觸發後JS接收AS3所傳遞過來的參數 $jsvalue <script language="javascript"> function jstest ( $jsvalue ){ document.write( $jsvalue ); //輸出結果為AS3中傳遞變數直"test"; } </script> 教學撰寫: 徐嘉裕  Neohsu

解決Tadnews模組中Fck編輯器無法上傳圖片方法!

前天接到客戶通知,Tadnews模組的Fck編輯器突然無法正常上傳圖片,畫面會停留在圖片上傳讀取介面中,而無法完成操作。 經查詢問題原因後發現禍首又是protector模組,誤吧Fck編輯器當成 阻斷攻擊及網路爬蟲 而封鎖掉, 所以解決方法, 就是在protector模組中增加tadtools的排除設定 : 於preferences->偏好設定中,找到以下的設定欄位, ============================================== 避免被誤判為阻斷攻擊及網路爬蟲的模組 若有那種常常會重新整理畫面的模組,請輸入該模組的資料夾名名稱,以避免被誤為是阻斷攻擊或網路爬蟲,可用「|」分開。 * 增加: tadtools =========================================== 完成設定變更後,再次使用Tadnews模組的fck編輯器功能,即可正常的完成圖片上傳操作。 教學文章撰寫: 徐嘉裕 (Neohsu)

修改Unix Time時間字串為易讀時間格式

修改Unix Time時間字串為易讀時間格式的方法 取得News新聞模組->stories資料表中的published欄位數值後,發現為Unix Time時間格式, 所以每筆時間紀錄全部顯示為1315069999~1293456502奇怪的Unix 時間字串格式。 後來查了一下資料,原來Unix Time時間字串還需要經過轉換,才能顯示為易讀格式。 共以下下函數可以解析Unix Time時間字串 $time = 1234567890; $year = date("Y",$time); $month = date("m",$time); $day = date("d",$time); $hour = date("h",$time); $minute = date("i",$time); $second = date("s",$time); echo "Unix時間:$time,可轉換成".$year."年".$month. "月" . $day. "日". $hour."時". $minute. "分". $second."秒。"; 參考資料來源: http://www.inote.tw/2009/03/php-unix-time.html (海芋小站) 所以我就按以上的轉換方式進行時間格式的解析步驟,在還沒解析之前,時間格式均為Unix的時間字串 $published;  //此值為News模組新聞的時間變數值 $year = date("Y",$published); //年 $month = date("m",$published); //月 $day = date("d",$published); //日 $published= "{$year}/{$month}/{$day}";    //將年月日合併為單一變數。 echo $published; //即可正常顯示

Xoops表單物件-下拉選單複選設定方法

Xoops表單物件-下拉選單複選製作方法 include_once(XOOPS_ROOT_PATH."/class/xoopsformloader.php"); $group=array(a,b,c); $select = new XoopsFormSelect ("所屬分類", "kind",$group,3,true); $options["a"]="複選選單A"; $options["b"]="複選選單B"; $options["c"]="複選選單C"; $select->addOptionArray($options); $form->addElement($select); ===================說明====================== $group=array(a,b,c);   //此為子選單預設之選取值,以陣列方式輸入數值,可將OP之後之複選變數陣列帶入此值中。 $select = new XoopsFormSelect ("所屬分類", "kind", $group ,3, true ); // tru e為允許複選之設定,預設為 false $options["a"]="複選選單A"; $options["b"]="複選選單B"; $options["c"]="複選選單C"; $select->addOptionArray($options); $form->addElement($select); 教學撰寫: 徐嘉裕(Neohsu)

解決news1.64模組改用fck編輯器後,文字段落空白過大的方法!

安裝news1.64模組,如於該模組偏好設定中將編輯器改為fck,則發表文章時,會有文字段落空白過高的問題, 以下為解決辦法 找到下檔案,用筆記本打開 modules/news/article.php 1、找到第220行 if ($storypage == 0) { $story['text'] = $story['text'].' <br /> '.news_getmoduleoption('advertisement').' <br /> '.$articletext[$storypage]; } else { $story['text'] = $articletext[$storypage]; } } else { $story['text'] = $story['text'].' <br /> '.news_getmoduleoption('advertisement').' <br /> '.$bodytext; } 吧紅字的 拿掉,變成以下沒有 的code if ($storypage == 0) { $story['text'] = $story['text'].''.news_getmoduleoption('advertisement').''.$articletext[$storypage]; } else { $story['text'] = $articletext[$storypage]; } } else { $story['text'] = $story['text'].''.news_getmoduleoption('advertisement').''.$bodytext; } 2、找到第189行 $story['text'] = $article-&g

新買的nike慢跑鞋立刻被狗啃...........冏

新買的nike慢跑鞋 拍照到一半時,家裡狗突然跑過來.................... 然後對者我新買的慢跑鞋..............一口啃下去.................@@!! 一直啃一直啃!! 一直啃一直啃!! 一直啃一直啃!! 還好nike的鞋子堅固耐用,被狗啃了幾下,還沒壞掉! 真是莫名其妙的笨狗! 今天不給它狗骨頭吃了\  /#

初探blogger,版型寬度可由設計中的設計範本工具調整

目前測試blogger結果得知版型寬度可以由設計中設計範本工具調整更改, 測試用將寬度調為1000,選擇套用至網誌後 版面立刻由原本的800px變為1000px 所以blogger的圖檔及4邊圓角依研判因該是用8個圖片組成的,這樣只要將後端user輸入的寬度變數值撈到前端的div框的width中,即可達成這樣的效果,他山之石的確值得參考。 或許未來在開發Xoops佈景時也可以可慮增加這樣的功能(不過圖層要切更細,我可能會累死)。