跳到主要內容

發表文章

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

Xoops免費佈景:neilambilight3.3正式版釋出-佈景設計開發:徐嘉裕Neil hsu

本次釋出的neilambilight3.3版主要是針對neilambilight3.2部分樣式BUG進行修正,也增加了新的佈景布局樣式及更換主選單JS套件,採用更優化的smartmenus選單,讓網站運作更為順暢。 neilambilight佈景展示網站: https://chongshanli.com/ neilambilight3.3更新內容 1、佈景版型配置增加->上右四區塊顯示上方功能,可由佈景管理模組中切換版型。 2、更換布景主選單為smartmenus-1.1.1套件,選單CSS樣式調整。 3、修改關於我們區塊結構樣式,針對Xoops->12個位置做最適化調整。 4、彈出廣告增加自訂廣告圖片寬度功能。 5、修正關閉網站自動放大縮小功能->主選單上下位移錯誤問題。 本次更新釋出版本 neilambilight3.3版 neothemesadmin5.6版 neillibrary2.5版 系統環境需求 PHP版本:PHP7.3包含以上,最佳版本PHP8.1, 建議php7.4(因tad模組只兼容到php7.4) Mysql版本:mysql5.55包含以上到10.4.27-MariaDB Xoops版本:Xoops2.5.10包含以上,最佳版本Xoops2.5.11 升級安裝neilambilight3.3如下說明 1、前往下載neilambilight3.2佈景檔 http://neodw.com/neil/modules/tad_uploader/index.php?of_cat_sn=14 2、解壓縮後,吧htdocs資料夾裡面的檔案全部上傳到網站根目錄中覆蓋舊檔(htdocs或www目錄) ->kernel ->modules ->themes ->register.php ->robots.txt 備註說明:htdocs資夾包含Xoops補丁檔,增加表單防機器人驗證機制,以及區塊$show_func增加$this傳參,若無上傳布景將無法正常運作。 3、進到管理後台->點選模組->點選更新neothemesadmin佈景管理模組 (非常重要) 4、進到管理後台->點選模組->點選更新neillibrary函數庫模組 (非常重要) 5、升級後舊版佈景建立資料均會保留。 既完成本次升級...

Xoops免費佈景:neilambilight3.2正式版釋出-佈景設計開發:徐嘉裕Neil hsu

本次升級除修正部分BUG外,也針對功能做了擴充,包括佈景管理後台改用Xoops2.5框架,增加全國據點管理功能,增加簡介區塊管理功能,增加廣告管理功能(GTM代碼管理/彈出廣告功能/右下浮動廣告功能),並精簡優化佈景的程式,重構部分JS及CSS代碼,加快網站開啟速度及穩定性,提供USER更友善的網站使用環境。 neilambilight佈景展示網站: https://chongshanli.com/ neilambilight3.2更新內容 1、調整因Xoops2.5.11變更模組版本數值,修改佈景管理模組更新通知版本判斷方式。 2、修正布景更新通知無法關閉問題,增加紀錄更新時間及關閉通知後下次通知的間隔時間。 3、佈景管理新增加圖片撥放器間隔秒數設置功能。 4、關於我們區塊->新增加圖片按鈕輸入連結網址功能。 5、優化佈景管理->聯絡我們及聯絡我們管理區塊JS表單驗證功能(合併簡化code)。 6、修正布景開啟搜尋區塊捲軸下拉滑動選單會跑位的問題。 7、修改佈景管理模組首頁->改用Xoops2.5框架。 8、刪除無使用的tplthemescss.php檔 9、佈景管理->新增加全國據點管理功能,後台可新增/編輯/刪除/排序/全國據點,前台增加全國據點區塊功能。 10、佈景管理->新增加簡介區塊管理功能,後台可新增/編輯/刪除/排序/簡介區塊,前台增加簡介區塊功能。 11、佈景管理->新增加廣告管理功能。 ->GTM代碼管理,可按照UI指引貼入GTM追蹤代碼,可設定啟用或不啟用GTM代碼。 ->彈出廣告管理,可建立在首頁彈出的廣告圖片及連結,後台可建立多筆資料,有指定及隨機兩種顯示方式。 ->右下浮動廣告管理,可建立網站右下方浮動廣告圖片及連結,一式廣告分為上下兩組,後台可建立多筆資料,有指定及隨機兩種顯示方式。 12、布景js播放器圖改為png格式,更新模組時執行jpg轉png程式。 13、修正因布景存入cookie更新頁面導致FB分享連結抓不到網站內容資訊的問題(標題/圖片/說明)。 14、升級聯絡我們功能,聯絡內容及回覆內容增加URL自動轉連結及保持原格功能,優化code清除不必要的程式碼。 15、修改布景LOGO主標題文字不隨內容變動! 16、升級電腦版網站隨解析度自動放大縮小功能,捨棄zoom改用tra...

