用過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>";
}
echo $module_header;
<{/php}>
<{$xoops_module_header}>
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路徑,可以修改為自己需要放置jquery.js的位置
這樣就ok了,如果佈景的<{$xoops_module_header}>沒有產生jquery.js時就讀預設的jquery.js,如果<{$xoops_module_header}>中已經有jquery.js則不讀取預設jquery.js,也能防止jquery.js重複引入的問題。
教學心得撰寫:徐嘉裕 Neil hsu
留言
張貼留言