跳到主要內容

發表文章

解決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路徑,可以修改為...

修改CentOS7->Xampp->MariaDB->sql_mode的方法(資料庫模式修改)-教學撰寫:徐嘉裕Neil hsu

之前寫過一篇修改本地端Windows架設xampp的sql_mode嚴格模式設定方法,有需要的朋友可以參考看看! https://neohsuxoops.blogspot.com/2019/12/1048-mariadb-sqlfor-windows.html 現在的問題是本地端Windows架設的xampp跟CentOS7架設的Lampp的sql_mode完全不一樣! 本地端(Windows) sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION 伺服器端(CentOS7) sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 當然如果以模組開發者的角度是採用更為嚴謹的資料庫模式設定,也就是伺服器端的資料庫模式來開發Xoops模組,所以我們開發的Xoops模組基本上這兩種模式都能運行! 但問題來了,Xoops還是有許多不錯的免費模組可以安裝,而且客戶也會自行安裝不是我們開發的模組,假設客戶端的sql_mode為超嚴謹模式,那這些模組都無法使用,會產生客戶管理網站的困擾,解決方法只能修改客戶端sql_mode改為較為寬鬆的 sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION 設定,這樣不管是我們開發的模組,還是客戶自己去安裝的模組就都能正常運作了, 修改CentOS7->Xampp->MariaDB->sql_mode的方法如下: 1、找到以下目錄,用筆記本打開 /opt/lampp/etc/my.cnf 2、找到[mysqld],在參數最下面加上 sql_mode = NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION ※預設是沒有sql_mode [mysqld] user=mysql port=3306 socket =/opt/lampp/var/mysql/mysql.sock key_buffer=16M max_allowed_packet=...

10.4.8-MariaDB->SQL嚴格模式設定方法(for-windows)-教學撰寫:徐嘉裕Neil hsu

說起來也奇怪至今仍不解哪出問題了?本地端跟客戶端同樣都是安裝XAMPP-7.3.11版,但客戶端的sql_mode設定卻和本地端不相同,導致許多模組本地端是正常的但上傳到客戶端後都無法使用,資料存取出錯或無法寫入,經過檢查發現XAMPP的windows版本跟CentOS版本my.ini配置是不一樣的! 先來看一下my.ini設定->windows版 sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION 資料庫設定是使用 NO_ZERO_IN_DATE NO_ZERO_DATE NO_ENGINE_SUBSTITUTION 再來看CentOS->my.ini設定 sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 資料庫設定是使用 STRICT_TRANS_TABLES ERROR_FOR_DIVISION_BY_ZERO NO_AUTO_CREATE_USER NO_ENGINE_SUBSTITUTION 差別在時間格式及預設值部分,為了讓本地端跟客戶端的設定一致,所以修改本地端的my.ini吧sql_mode替換為以下的設定值 sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 重新啟用MYSQL後再SQL輸入 SELECT @@GLOBAL.sql_mode看設定是否有生效! 如果顯示設定值跟my.ini中設定一樣就可以了,關於資料庫sql_mode常用值說明可以參考這個網站 http://xstarcd.github.io/wiki/MySQL/MySQL-sql-mode.html 先讓本地端跟客戶端設定一致,然後才來調整SQL語法,才能做升級工作喔!! 教學心得撰寫: 徐嘉裕 Neil hsu

使用htaccess進行網站轉址的方法-教學撰寫:徐嘉裕Neil hsu

分享一些常用的.htaccess網站轉址方法!有需要的朋友參考看看! //網址轉換 RewriteEngine on RewriteCond %{HTTP_HOST} ^123.88.88.666$ [NC] RewriteRule ^(.*)$ http://www.blogger.com [R=301,L] 這樣可以吧網站的IP:123.88.88.666轉換成http://www.blogger.com但不包含所帶變數及路徑 //網址轉換包含路徑檔名變數 RewriteEngine on RewriteCond %{HTTP_HOST} ^123.88.88.666$ [NC] RewriteRule ^(.*)$ http://www.blogger.com%{REQUEST_URI} [L,R=301] 這樣可以吧網站的IP:123.88.88.666轉換成http://www.blogger.com包含路徑檔名及變數 例如: http://123.88.88.666/index.php?id=123 轉換後   http://www.blogger.com/index.php?id=123 //HTTP轉HTTPS包含路徑檔名變數 RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 自動吧網站的http轉換為https包含路徑檔名及變數 把需要轉址的code貼到伺服器根目錄中的.htaccess文件裡面在重啟apache即可套用新設定 教學心得撰寫: 徐嘉裕 Neil hsu