Xoops免費佈景:neilambilight3.1正式版釋出-佈景設計開發:徐嘉裕Neil hsu

針對neilambilight3.0版用戶回報問題做調整與升級,更新項目如下 neilambilight3.1更新內容 ============================== 1、自訂按鈕->圖片類型區塊,增加顯示及不顯示按鈕文字功能,並重新優化該區塊的布景CSS樣式。 2、布景電腦版->底區塊選單增加第二層收納第三層選單功能(原本為展開結構),並優化CSS樣式。 3、修正模組更新onUpdate.php->自動刪除腳本,刪除使用中的css檔問題。 4、隨機小語後台增加內容輸入框簡易CK編輯器。 5、調整布景JS套件引入位置解決與部分tad模組衝突問題。 6、聯絡我們顯示未回覆提示框時,自動關閉主選單浮動功能,解決版面變形問題。 7、修正多層自訂按鈕未關閉區塊樣式時字體過大問題。 8、修正多層自訂按鈕編輯時選擇分類會變成空值的問題。 9、調整佈景中間欄位配置區塊標題文字及高度加大。 本次更新釋出版本: neilambilight3.1版 neothemesadmin5.1版 neillibrary2.3版 安裝及升級方法如下neilambilight3.0說明。 歷經一年多的開發,neilambilight佈景已經完全煥然一新,以全新的面貌呈現給大家,本次改版佈景前台介面全部砍掉重練,全新的設計風格與優化結構,更實用的功能與管理便利性及安全性,並增加了視差動畫設計,自訂區塊icon功能,版面布局也更多樣化,可兼容tad最新版模組,目前已完成各項測試正式發佈,歡迎大家下載使用。 neilambilight佈景展示網站: https://chongshanli.com/ neilambilight3.0 更新內容 ============================== 1、升級布景jquery到jquery-3.5.1.min.js。 2,升級布景jquery-migrate到jquery-migrate-3.3.0.min.js 3、調整布景headtpl.tpl中CSS及JS檔引入方式。 4、移動儲存區塊圖片資料夾內容neilambilight->neothemesadmin,修改圖檔路徑 5、隨機小語新增自訂電腦版及手機版寬度高度設定。 6、災害示警新增自訂電腦版及手機版寬度高度設定,修改樣板設定。 7、強化表單防禦機器人程式架...

Xoops->logcounterx流量統計模組系統分析增加Windows10設定-教學撰寫:徐嘉裕Neil hsu

logcounterx是日本人開發專門分析網站流量的Xoops模組,不過近幾年似乎沒有更新版本發佈,所以模組系統分析還停留在Windows7,好像是時光暫停了一樣!! 這樣就失去系統分析的意義了,既然沒人要維護只好自己加上Windows10的分析設定,分法如下: 1,找到以下檔案,用筆記本打開 ../../modules/logcounterx/include/functions.php 2、搜尋 Windows7 找到以下程式  if (preg_match('/Windows NT 6\.1/i', $agent) || preg_match('/WinNT 6\.1/i', $agent)) { return 'Windows7'; } 3.在搜尋Windows7程式下面再加上Windows10的程式碼 (紅字部分)  if (preg_match('/Windows NT 6\.1/i', $agent) || preg_match('/WinNT 6\.1/i', $agent)) { return ' Windows7 '; } if (preg_match('/Windows NT 10\.0/i', $agent) || preg_match('/Win64\.0/i', $agent)) { return 'Windows10'; } 存檔後,前往模組首頁系統分析就會顯示Windows10的數據了 這樣就完成logcounterx流量統計模組系統分析增加Windows10設定,有需要的朋友參考看看! 備註說明:logcounterx模組的log是紀錄user瀏覽器當日IP不做重複紀錄,所以如果修改好程式需要測試請用今日內尚未開啟網站的瀏覽器測試才會有數據(例如Edge已被紀錄就用Chrome測試) 工作心的撰寫: 徐嘉裕 Neil hsu

