在開發Xoops模組的時候如果有用到偏好設定的欄位時,會在模組根目錄中的xoops_version.php檔案建立以下的設定,例如果們要建一個偏好設定欄位名為text1
//---偏好設定---//
$modversion['config'] = array();
$i=1;
$modversion['config'][$i]['name'] = "text".$i.""; //欄位名為text1
$modversion['config'][$i]['title'] = '_MI_XOOPS_VERSION5';
$modversion['config'][$i]['description'] = '_MI_XOOPS_VERSION5';
$modversion['config'][$i]['formtype'] = 'text';
$modversion['config'][$i]['valuetype'] = 'int';
$modversion['config'][$i]['default'] = '1'; //0不啟用1啟用
$i++;
更新模組後,Xoops會自動吧text1欄位即設定新增到config資料表中
如果是同一個模組要取得text1的conf_value值很簡單,只需要!
global $xoopsModuleConfig;
echo $xoopsModuleConfig['text1'];
即可,但如果遇到不是同一個模組時候呢?例如模組A想讀取模組B的conf_value值,這方法就不行了,因為$xoopsModuleConfig預設只能讀取自己模組的config欄位數值,無法取得其他模組的,解決方法是使用Xoops內建函數來取的
例如模組A->讀取模組B的conf_value
$modhandler = &xoops_gethandler('module');
$xoopsModule = &$modhandler->getByDirname('模組B的名稱');
$config_handler = &xoops_gethandler('config');
$xoopsModuleConfig = &$config_handler->getConfigsByCat(0, $xoopsModule->getVar('mid'));
這樣 echo $xoopsModuleConfig['text1']; 就能取得模組B的conf_value內容!
為了方便使用吧這段函數function起來丟到模組的function.php中以方便重複使用!
//取得指定模組config資料表欄位值
function configvar($modulesid=""){
//取得$xoopsModuleConfig設定
$modhandler = &xoops_gethandler('module');
$xoopsModule = &$modhandler->getByDirname($modulesid);
$config_handler = &xoops_gethandler('config');
$xoopsModuleConfig = &$config_handler->getConfigsByCat(0, $xoopsModule->getVar('mid'));
return $xoopsModuleConfig;
}
//讀出$xoopsModuleConfig值
$xoopsModuleConfig=configvar($modulesid="模組B的名稱'");
echo $xoopsModuleConfig['text1'];
這樣就OK了!!!有需要的朋友參考看看!!
教學撰寫:徐嘉裕 Neil hsu
//---偏好設定---//
$modversion['config'] = array();
$i=1;
$modversion['config'][$i]['name'] = "text".$i.""; //欄位名為text1
$modversion['config'][$i]['title'] = '_MI_XOOPS_VERSION5';
$modversion['config'][$i]['description'] = '_MI_XOOPS_VERSION5';
$modversion['config'][$i]['formtype'] = 'text';
$modversion['config'][$i]['valuetype'] = 'int';
$modversion['config'][$i]['default'] = '1'; //0不啟用1啟用
$i++;
更新模組後,Xoops會自動吧text1欄位即設定新增到config資料表中
如果是同一個模組要取得text1的conf_value值很簡單,只需要!
global $xoopsModuleConfig;
echo $xoopsModuleConfig['text1'];
即可,但如果遇到不是同一個模組時候呢?例如模組A想讀取模組B的conf_value值,這方法就不行了,因為$xoopsModuleConfig預設只能讀取自己模組的config欄位數值,無法取得其他模組的,解決方法是使用Xoops內建函數來取的
例如模組A->讀取模組B的conf_value
$modhandler = &xoops_gethandler('module');
$xoopsModule = &$modhandler->getByDirname('模組B的名稱');
$config_handler = &xoops_gethandler('config');
$xoopsModuleConfig = &$config_handler->getConfigsByCat(0, $xoopsModule->getVar('mid'));
這樣 echo $xoopsModuleConfig['text1']; 就能取得模組B的conf_value內容!
為了方便使用吧這段函數function起來丟到模組的function.php中以方便重複使用!
//取得指定模組config資料表欄位值
function configvar($modulesid=""){
//取得$xoopsModuleConfig設定
$modhandler = &xoops_gethandler('module');
$xoopsModule = &$modhandler->getByDirname($modulesid);
$config_handler = &xoops_gethandler('config');
$xoopsModuleConfig = &$config_handler->getConfigsByCat(0, $xoopsModule->getVar('mid'));
return $xoopsModuleConfig;
}
//讀出$xoopsModuleConfig值
$xoopsModuleConfig=configvar($modulesid="模組B的名稱'");
echo $xoopsModuleConfig['text1'];
這樣就OK了!!!有需要的朋友參考看看!!
教學撰寫:徐嘉裕 Neil hsu
留言
張貼留言