跳到主要內容

發表文章

目前顯示的是有「Xoops模組」標籤的文章

寫一個用php解析youtube影片網址ID的function-教學撰寫:徐嘉裕Neil hsu

如果想要在自己開發的Xoops模組中播放youtube影音,就必須解出youtube影片網址串後面的ID才行,然後套入到iframe中,youtube影片網址目前有兩種格式 1、瀏覽器網址有?v=變數值,像是https://www.youtube.com/watch?v= yeWbbzDDNAc  紅字即為影片ID 2、播放器滑鼠右鍵->複製影片網址,沒有?v=變數值,像是https://youtu.be/ yeWbbzDDNAc  紅字即為影片ID 所以function必須兩種格式網址都要能解出影片ID,以下為CODE部分 //youtube取得網址ID function function youtubeurl($url=""){ //解析youtube網址?v值 //網址類型:https://www.youtube.com/watch?v=zIE8htt4HLg $urlarr=parse_url($url); parse_str($urlarr['query'],$parr);      $vid=$parr['v'];  //解析複製網址後ID值 //網址類型:https://youtu.be/SfPeulcfbSI if(empty($vid)) $vid=end(preg_split("/\//",reset(preg_split("/\?/",$url)))); return $vid; } 使用範例 $url="https://www.youtube.com/watch?v=yeWbbzDDNAc"; 或是 $url="https://youtu.be/yeWbbzDDNAc"; 以上兩種格式都能解 echo $youtubbox="<iframe width='950' height='534' src='https://www.youtube.com/embed/". youtubeurl($url) ."' title='YouTube video player' frameborder=...

寫一個清除Xoops->caches的function-教學撰寫:徐嘉裕Neil hsu

Xoops是使用Smarty樣板引擎產生內容,也就是吧php輸出成Smarty後再由樣版產生頁面,所以會產生樣板暫存檔(caches),當然Xoops後端也有刪除暫存檔的功能,不過我另外寫了一個刪除暫存檔的function方便使用,分享給大家參考! 1、在模組的function.php中加入以下code //刪除目錄中內容物件(不包含刪除目錄) function filedeletionArr($from="",$exclude="") { if (!file_exists($from)) {return false;} $dir = opendir($from); while (false !== ($file = readdir($dir))) { if ($file == '.' OR $file == '..') {continue;} if (is_dir($from . DIRECTORY_SEPARATOR . $file)) { filedeletionArr($from . DIRECTORY_SEPARATOR . $file); } else { if(empty(in_array($file, $exclude))){ unlink($from . DIRECTORY_SEPARATOR . $file); } } } closedir($dir); return true; } 2、然後再要使用刪除暫存檔的程式中呼叫 filedeletionArr(),例如定時自動刪除程式之類的,貼上以下code到程式中 // $from 暫存檔資料夾路徑 //$exclude 資料夾中不要刪除的檔案用陣列輸入 //清空smarty_cache filedeletionArr($from=XOOPS_VAR_PATH.'/caches/smarty_cache',$exclude=array('index.html')) //清空smarty_compile file...

Xoops全站取得Config資料表中某筆conf_value值的方法

Xoops的Config資料表主要是用來儲存一些Xoops網站的設定值,也包括Xoops模組的偏好設定,如果要在模組中取得Config資料表中的conf_value就簡單多了,只需要使用    $xoopsModuleConfig['config_name']即可,但如果是要在全域中使用,例如網站佈景首頁或全部的頁面,那這方法就沒用了,需要改用以下的方法取的conf_value值。 假設我們要取得Config資料表中conf_name為appId 的conf_value數值: appId 為tad_login的偏好設定欄位。 global $xoopsConfig; function tad_loginappid() { $modhandler = xoops_gethandler('module'); $config_handler =xoops_gethandler('config'); $xoopsModule = &$modhandler->getByDirname(" tad_login ");   //查詢欄位所屬模組 $modConfig= &$config_handler->getConfigsByCat(0, $xoopsModule->getVar('mid')); $xoopsModuleConfig = & $config_handler->getConfigsByCat(0, $mid); return $modConfig['appId'];   //陣列帶出appId欄位值 } $tad_loginappid=tad_loginappid(); 以上為使用Xoops建構函式的方法取得conf_value數值,不過我個人比較喜歡用撈資料表方式來取得conf_value值,大家可以參考看看喔!! global $xoopsDB; $sql = "select mid from " . $xoopsDB->prefix('config') . " where ` conf...

模組使用tadtools模組的ckeditor編輯器套件方法(Xoops模組開發)

最近剛好要開發新Xoops模組,需要用到ckeditor編輯器跟圖片上傳功能,之前是有修改好的ckeditor編輯器套件加上CKFinder破解版(可無限上傳圖片跟刪除圖片無天數限制),可是已經是舊版本了,會跟新版瀏覽器有兼容問題,所以上ckeditor官網查了一下目前最新版本為ckeditor4.7版,下載回來用安裝方法跟之前一樣沒多大改變,可是CKFinder套件就無法使用了(Oh my God!!),新版的CKFinder全部的js都加密過了,要用原本的方法破解似乎是不可能了,看來只能想其他的方法了(砍掉重練)!! 這時候才想到由 吳弘凱 老師所開發的tadtools工具包模組裡面就有最新版的ckeditor編輯器加上elFinder圖片套件,可以無限上傳及刪除圖片,而且老師都已經修改好吧程式建構化了,因此只需要簡單的呼叫建構函式給參數值跟樣板js程式就能使用ckeditor編輯器,而且也會自動在uploads資料夾底下建立編輯器存放圖片的目錄,還有權限機制也寫好了,真是太感謝吳弘凱老師無私的付出, 向您至上12萬分的敬意 。 以下即為使用tadtools模組中的ckeditor套件方法。 1、須於php擋頭引入ckeditor.js檔 $xoopsTpl->assign('xoops_module_header', "<script src='" . XOOPS_URL . "/modules/tadtools/ckeditor/ckeditor.js'></script>"); 2、須於php檔案中引入tadtools模組中的tad_function.php檔案 include_once XOOPS_ROOT_PATH."/modules/tadtools/tad_function.php"; 3、加上以下的呼叫$editor建構函式語法(這樣才能建立圖片資料夾) include_once XOOPS_ROOT_PATH . "/modules/tadtools/elrte.php"; global $xoopsModule; $moduleid=$xoopsM...