XOOPS->mainfile.php自解網站路徑設定方法-教學撰寫:徐嘉裕Neil hsu

在Xoops根目錄底下有一個mainfile.php,其中一項設定 define('XOOPS_URL', 'http://www.example.com'); 這是設定Xoops網站網址的URL,設定值會套用到模組的XOOPS_URL及樣板<{$xoops_url}>變數,但如果網站要同時能用網址跟IP開啟,又要能開啟http及https網址,那就必須要修改一下XOOPS_URL的設定,改成下面這樣就行了 define('XOOPS_URL', $http . $_SERVER['HTTP_HOST' ]);    $http->會自動取得mainfile.php中$http變數值,依照來訪者輸入網址帶入http及https值, $_SERVER['HTTP_HOST']->取得來訪者輸入的 Host 名稱 這樣不管是IP,網址,WWW或沒有WWW,http及https都能全部開啟Xoops網站,最後如果網站是建在根目錄底層目錄,像是 http://www.example.com/webdate,吧網站目錄加在$_SERVER['HTTP_HOST']後面即可 define('XOOPS_URL', $http.$_SERVER['HTTP_HOST'].'/ webdate ');   最後在吧XOOPS_COOKIE_DOMAIN->也改為$_SERVER['HTTP_HOST'],這樣記錄登入資訊的COOKIE也會隨網址改變。 define('XOOPS_COOKIE_DOMAIN', $_SERVER['HTTP_HOST']); 這樣Xoops網站就什麼網址都能解也能登入,有需要的朋友參考看看 工作心得撰寫: 徐嘉裕 Neil hsu

Xoops忘記管理密碼->修改資料表重建密碼方法-教學撰寫:徐嘉裕Neil hsu

如果忘記Xoops管理員密碼,想要修改資料庫中資料表取回,首先必須要有進入phpmyadmin的權限,進入phpmyadmin後在左邊選單找到XOOPS網站的資料表名稱,點擊進入資料表列,然後使用瀏覽器的搜尋功能(ctrl+F),輸入users,找到被標註的users資料表,點擊進入 進入users資料表後,找到管理員帳號 (看uname欄位) ,點選左邊的編輯 然後使用瀏覽器搜尋(ctrl+F),輸入pass,找到密碼欄位,將右邊的文字框清空,輸入新密碼,這裡用(12345)做測試,然後吧右邊的類型選擇MD5 按下方的執行儲存更新 之後輸入 帳號admin 跟密碼 12345 就能用管理員登入Xoops網站了,有需要的朋友參考看看! 教學撰寫: 徐嘉裕 Neil hsu

PHP好用的QRcode產生套件phpqrcode->Xoops模組應用範例-教學撰寫:徐嘉裕Neil hsu

如果要在Xoops模組中使用php產生的QRcode套件,phpqrcode是個不錯的選擇,且套用方便利於擴充管理,首先先去phpqrcode官網下載套件包回來 http://phpqrcode.sourceforge.net/ PHP QR Code庫的某些功能包括: 支持QR Code版本(大小)1-40 數字,字母數字,8位和漢字編碼。(日文漢字編碼尚未經過全面測試,如果您啟用了日文編碼,則可以通過驗證它來做出貢獻:)) 完全用PHP實現,除GD2外沒有任何外部依賴項 導出為PNG,JPEG圖像,也導出為位表 TCPDF 2-D條碼API集成 易於配置 數據緩存可加快計算速度 提供的合併工具有助於將庫作為一個沒有依賴關係的大文件進行部署,易於“包含且不擔心” 調試數據轉儲,錯誤記錄,時間基準測試 100%開放源代碼,LGPL許可 解壓縮後吧phpqrcode丟到Xoops模組的class資料夾中 然後再Xoops的uploads資料夾中建立一個qrcode資料夾存放QRcode圖檔 (資料夾需設777權限) 再吧以下的code放到模組的function.php裡面 //QR CODE 產生器 function qrcodeGenerator($url='',$level='',$size='',$qrcodeimg=''){ //參數說明 //$url  產生QRcode連結 //$level  容錯級別 H 30% 校正 / L = ~7% 校正 / M = ~15% 校正 / Q = ~25% 校正 //$size  生成圖片大小 max10 //$qrcodeimg  產生QRcode圖檔名 include_once XOOPS_ROOT_PATH."/modules/ 模組ID /class/phpqrcode/phpqrcode.php"; $value = $url; //二維碼內容 $errorCorrectionLevel = $level; //容錯級別 $matrixPointSize = $size; //生成圖片大小 //生成二維碼圖片 $filename = XOOPS_ROOT_PATH.'/uploads...