jQuery變更結構中id名和class名的方法-教學撰寫:徐嘉裕Neil hsu

使用attr()函數可以變更網頁結構中的id名和class名,達到css樣式或是js功能切換的目的,方法如下! //HTML結構 <div id='boxid1'  class='boxclass1'>內文內文........</div> //更換Id名稱 $("#boxid1").attr('id','boxid2'); 這樣結構中的id由原本的boxid1更換為boxid2 //更換Class名稱 $(".boxclass1").attr('class','boxclass2'); 這樣結構中的class由原本的boxclass1更換為boxclass2 有需要的朋友參考看看 心得教學撰寫: 徐嘉裕 neil hsu

擷取臺中市教育局校園活動新聞的PHP程式,可用於Xoops自訂區塊中-教學撰寫:徐嘉裕Neil hsu

首先要先感謝台中市 喀哩國小 資訊老師提供的原始程式碼,這樣讓我節省很多時間,不用再去開發網頁爬蟲程式,這裡就按照原始程式碼修改為兩個樣式!直接可以顯示臺中市教育局校園活動新聞內容 首先區要知道所屬學校的網址,這樣程式才能去爬行撈資料,查詢學校網址的方法如下: 1、先進入臺中市校園活動新聞首頁 http://www.tc.edu.tw/SchoolNews/show 2、找到右下角的學校發表排行區塊 3、找到自己學校點進去,上面的網址就是該學校活動新聞網址,之後的程式需要貼入 樣式一:區塊輪播樣式 //PHP程式碼 echo "<script type='text/javascript' src='http://www.tc.edu.tw/js/jquery-1.6.4.min.js'></script> <script type='text/javascript' src='http://www.tc.edu.tw/js/plugins/jquery.cycle.all.min.js'></script> <script type='text/javascript'> $('#school_news').cycle({         fx:     'turnDown',         delay:  -2000,         speed:  2500 ,         timeout:  5000 ,         pause:1    }); </script> $show_num=1; //顯示幾則新聞,大於1則會有輪播效果 //取得新聞 $url = "http://www.tc.edu.tw/SchoolNews/show/school/id/546";  //貼上校園活動新聞網址 $con...

仿CSS的nth-child功能用PHP做一個用迴圈數帶出固定1.2.3的數值重複function-教學撰寫:徐嘉裕Neil hsu

CSS的nth-child其實是很好用的,但唯一的限制是指定的物件必須為相連,而且無法對子物件做樣式設定,例如以下結構就無法用nth-child來定義.thumbnail的樣式! <ul class="row"> <li class="col-md-4"> <div class="thumbnail"><img>......略</div> </li> <li class="col-md-4"> <div class="thumbnail"><img>......略</div> </li> <li class="col-md-4"> <div class="thumbnail"><img>......略</div> </li> </ul> 物件必須相連,nth-child是用物件的順序來定義樣式的,如果要做以下的效果固定迴圈3個區塊3種樣式用nth-child是無法實現的!! 當然是還有解決方法,Xoops是使用smarty樣板引擎,在foreach裡面用<{cycle values="box01,box02,box03"}>來定義class也是可以,但如果有做了AJAX的分類切換功能,那被切換的頁面是讀ajax.php,所以smarty的cycle又不能用了,無法兼顧。 最終的解決辦法還是要靠PHP,利用迴圈吧固定1.2.3的倍數整除後回傳數值,然後再輸出到樣板或直接輸出PHP上,這樣就沒問題了!寫了一個自動分3區塊樣式的function有需要的朋友參考看看! //PHP-CODE function blocksclassbox($key="",$i="",$type="",$prefix=""){ $nthchilds="...