php-smarty標籤切割字串的方法!!->xoops-教學撰寫:徐嘉裕Neil hsu

通常來說如果需要切割字串在後端php用preg_split就能處理好了,所以很少會需要在smarty上做切割字串,不過還是會有特殊情況, 例如在Xoops某個區塊標題輸入  最新消息 - Latest publicnotice 然後需要以 - 為中心切割成兩個字串,就是顯示(最新消息 及  Latest publicnotice) 但Xoops的區塊標題都是輸出成smarty樣版的,也就是<{$block.title}>,要處理還真的很麻煩,如果能在smarty上切割字串問題或許就好解決了!! 上網拜估狗大神發現一個不錯的方法,用explode可以切割smarty字串 <{assign var="blocktitle" value="-"|explode:$block.title}> 要切割字串的標題:最新消息-Latest publicnotice <{$blocktitle[0]}>  顯示:最新消息 <{$blocktitle[1]}>  顯示:Latest publicnotice 這樣問題就解決了,會這樣用是因為手機版介面不需要顯示那麼長的文字,所以吧英文的部份去掉留下中文就好,有需要的朋友參考看看吧!! 工作心的撰寫: 徐嘉裕 neil hsu

Xoops佈景升級jquery->jquery-3.5.1.min.js的方法-教學撰寫:徐嘉裕Neil hsu

Xoops佈景預設引入的jquery.js已經很老舊了,如果要引入最新的jquery-3.5.1.min.js則會與$xoops_module_header中預設jquery.js衝突,所以如果佈景要引入jquery-3.5.1.min.js必須做以下修改才行,移除Xoops預設的jquery.js。 1、在佈景樣板的<{$xoops_module_header}>標籤上方引入jquery-3.5.1.min.js,然後再引入jquery-migrate-3.3.0.min.js以便做舊版jquery.js的兼容,若沒引入jquery-migrate-3.3.0.min.js很多舊版的JS功能都會發生異常無法使用。 所以樣板程式就會是以下這樣 <{php}> global $xoopsTpl; //引入jquery-3.5.1.min.js $module_header.="<script src='".XOOPS_URL."/modules/neillibrary/js/jquery-3.5.1.min.js' type='text/javascript'></script>"; //引入jquery-migrate-3.3.0.min.js $module_header.="<script src='".XOOPS_URL."/modules/neillibrary/js/jquery-migrate-3.3.0.min.js' type='text/javascript'></script>"; echo $module_header; <{/php}> <!--module_header--> <{$xoops_module_header}> 2、再來解決$xoops_module_header重複引用jquery.js的問題,需要吧Xoops預設的jquery.js拿掉,還有tadtools中較舊版的jquery-migrate-3.0.0.min.js拿掉,這裡需要使用samty的replace功能,程式...

PhpSpreadsheet電子表格PHP匯出excel排版範例->Xoops-教學撰寫:徐嘉裕Neil hsu

在開發模組時如果要吧資料表內容匯出excel,最常用的套件因該就是PHPExcel,但是官網已經說明PHPExcel套件因升級不易只能支援到php5.6, 該物件已於2017年正式棄用,並於2019年永久歸檔 ,換句話說PHPExcel套件對於日後新版的excel格式均不支援,為保持程式在最新狀態只好棄用PHPExcel改使用PhpSpreadsheet電子表格套件,該套件也是能匯出excel,還能匯出LibreOffice Calc,感覺還不錯! 唯一比較麻煩的是使用PhpSpreadsheet要先佈署composer,如果沒佈署composer是沒辦法使用的,還好官方有釋出已經設定好的phpoffice套件可以直接引入使用,省了很多麻煩,使用PhpSpreadsheet方法如下: 1、先下載PhpSpreadsheet套件,我已經幫大家吧phpoffice一起打包上傳 https://drive.google.com/file/d/1jw73diWVjbcr1ycY-gtqM2cGfpLp1zS_/view?usp=sharing 下載回來後解壓縮吧phpoffice跟PhpSpreadsheet丟到Xoops模組的class資料夾中,未來如需更新PhpSpreadsheet可到官網下載最新版覆蓋即可 https://github.com/PHPOffice/PhpSpreadsheet 2、然後建立一個excel.php放在模組根目錄中 以下為編排excel表格常用的函數設定 include_once "header.php"; //先引入autoload.php檔 include_once XOOPS_ROOT_PATH.'/modules/ 模組ID /class/phpoffice/vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\IOFactory; $spreadsheet = new Spreadsheet(); //實體化Excel工作表 //設置電子表格元數據的操作: $spreadsheet->getProperties() ->setCreator...

Xoops做一個php下載多檔打包壓縮成ZIP格式方法-教學撰寫:徐嘉裕Neil hsu

2021-11-15補充說明,由於PHP8.0對於new ZipArchive的寫法有改變,以下方法無法於PHP8.0中使用,如需使用PHP8.0開發Xoops模組zip下載功能的請參考這篇工作心得 Xoops做一個php8.0下載多檔打包壓縮成ZIP格式方法 之前寫過一個【 Xoops做一個php下載檔案自動壓縮成ZIP格式方法 】的工作心得,但那方法只能做單一檔案的ZIP下載打包,如果是多檔下載全部打包成一個ZIP檔,則需要修改一下程式才行,做成一個function方便使用,CODE如下。 //ZIP多檔打包下載 先做一個function丟到模組的function.php中方便重複使用 function  zipArchivefunction($url="",$zipname="",$temp="){ //$url 檔案原始路徑+檔名(陣列格式) //$zipname    zip檔案名稱 //$temp    檔案暫存路徑+檔名 $zip = new ZipArchive;   $zip->open($temp, ZipArchive::CREATE); //$url檔案路徑迴圈加入zip中 foreach ($url as $file) { $new_filename = substr($file, strrpos($file, '/') + 1);  //重新定義壓縮檔路徑 $zip->addFile($file, $new_filename); } $zip->close(); /********使用header命令php下載zip檔************/ header('Content-Type: application/zip'); //指定類型 header("Content-type: ".filetype("$temp")); //指定下載時的檔名 header("Content-Disposition: attachment; filename=".$zipname.""); //輸出下載的內容。 readfile($temp); unlink($temp); ...

用一層foreach解$_FILES['file']陣列(多檔上傳)存入資料表的方法->Xoops-教學撰寫:徐嘉裕Neil hsu

$_FILES['file']本身就是一個陣列,其底下包含了 $_FILES["file"]["name"]:上傳檔案的原始名稱。 $_FILES["file"]["type"]:上傳的檔案類型。 $_FILES["file"]["size"]:上傳的檔案原始大小。 $_FILES["file"]["tmp_name"]:上傳檔案後的暫存資料夾位置。 $_FILES["file"]["error"]:如果檔案上傳有錯誤,可以顯示錯誤代碼。 共有五個key值組成的,如果是單一檔案上傳用foreach可以解出陣列中的五個參數值,也就是上傳檔案的基本參數。 如果是多檔上傳,那$_FILES['file']就會是陣列格式,用一層foreach是解不出來的,因為第一層只會解出$_FILES['file']的五個屬性值但仍為陣列型態,還要再用第二層foreach去解每個屬性的參數值,不過有個更簡單的方法用一層foreach就能解出來了,方法如下: //html <input type='file' class=' form-control' multiple name='file[]' id='file' > //php //建立檔案 if(!empty($_FILES['file']['name'][0])){  foreach($_FILES['file']['name'] as $key=> $val){  //以$_FILES['file']['name']來開啟迴圈,如果上傳三個檔案就會迴圈三次 $_FILES["file"]["name"][$key]: //可以得到上傳檔案的原始名稱迴圈值。 $_FILES["file"]["type"][$key]: //可以得到上...

php遞迴刪除資料夾及資料夾內容function->Xoops-教學撰寫:徐嘉裕Neil hsu

如果用PHP函數刪除目錄若目錄中有檔案,則會刪除失敗,使用rmdir()也只能刪空目錄,有資料的目錄是無法刪除,所以必須要先用程式吧目錄內的檔案全部刪除,最後再刪除目錄,這裡分享一個好用的遞迴刪除目錄及目錄內容的function,另外還加上了若刪除失敗則更改目錄檔名的function,兩個一起使用就沒問題了,CODE如下: 1、吧以下兩個function貼到Xoops模組的function.php裡面 //變更資料夾檔名 function changedirectory($changedate) { $date=date("Ymd"); if(!empty(rename($changedate, $changedate."_bak_{$date}"))) return true; } //刪除目錄包含內容物件 function fileunlink_r($from) { 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)) { fileunlink_r($from . DIRECTORY_SEPARATOR . $file); } else { unlink($from . DIRECTORY_SEPARATOR . $file); } } if(!empty(rmdir($from))) $returnvar=true; closedir($dir); return $returnvar; } 2、在執行刪除的php上引入這兩支php函式 //刪除資料夾及底下資料($from為刪除檔案目錄的實體路徑) $Filevar=fileunlink_r($...

Xoops模組開發->使用xlanguage3.1RC多國語言模組配合的程式修改-教學撰寫:徐嘉裕Neil hsu

xlanguage是一套可以切換Xoops語言的模組,也能透過語言標籤來切換語言內容,以達成網站多國語言的目的,xlanguage3.1RC可以完全兼容Xoops2.5.10,而且也已經被Xoops官網收錄於官方模組中,直接安裝起來用能使用了,我已經吧xlanguage模組中文化完成了,有需要的朋友可以點以下連結下載。 xlanguage3.1RC中文化下載 https://drive.google.com/file/d/1Wz8tcHLE-xtM8vwa0_NfVAyH8Xjewwv2/view?usp=sharing 雖然說安裝起來並設定好語言開啟區塊就能使用 但經過實際測試,還是有很多問題需要在其他模組寫程式套件來配合運作,才能達到100%完美應用,否則使用上還是很多不便利的地方,以下為修改模組紀錄彙整。 1、xlanguage的語言切換作用機制主要有兩段,一部分是吧user選擇的語言儲存到setcookie裡面在讀取對應的模組語言包,這部分可以切換UI的語言,另一部分則是資料字段的轉換,例如 [tw]這是中文標題[/tw][en]This is the Chinese title[/en] 所以如果選擇中文顯示 [tw]這是中文標題[/tw] 中字段,選擇英文則顯示 [en]This is the Chinese title[/en] ,語言標籤會被去掉,但這作用並不是在sql資料導出時做字段判斷,而是用伺服器頂層的Java吧所有PHP輸出的變數都掃過一次比對後擷取語言標籤內容,好處是不用在模組資料輸出去做字串擷取所有的模組都能使用,但會產生一個問題,如果不是輸出頁面的變數,像是幕後傳參寄發E-mail,就無法做語言判斷,反而會吧全部字串都給輸出,像是這樣 收到通知信的人大概也一頭霧水吧,什麼碗糕?解決辦法就是另外寫一個資料轉換function給幕後讀取資料時使用,code如下: ◎吧xlanguagePlugin()放到function.php裡面 //取得指定模組module資料表值 function modulesmidvar($modulesid="",$var=""){ $modulevar=empty($var) ? 'mid' :...

寫一個PHP同條件查詢刪除多個資料表內容的批次刪除function-教學撰寫:徐嘉裕Neil hsu

假設一共有四個資料表有關聯資料,其中一個為主表資料刪除同時連同另外三個資料表中的資料也一起刪除,如果按正常的寫法是 寫一個單獨刪除主表欄位的SQL語法 再寫三個刪除關聯資料的foreach抓出資料後迴圈刪除SQL語法 這樣程式又變得很龐大,所以寫了一個批次刪除的function一次就能吧相同查詢條件的資料全部刪除,這樣程式也精簡很多看了也舒服。 方法如下 1、先在function.php中加上以下的function //引入共用函數 include_once XOOPS_ROOT_PATH."/modules/neillibrary/function.php"; //批次刪除function function deleteArr($Arrdate=""){ foreach($Arrdate as $key=> $val){ $dbneme=$Arrdate[$key]['dbneme']; $where=$Arrdate[$key]['where']; $deleteArr=databasetablewhile($dbneme,$where); foreach($deleteArr as $k=> $val){ $where=" where `".$Arrdate[$key]['id']."` = '".$deleteArr[$k][$Arrdate[$key]['id']]."'"; $DBname=$Arrdate[$key]['dbneme']; deletefunction($where,$DBname); } } } 2、然後在要刪除資料的PHP用陣列輸入刪除的查詢項目 $Arrdate = array(); //建構陣列  //相同where查詢欄位 $whereDB=" where `basid` = '$dbid'"; //刪英資單位 $i=0; $Arrdate[$i]['dbneme']=...

使用ck編輯器的elfinder上傳貼圖的操作方法-教學撰寫:徐嘉裕Neil hsu

ck編輯器上傳圖片功能已經吧elfinder圖片上傳套件整合了,所以上傳圖片到內文中不要使用上傳功能,改使用影像資訊來上傳圖片,操作說明如下: 1、點選CK編輯器的圖像按鈕 2、影像資訊->點選瀏覽伺服器按鈕 3、開啟elfinder管理介面->選擇左邊要放圖檔的資料夾->點選上傳檔案按鈕 4、點選->選擇要上傳的檔案(或吧檔案拖曳到此框中) 5、開啟檔案選擇框,選擇本地端要上傳的圖檔 6、找到上傳成功的圖檔->滑鼠左鍵點擊兩下 7、設定圖檔參數後送出 8、編輯或調整內容後->送出儲存即可 9、這樣就能吧圖片貼到內中了 操作教學撰寫: 徐嘉裕 Neil hsu

解決Xoops網站運作雙IP的問題-教學撰寫:徐嘉裕Neil hsu

網站使用雙IP基本上也沒什麼問題,只要兩個IP都能解析到伺服器端就OK,不過目前遇到的問題是針對桃園市教育局私有雲虛擬主機雙IP問題做處理的,先講解一下環境配置。 私有雲虛擬主機預設有兩組IP,分為內網段跟外網段 例如 內網段IP-10.241.82.101 外網段IP-163.30.41.232  私有雲會針對學校的IP自動做DNS解析並配置到內網段,換句話說例如A學校進入A學校私有雲的網站,則私有雲DNS自動解析對應內網段IP-10.241.82.101,反之則對應外網段IP-163.30.41.232 。 但遇到一個頭痛的問題,就是外網段無權限解析內網段的私有雲虛擬主機,內網段一樣無法解析外網段的私有雲虛擬主機!! 但Xoops的實體路徑只能設一組,如果設成外網段的IP,則校內就看不到網站,反之設成校內IP,則外網就看不到網站。 解決方案只能修改Xoops的路徑跟前端透過jQuery轉換網址,方法如下: //php修改部分 1、先找到mainfile.php檔案,用筆記本打開 吧XOOPS_URL替換為 define('XOOPS_URL', "http://".$_SERVER['HTTP_HOST'].""); //$_SERVER['HTTP_HOST']為PHP自動判斷連線IP產生的網址變數,所以這樣用內網段進入XOOPS_URL就會變成內網段IP-10.241.82.101,用外網段進入XOOPS_URL就會變外網段IP-163.30.41.232 ,如此一來內外網就都能開啟網站了! 但這樣只完成了30%,因為假設學校用內網段的CK編輯器上傳了一張圖片,而圖片路徑是被寫入資料庫的,那外網則無法觀看此圖片,因為外網沒有解析內網段的權限。 所以還必須修改佈景加上全局圖片網址自動轉換功能才能完整解決,修改方法如下。 //JS修改部分 在佈景js區加上以下code <script> //取得Xoops實體路徑 var xoopsjsurl='<{$xoops_url}>'; ...

Smarty->foreach 迴圈抓出第一圈跟最後一圈的方法-教學撰寫:徐嘉裕Neil hsu

Xoops是使用Smarty樣板引擎,雖然有些判斷在php端就能處理,但是像系統佈景區塊之類的還是用Smarty的code來處理會比較方便,不用再另外寫一堆PHP程式,這裡分享一個在Smarty->foreach 迴圈抓出第一圈跟最後一圈的方法,使用first及last參數即可。 例如像下圖,需要抓出迴圈的第一圈跟最後一圈然後定義CSS做樣式樣的變化! 方法如下 <{foreach item=blockmenulayers from=$block.category name=blockmenulayers}> <div class=' <{if $smarty.foreach.blockmenulayers.first eq true}>firstbox<{/if}> <{if $smarty.foreach.blockmenulayers.last eq true}>lastbox<{/if}>   panel-titlebox '> 內容內容內容內容內容............ </div> <{/foreach}> 說明: <{if $smarty.foreach.blockmenulayers. first eq true}>firstbox<{/if}> //如果是第一圈first值為true顯示firstbox <{if $smarty.foreach.blockmenulayers. last eq true}>lastbox<{/if}> //如果是最後一圈last值為true顯示lastbox 所以class隨迴圈顯示的值就會是! 第一圈->firstbox 最後一圈->lastbox 扣除第一圈跟最後一圈->panel-titlebox 這樣就有三種css樣式可以定義了,讓版面更靈活美觀!! 有需要的朋友參考看看 工作心得撰寫: 徐嘉裕 Neil hsu

Xoops佈景區塊標題使用jQuery函數str.substr()限制輸出字元總數-教學撰寫:徐嘉裕Neil hsu

在開發xoops佈景時如果標題字數太長,我們通常會設個預設高度然後用overflow: hidden;隱藏被折行的內容,正常條件下這部分是沒問題的,但如果佈景標題想做些特別的設計,像是在文字右邊加上一些裝飾圖文,如果沒有限制輸出字元總數就會很麻煩! 舉例來說,如果要做文字右邊為斜角裝飾,文字區塊為display: inline;線內元素,文字沒段行之前都是正常的像下圖這樣 但如果文字段行後,原本的斜角就會跑到段行的結束點去 這樣畫面就不好看了,原因如下圖說明: 解決方法只能用jQuery函數str.substr()限制輸出字元總數,讓文字不要折行,這樣右邊距就不會跑到折行的下方,方法如下! 1、在佈景的<{$block.title}>標籤前面加上class定義好讓jQuery取值 <span class='blocktitle blocktitleto<{$block.id}>' name='<{$block.id}>'><{$block.title}></span> 備註說明:<{$block.id}>為區塊的id,我們用它來當作class的前綴 2、在佈景的js檔加上以下code //顯示字元限制 $(document).ready(function(){ $(".blocktitle").each(function(index) { $idname = $(this).attr("name"); var str=$(".blocktitleto"+$idname).text(); $(".blocktitleto"+$idname).text(str.substr( 0 , 25 )); }); }); 備註說明str.substr( 0 , 25 ) 藍字為擷取字串起始點,紅字為擷取字元總數 然後來看看剛剛被折行的區塊是否正常顯示 因為字元有輸出限制所以沒折行,右邊的斜線裝飾框就能正常顯示在區塊的右邊距了! 備註說明:如果是自行開發模組不用那麻煩,只要在php輸出...

解決Xoops清除暫存檔後樣板$xoops_module_header不會產生jquery.js的方法!-教學撰寫:徐嘉裕Neil hsu

用過Xoops的朋友應該都有遇過這問題,就是會員登入後如果吧暫存樣板檔清除或重新產生暫存樣板檔,佈景樣板的<{$xoops_module_header}>並不會引入jquery.js,除非開啟的區塊中本身有引入jquery.js,這將導致佈景有用到jQuery特效的套件都會失效,所以我們需另外寫一支程式來補強這部分的問題,方法如下。 1、在佈景檔樣板檔中找到<{$xoops_module_header}>變數,因為每個佈景開發者的樣板檔名跟配置都不一樣,所以建議就一個一個檔去搜尋,一定會有的。 2、在<{$xoops_module_header}>前面加上以下的code <!--module_header--> <{php}> if(!preg_match("/jquery.js/i", $this->_tpl_vars['xoops_module_header'])) { $module_header="<script src='".XOOPS_URL." /modules/neillibrary/js/jquery.js ' type='text/javascript'></script>"; } if(!preg_match("/jquery.ui.js/i", $this->_tpl_vars['xoops_module_header'])) { $module_header.="<script src='".XOOPS_URL."/browse.php?Frameworks/jquery/plugins/jquery.ui.js' type='text/javascript'></script>"; } echo $module_header; <{/php}> <{$xoops_module_header}> //紅字為讀取預設jquery.js路徑,可以修改為...