$modversion['onInstall'] = "include/onInstall.php"; $modversion['onUpdate'] = "include/onUpdate.php"; $modversion['onUninstall'] = "include/onUninstall.php"; ``` 3. 依序編輯 `onInstall.php` 等檔案 4. `onInstall `是安裝時要執行的程式。執行函數為「`xoops_module_install_模組目錄 `」 5. `onUninstall `是移除時要執行的程式。函數為「`xoops_module_uninstall_模組目錄`」 6. `onUpdate `是更新時要執行的程式。檔執行函數為「` xoops_module_update_模組目錄`」 ### 二、 自動建立群組 1. XOOPS的權限判斷一律以「群組」為判斷基礎,一個人可以同時隸屬多個群組。 2. 一個人的所有權限,就是其所屬群組所有權限的集合。基本群組有:管理員、會員、訪客 3. 群組是XOOPS判斷權限的主要依據,可讓程式自動建立之(建議放在`onInstall.php`): ``` $member_handler = xoops_gethandler('member'); $group = $member_handler->createGroup(); $group->setVar("name", $群組名稱); $group->setVar("description", $群組說明); $member_handler->insertGroup($group); ``` 4. 亦可自己寫新增函數(可判斷是否群組已經存在) ``` function mk_group($name=""){ global $xoopsDB; $sql = "select groupid from ".$xoopsDB->prefix("groups")." where `name`='$name'"; $result=$xoopsDB->query($sql) or web_error($sql); list($groupid)=$xoopsDB->fetchRow($result); if(empty($groupid)){ $sql = "insert into ".$xoopsDB->prefix("groups")." (`name`) values('{$name}')"; $xoopsDB->queryF($sql) or web_error($sql); //取得最後新增資料的流水編號 $groupid=$xoopsDB->getInsertId(); } return $groupid; } ``` ### 三、 把各種管理功能搬到前台 1. 在許多時候,一個系統是需要多人管理的但又不希望每個人都可以到後台,那麼在設定好群組及權限的情況下,就可以把功能搬到前台來。 2. 修改連結,把新增和修改都從`admin/main.php`改到`index.php`,搬移函數和流程到`index.php`,修正流程的轉向,這樣就差不多了。 ### 四、 XOOPS權限與群組 1. 基本的權限有四種,各個模組可自行視需求在模組中新增權限項目: - (1) 系統管理權限:通常只開放給管理員,擁有整個XOOPS系統生殺大權。 - (2) 模組管理權限:某模組的管理權限,一般也只開給管理者,偶爾開給協助的管理人。 - (3) 模組使用權限:某模組的使用權限,會開放給所有群組,否則有些模組將無法使用。 - (4) 區塊使用權限:某區塊的使用權限,會開放給所有群組,否則有些區塊將看不到。 2. 這四種權限,均紀錄在`group_permission`這個資料表:「`system_admin`」就是「系統管理權」;「`module_read`」就是「模組的使用權」;「`module_admin`」就是「模組的管理權」;「`block_read`」就是「區塊的使用權」 ### 五、 加入權限設定頁面 1. 將`main.php`改為(記得修改`$item_list`的權限名稱,若只有一種,可留一個即可): ``` "權限一", '2' => "權限二", ); $mid = $xoopsModule->mid(); $perm_name = $xoopsModule->dirname(); $formi = new XoopsGroupPermForm('細部權限設定', $mid, $perm_name, '請勾選欲開放給群組使用的權限:'); foreach ($item_list as $item_id => $item_name) { $formi->addItem($item_id, $item_name); } echo $formi->render(); include_once 'footer.php'; ``` 2. 儲存成功後,即可在`group_permission`資料表看到一筆資料,其中`gperm_groupid`是群組編號,`gperm_itemid`則是「`$item_list`」中的「權限項目編號」,`gperm_modid`是模組編號,`gperm_name`是自訂的「`$perm_name`」名稱。 ### 六、 套用權限 1. 將以下語法套用至需要判斷權限的地方: ``` if(power_chk($perm_name = "", $sn = "")){ //若有權限要做的動作 } ``` 2. `power_chk()`是tadtools提供的函數,只要給名稱(也可以空值)及權限編號(必要)即可判斷目前登入者有無權限。也可以判斷無權限就直接轉向。 ``` if (!power_chk('', 1)) { redirect_header('index.php', 3, '無操作權限'); } ``` ### 七、 加入搜尋功能 1. 可先啟用XOOPS的搜尋區塊,或直接用網址:「http://網址/search.php」來搜尋。 2. 修改`include/search.php`,並根據提示修改之即可。 3. 圖示請準備24x24的圖示,並存到`images`下。 4. 在x`oops_version.php`中加入搜尋設定(記得更新模組): ``` $modversion['hasSearch'] = 1; $modversion['search']['file'] = "include/search.php"; $modversion['search']['func'] = "snews_search"; ``` ### 八、 加入偏好設定 1. 若有一些和模組部份功能的設定要讓站長調整,那可直接使用偏好設定。 2. 模組若需要偏好設定功能,那麼請加入以下項目(在此常數需要加上引號才正常!): ``` $modversion['config'][$i]['name'] = 'show_num'; $modversion['config'][$i]['title'] = '_MI_SNEWS_SHOW_NUM'; $modversion['config'][$i]['description'] = '_MI_SNEWS_SHOW_NUM_DESC'; $modversion['config'][$i]['formtype'] = 'select'; $modversion['config'][$i]['valuetype'] = 'int'; $modversion['config'][$i]['options'] = array('3篇' => 3, '6篇' => 6, '9篇' => 9); $modversion['config'][$i]['default'] = 6; ``` 3. 記得加入語系到`modinfo.php` ``` define('_MI_SNEWS_SHOW_NUM', '每頁顯示文章數'); define('_MI_SNEWS_SHOW_NUM_DESC', '設定每頁顯示文章數(分頁用)'); ``` 4. 輸入欄位類型其可用的項目有: - (1) 「`yesno`」是否的單選框、「`textbox`」文字框、「`password`」密碼框、「`color`」顏色框、「`hidden`」隱藏框、「`textarea`」大量文字框 - (2) 「`select`」下拉選單、「`select_multi`」可複選的下拉選單 - (3) 「`theme`」佈景選單、「`theme_multi`」可複選的佈景選單 - (4) 「`group`」群組選單、「`group_multi`」可複選的群組選單 - (5) 「`user`」已註冊使用者選單、「`user_multi`」可複選的已註冊使用者選單 - (6) 「`tplset`」樣板選單、「`cpanel`」後台選單、「`timezone`」時區選單、「`language`」語系選單、「`startpage`」首頁模組選單、「`module_cache`」模組快取時間選單、「`site_cache`」網站快取時間選單 5. 偏好設定的輸入值型態,其可用的項目有: - (1) 「`int`」整數: yesno 、group、user - (2) 「`float`」浮點數 - (3) 「`text`」一般文字 - (4) 「`textarea`」大量文字 - (5) 「`array`」陣列: select\_multi、group\_multi、 user\_multi...等 6. 偏好設定的選項設定使用陣列寫法,用於有 `select `或 `select_multi `時,「'3 篇' => 3」左邊的3 篇(索引)會顯示在螢幕上,可用文字,右邊的3(值)會存入資料庫。 ### 九、 取得偏好設定值 1. 在模組中套用時,直接用以下方式即可取得偏好設定值: ``` $xoopsModuleConfig['設定名稱'] ``` 2. 例如分頁可以改成這樣(記得`global $xoopsModuleConfig`): ``` $PageBar = getPageBar($sql, $xoopsModuleConfig['show_num'], 10); ``` 3. 若要在區塊中(或別的模組)取得某個模組的偏好設定 ``` $modhandler = xoops_gethandler('module'); $xoopsModule = $modhandler->getByDirname("模組目錄"); $config_handler =xoops_gethandler('config'); $xoopsModuleConfig = $config_handler->getConfigsByCat(0, $xoopsModule->mid()); ```
$member_handler = xoops_gethandler('member'); $group = $member_handler->createGroup(); $group->setVar("name", $群組名稱); $group->setVar("description", $群組說明); $member_handler->insertGroup($group); ``` 4. 亦可自己寫新增函數(可判斷是否群組已經存在) ``` function mk_group($name=""){ global $xoopsDB; $sql = "select groupid from ".$xoopsDB->prefix("groups")." where `name`='$name'"; $result=$xoopsDB->query($sql) or web_error($sql); list($groupid)=$xoopsDB->fetchRow($result); if(empty($groupid)){ $sql = "insert into ".$xoopsDB->prefix("groups")." (`name`) values('{$name}')"; $xoopsDB->queryF($sql) or web_error($sql); //取得最後新增資料的流水編號 $groupid=$xoopsDB->getInsertId(); } return $groupid; } ``` ### 三、 把各種管理功能搬到前台 1. 在許多時候,一個系統是需要多人管理的但又不希望每個人都可以到後台,那麼在設定好群組及權限的情況下,就可以把功能搬到前台來。 2. 修改連結,把新增和修改都從`admin/main.php`改到`index.php`,搬移函數和流程到`index.php`,修正流程的轉向,這樣就差不多了。 ### 四、 XOOPS權限與群組 1. 基本的權限有四種,各個模組可自行視需求在模組中新增權限項目: - (1) 系統管理權限:通常只開放給管理員,擁有整個XOOPS系統生殺大權。 - (2) 模組管理權限:某模組的管理權限,一般也只開給管理者,偶爾開給協助的管理人。 - (3) 模組使用權限:某模組的使用權限,會開放給所有群組,否則有些模組將無法使用。 - (4) 區塊使用權限:某區塊的使用權限,會開放給所有群組,否則有些區塊將看不到。 2. 這四種權限,均紀錄在`group_permission`這個資料表:「`system_admin`」就是「系統管理權」;「`module_read`」就是「模組的使用權」;「`module_admin`」就是「模組的管理權」;「`block_read`」就是「區塊的使用權」 ### 五、 加入權限設定頁面 1. 將`main.php`改為(記得修改`$item_list`的權限名稱,若只有一種,可留一個即可): ``` "權限一", '2' => "權限二", ); $mid = $xoopsModule->mid(); $perm_name = $xoopsModule->dirname(); $formi = new XoopsGroupPermForm('細部權限設定', $mid, $perm_name, '請勾選欲開放給群組使用的權限:'); foreach ($item_list as $item_id => $item_name) { $formi->addItem($item_id, $item_name); } echo $formi->render(); include_once 'footer.php'; ``` 2. 儲存成功後,即可在`group_permission`資料表看到一筆資料,其中`gperm_groupid`是群組編號,`gperm_itemid`則是「`$item_list`」中的「權限項目編號」,`gperm_modid`是模組編號,`gperm_name`是自訂的「`$perm_name`」名稱。 ### 六、 套用權限 1. 將以下語法套用至需要判斷權限的地方: ``` if(power_chk($perm_name = "", $sn = "")){ //若有權限要做的動作 } ``` 2. `power_chk()`是tadtools提供的函數,只要給名稱(也可以空值)及權限編號(必要)即可判斷目前登入者有無權限。也可以判斷無權限就直接轉向。 ``` if (!power_chk('', 1)) { redirect_header('index.php', 3, '無操作權限'); } ``` ### 七、 加入搜尋功能 1. 可先啟用XOOPS的搜尋區塊,或直接用網址:「http://網址/search.php」來搜尋。 2. 修改`include/search.php`,並根據提示修改之即可。 3. 圖示請準備24x24的圖示,並存到`images`下。 4. 在x`oops_version.php`中加入搜尋設定(記得更新模組): ``` $modversion['hasSearch'] = 1; $modversion['search']['file'] = "include/search.php"; $modversion['search']['func'] = "snews_search"; ``` ### 八、 加入偏好設定 1. 若有一些和模組部份功能的設定要讓站長調整,那可直接使用偏好設定。 2. 模組若需要偏好設定功能,那麼請加入以下項目(在此常數需要加上引號才正常!): ``` $modversion['config'][$i]['name'] = 'show_num'; $modversion['config'][$i]['title'] = '_MI_SNEWS_SHOW_NUM'; $modversion['config'][$i]['description'] = '_MI_SNEWS_SHOW_NUM_DESC'; $modversion['config'][$i]['formtype'] = 'select'; $modversion['config'][$i]['valuetype'] = 'int'; $modversion['config'][$i]['options'] = array('3篇' => 3, '6篇' => 6, '9篇' => 9); $modversion['config'][$i]['default'] = 6; ``` 3. 記得加入語系到`modinfo.php` ``` define('_MI_SNEWS_SHOW_NUM', '每頁顯示文章數'); define('_MI_SNEWS_SHOW_NUM_DESC', '設定每頁顯示文章數(分頁用)'); ``` 4. 輸入欄位類型其可用的項目有: - (1) 「`yesno`」是否的單選框、「`textbox`」文字框、「`password`」密碼框、「`color`」顏色框、「`hidden`」隱藏框、「`textarea`」大量文字框 - (2) 「`select`」下拉選單、「`select_multi`」可複選的下拉選單 - (3) 「`theme`」佈景選單、「`theme_multi`」可複選的佈景選單 - (4) 「`group`」群組選單、「`group_multi`」可複選的群組選單 - (5) 「`user`」已註冊使用者選單、「`user_multi`」可複選的已註冊使用者選單 - (6) 「`tplset`」樣板選單、「`cpanel`」後台選單、「`timezone`」時區選單、「`language`」語系選單、「`startpage`」首頁模組選單、「`module_cache`」模組快取時間選單、「`site_cache`」網站快取時間選單 5. 偏好設定的輸入值型態,其可用的項目有: - (1) 「`int`」整數: yesno 、group、user - (2) 「`float`」浮點數 - (3) 「`text`」一般文字 - (4) 「`textarea`」大量文字 - (5) 「`array`」陣列: select\_multi、group\_multi、 user\_multi...等 6. 偏好設定的選項設定使用陣列寫法,用於有 `select `或 `select_multi `時,「'3 篇' => 3」左邊的3 篇(索引)會顯示在螢幕上,可用文字,右邊的3(值)會存入資料庫。 ### 九、 取得偏好設定值 1. 在模組中套用時,直接用以下方式即可取得偏好設定值: ``` $xoopsModuleConfig['設定名稱'] ``` 2. 例如分頁可以改成這樣(記得`global $xoopsModuleConfig`): ``` $PageBar = getPageBar($sql, $xoopsModuleConfig['show_num'], 10); ``` 3. 若要在區塊中(或別的模組)取得某個模組的偏好設定 ``` $modhandler = xoops_gethandler('module'); $xoopsModule = $modhandler->getByDirname("模組目錄"); $config_handler =xoops_gethandler('config'); $xoopsModuleConfig = $config_handler->getConfigsByCat(0, $xoopsModule->mid()); ```
function mk_group($name=""){ global $xoopsDB; $sql = "select groupid from ".$xoopsDB->prefix("groups")." where `name`='$name'"; $result=$xoopsDB->query($sql) or web_error($sql); list($groupid)=$xoopsDB->fetchRow($result); if(empty($groupid)){ $sql = "insert into ".$xoopsDB->prefix("groups")." (`name`) values('{$name}')"; $xoopsDB->queryF($sql) or web_error($sql); //取得最後新增資料的流水編號 $groupid=$xoopsDB->getInsertId(); } return $groupid; } ``` ### 三、 把各種管理功能搬到前台 1. 在許多時候,一個系統是需要多人管理的但又不希望每個人都可以到後台,那麼在設定好群組及權限的情況下,就可以把功能搬到前台來。 2. 修改連結,把新增和修改都從`admin/main.php`改到`index.php`,搬移函數和流程到`index.php`,修正流程的轉向,這樣就差不多了。 ### 四、 XOOPS權限與群組 1. 基本的權限有四種,各個模組可自行視需求在模組中新增權限項目: - (1) 系統管理權限:通常只開放給管理員,擁有整個XOOPS系統生殺大權。 - (2) 模組管理權限:某模組的管理權限,一般也只開給管理者,偶爾開給協助的管理人。 - (3) 模組使用權限:某模組的使用權限,會開放給所有群組,否則有些模組將無法使用。 - (4) 區塊使用權限:某區塊的使用權限,會開放給所有群組,否則有些區塊將看不到。 2. 這四種權限,均紀錄在`group_permission`這個資料表:「`system_admin`」就是「系統管理權」;「`module_read`」就是「模組的使用權」;「`module_admin`」就是「模組的管理權」;「`block_read`」就是「區塊的使用權」 ### 五、 加入權限設定頁面 1. 將`main.php`改為(記得修改`$item_list`的權限名稱,若只有一種,可留一個即可): ``` "權限一", '2' => "權限二", ); $mid = $xoopsModule->mid(); $perm_name = $xoopsModule->dirname(); $formi = new XoopsGroupPermForm('細部權限設定', $mid, $perm_name, '請勾選欲開放給群組使用的權限:'); foreach ($item_list as $item_id => $item_name) { $formi->addItem($item_id, $item_name); } echo $formi->render(); include_once 'footer.php'; ``` 2. 儲存成功後,即可在`group_permission`資料表看到一筆資料,其中`gperm_groupid`是群組編號,`gperm_itemid`則是「`$item_list`」中的「權限項目編號」,`gperm_modid`是模組編號,`gperm_name`是自訂的「`$perm_name`」名稱。 ### 六、 套用權限 1. 將以下語法套用至需要判斷權限的地方: ``` if(power_chk($perm_name = "", $sn = "")){ //若有權限要做的動作 } ``` 2. `power_chk()`是tadtools提供的函數,只要給名稱(也可以空值)及權限編號(必要)即可判斷目前登入者有無權限。也可以判斷無權限就直接轉向。 ``` if (!power_chk('', 1)) { redirect_header('index.php', 3, '無操作權限'); } ``` ### 七、 加入搜尋功能 1. 可先啟用XOOPS的搜尋區塊,或直接用網址:「http://網址/search.php」來搜尋。 2. 修改`include/search.php`,並根據提示修改之即可。 3. 圖示請準備24x24的圖示,並存到`images`下。 4. 在x`oops_version.php`中加入搜尋設定(記得更新模組): ``` $modversion['hasSearch'] = 1; $modversion['search']['file'] = "include/search.php"; $modversion['search']['func'] = "snews_search"; ``` ### 八、 加入偏好設定 1. 若有一些和模組部份功能的設定要讓站長調整,那可直接使用偏好設定。 2. 模組若需要偏好設定功能,那麼請加入以下項目(在此常數需要加上引號才正常!): ``` $modversion['config'][$i]['name'] = 'show_num'; $modversion['config'][$i]['title'] = '_MI_SNEWS_SHOW_NUM'; $modversion['config'][$i]['description'] = '_MI_SNEWS_SHOW_NUM_DESC'; $modversion['config'][$i]['formtype'] = 'select'; $modversion['config'][$i]['valuetype'] = 'int'; $modversion['config'][$i]['options'] = array('3篇' => 3, '6篇' => 6, '9篇' => 9); $modversion['config'][$i]['default'] = 6; ``` 3. 記得加入語系到`modinfo.php` ``` define('_MI_SNEWS_SHOW_NUM', '每頁顯示文章數'); define('_MI_SNEWS_SHOW_NUM_DESC', '設定每頁顯示文章數(分頁用)'); ``` 4. 輸入欄位類型其可用的項目有: - (1) 「`yesno`」是否的單選框、「`textbox`」文字框、「`password`」密碼框、「`color`」顏色框、「`hidden`」隱藏框、「`textarea`」大量文字框 - (2) 「`select`」下拉選單、「`select_multi`」可複選的下拉選單 - (3) 「`theme`」佈景選單、「`theme_multi`」可複選的佈景選單 - (4) 「`group`」群組選單、「`group_multi`」可複選的群組選單 - (5) 「`user`」已註冊使用者選單、「`user_multi`」可複選的已註冊使用者選單 - (6) 「`tplset`」樣板選單、「`cpanel`」後台選單、「`timezone`」時區選單、「`language`」語系選單、「`startpage`」首頁模組選單、「`module_cache`」模組快取時間選單、「`site_cache`」網站快取時間選單 5. 偏好設定的輸入值型態,其可用的項目有: - (1) 「`int`」整數: yesno 、group、user - (2) 「`float`」浮點數 - (3) 「`text`」一般文字 - (4) 「`textarea`」大量文字 - (5) 「`array`」陣列: select\_multi、group\_multi、 user\_multi...等 6. 偏好設定的選項設定使用陣列寫法,用於有 `select `或 `select_multi `時,「'3 篇' => 3」左邊的3 篇(索引)會顯示在螢幕上,可用文字,右邊的3(值)會存入資料庫。 ### 九、 取得偏好設定值 1. 在模組中套用時,直接用以下方式即可取得偏好設定值: ``` $xoopsModuleConfig['設定名稱'] ``` 2. 例如分頁可以改成這樣(記得`global $xoopsModuleConfig`): ``` $PageBar = getPageBar($sql, $xoopsModuleConfig['show_num'], 10); ``` 3. 若要在區塊中(或別的模組)取得某個模組的偏好設定 ``` $modhandler = xoops_gethandler('module'); $xoopsModule = $modhandler->getByDirname("模組目錄"); $config_handler =xoops_gethandler('config'); $xoopsModuleConfig = $config_handler->getConfigsByCat(0, $xoopsModule->mid()); ```
"權限一", '2' => "權限二", ); $mid = $xoopsModule->mid(); $perm_name = $xoopsModule->dirname(); $formi = new XoopsGroupPermForm('細部權限設定', $mid, $perm_name, '請勾選欲開放給群組使用的權限:'); foreach ($item_list as $item_id => $item_name) { $formi->addItem($item_id, $item_name); } echo $formi->render(); include_once 'footer.php'; ``` 2. 儲存成功後,即可在`group_permission`資料表看到一筆資料,其中`gperm_groupid`是群組編號,`gperm_itemid`則是「`$item_list`」中的「權限項目編號」,`gperm_modid`是模組編號,`gperm_name`是自訂的「`$perm_name`」名稱。 ### 六、 套用權限 1. 將以下語法套用至需要判斷權限的地方: ``` if(power_chk($perm_name = "", $sn = "")){ //若有權限要做的動作 } ``` 2. `power_chk()`是tadtools提供的函數,只要給名稱(也可以空值)及權限編號(必要)即可判斷目前登入者有無權限。也可以判斷無權限就直接轉向。 ``` if (!power_chk('', 1)) { redirect_header('index.php', 3, '無操作權限'); } ``` ### 七、 加入搜尋功能 1. 可先啟用XOOPS的搜尋區塊,或直接用網址:「http://網址/search.php」來搜尋。 2. 修改`include/search.php`,並根據提示修改之即可。 3. 圖示請準備24x24的圖示,並存到`images`下。 4. 在x`oops_version.php`中加入搜尋設定(記得更新模組): ``` $modversion['hasSearch'] = 1; $modversion['search']['file'] = "include/search.php"; $modversion['search']['func'] = "snews_search"; ``` ### 八、 加入偏好設定 1. 若有一些和模組部份功能的設定要讓站長調整,那可直接使用偏好設定。 2. 模組若需要偏好設定功能,那麼請加入以下項目(在此常數需要加上引號才正常!): ``` $modversion['config'][$i]['name'] = 'show_num'; $modversion['config'][$i]['title'] = '_MI_SNEWS_SHOW_NUM'; $modversion['config'][$i]['description'] = '_MI_SNEWS_SHOW_NUM_DESC'; $modversion['config'][$i]['formtype'] = 'select'; $modversion['config'][$i]['valuetype'] = 'int'; $modversion['config'][$i]['options'] = array('3篇' => 3, '6篇' => 6, '9篇' => 9); $modversion['config'][$i]['default'] = 6; ``` 3. 記得加入語系到`modinfo.php` ``` define('_MI_SNEWS_SHOW_NUM', '每頁顯示文章數'); define('_MI_SNEWS_SHOW_NUM_DESC', '設定每頁顯示文章數(分頁用)'); ``` 4. 輸入欄位類型其可用的項目有: - (1) 「`yesno`」是否的單選框、「`textbox`」文字框、「`password`」密碼框、「`color`」顏色框、「`hidden`」隱藏框、「`textarea`」大量文字框 - (2) 「`select`」下拉選單、「`select_multi`」可複選的下拉選單 - (3) 「`theme`」佈景選單、「`theme_multi`」可複選的佈景選單 - (4) 「`group`」群組選單、「`group_multi`」可複選的群組選單 - (5) 「`user`」已註冊使用者選單、「`user_multi`」可複選的已註冊使用者選單 - (6) 「`tplset`」樣板選單、「`cpanel`」後台選單、「`timezone`」時區選單、「`language`」語系選單、「`startpage`」首頁模組選單、「`module_cache`」模組快取時間選單、「`site_cache`」網站快取時間選單 5. 偏好設定的輸入值型態,其可用的項目有: - (1) 「`int`」整數: yesno 、group、user - (2) 「`float`」浮點數 - (3) 「`text`」一般文字 - (4) 「`textarea`」大量文字 - (5) 「`array`」陣列: select\_multi、group\_multi、 user\_multi...等 6. 偏好設定的選項設定使用陣列寫法,用於有 `select `或 `select_multi `時,「'3 篇' => 3」左邊的3 篇(索引)會顯示在螢幕上,可用文字,右邊的3(值)會存入資料庫。 ### 九、 取得偏好設定值 1. 在模組中套用時,直接用以下方式即可取得偏好設定值: ``` $xoopsModuleConfig['設定名稱'] ``` 2. 例如分頁可以改成這樣(記得`global $xoopsModuleConfig`): ``` $PageBar = getPageBar($sql, $xoopsModuleConfig['show_num'], 10); ``` 3. 若要在區塊中(或別的模組)取得某個模組的偏好設定 ``` $modhandler = xoops_gethandler('module'); $xoopsModule = $modhandler->getByDirname("模組目錄"); $config_handler =xoops_gethandler('config'); $xoopsModuleConfig = $config_handler->getConfigsByCat(0, $xoopsModule->mid()); ```
if(power_chk($perm_name = "", $sn = "")){ //若有權限要做的動作 } ``` 2. `power_chk()`是tadtools提供的函數,只要給名稱(也可以空值)及權限編號(必要)即可判斷目前登入者有無權限。也可以判斷無權限就直接轉向。 ``` if (!power_chk('', 1)) { redirect_header('index.php', 3, '無操作權限'); } ``` ### 七、 加入搜尋功能 1. 可先啟用XOOPS的搜尋區塊,或直接用網址:「http://網址/search.php」來搜尋。 2. 修改`include/search.php`,並根據提示修改之即可。 3. 圖示請準備24x24的圖示,並存到`images`下。 4. 在x`oops_version.php`中加入搜尋設定(記得更新模組): ``` $modversion['hasSearch'] = 1; $modversion['search']['file'] = "include/search.php"; $modversion['search']['func'] = "snews_search"; ``` ### 八、 加入偏好設定 1. 若有一些和模組部份功能的設定要讓站長調整,那可直接使用偏好設定。 2. 模組若需要偏好設定功能,那麼請加入以下項目(在此常數需要加上引號才正常!): ``` $modversion['config'][$i]['name'] = 'show_num'; $modversion['config'][$i]['title'] = '_MI_SNEWS_SHOW_NUM'; $modversion['config'][$i]['description'] = '_MI_SNEWS_SHOW_NUM_DESC'; $modversion['config'][$i]['formtype'] = 'select'; $modversion['config'][$i]['valuetype'] = 'int'; $modversion['config'][$i]['options'] = array('3篇' => 3, '6篇' => 6, '9篇' => 9); $modversion['config'][$i]['default'] = 6; ``` 3. 記得加入語系到`modinfo.php` ``` define('_MI_SNEWS_SHOW_NUM', '每頁顯示文章數'); define('_MI_SNEWS_SHOW_NUM_DESC', '設定每頁顯示文章數(分頁用)'); ``` 4. 輸入欄位類型其可用的項目有: - (1) 「`yesno`」是否的單選框、「`textbox`」文字框、「`password`」密碼框、「`color`」顏色框、「`hidden`」隱藏框、「`textarea`」大量文字框 - (2) 「`select`」下拉選單、「`select_multi`」可複選的下拉選單 - (3) 「`theme`」佈景選單、「`theme_multi`」可複選的佈景選單 - (4) 「`group`」群組選單、「`group_multi`」可複選的群組選單 - (5) 「`user`」已註冊使用者選單、「`user_multi`」可複選的已註冊使用者選單 - (6) 「`tplset`」樣板選單、「`cpanel`」後台選單、「`timezone`」時區選單、「`language`」語系選單、「`startpage`」首頁模組選單、「`module_cache`」模組快取時間選單、「`site_cache`」網站快取時間選單 5. 偏好設定的輸入值型態,其可用的項目有: - (1) 「`int`」整數: yesno 、group、user - (2) 「`float`」浮點數 - (3) 「`text`」一般文字 - (4) 「`textarea`」大量文字 - (5) 「`array`」陣列: select\_multi、group\_multi、 user\_multi...等 6. 偏好設定的選項設定使用陣列寫法,用於有 `select `或 `select_multi `時,「'3 篇' => 3」左邊的3 篇(索引)會顯示在螢幕上,可用文字,右邊的3(值)會存入資料庫。 ### 九、 取得偏好設定值 1. 在模組中套用時,直接用以下方式即可取得偏好設定值: ``` $xoopsModuleConfig['設定名稱'] ``` 2. 例如分頁可以改成這樣(記得`global $xoopsModuleConfig`): ``` $PageBar = getPageBar($sql, $xoopsModuleConfig['show_num'], 10); ``` 3. 若要在區塊中(或別的模組)取得某個模組的偏好設定 ``` $modhandler = xoops_gethandler('module'); $xoopsModule = $modhandler->getByDirname("模組目錄"); $config_handler =xoops_gethandler('config'); $xoopsModuleConfig = $config_handler->getConfigsByCat(0, $xoopsModule->mid()); ```
if (!power_chk('', 1)) { redirect_header('index.php', 3, '無操作權限'); } ``` ### 七、 加入搜尋功能 1. 可先啟用XOOPS的搜尋區塊,或直接用網址:「http://網址/search.php」來搜尋。 2. 修改`include/search.php`,並根據提示修改之即可。 3. 圖示請準備24x24的圖示,並存到`images`下。 4. 在x`oops_version.php`中加入搜尋設定(記得更新模組): ``` $modversion['hasSearch'] = 1; $modversion['search']['file'] = "include/search.php"; $modversion['search']['func'] = "snews_search"; ``` ### 八、 加入偏好設定 1. 若有一些和模組部份功能的設定要讓站長調整,那可直接使用偏好設定。 2. 模組若需要偏好設定功能,那麼請加入以下項目(在此常數需要加上引號才正常!): ``` $modversion['config'][$i]['name'] = 'show_num'; $modversion['config'][$i]['title'] = '_MI_SNEWS_SHOW_NUM'; $modversion['config'][$i]['description'] = '_MI_SNEWS_SHOW_NUM_DESC'; $modversion['config'][$i]['formtype'] = 'select'; $modversion['config'][$i]['valuetype'] = 'int'; $modversion['config'][$i]['options'] = array('3篇' => 3, '6篇' => 6, '9篇' => 9); $modversion['config'][$i]['default'] = 6; ``` 3. 記得加入語系到`modinfo.php` ``` define('_MI_SNEWS_SHOW_NUM', '每頁顯示文章數'); define('_MI_SNEWS_SHOW_NUM_DESC', '設定每頁顯示文章數(分頁用)'); ``` 4. 輸入欄位類型其可用的項目有: - (1) 「`yesno`」是否的單選框、「`textbox`」文字框、「`password`」密碼框、「`color`」顏色框、「`hidden`」隱藏框、「`textarea`」大量文字框 - (2) 「`select`」下拉選單、「`select_multi`」可複選的下拉選單 - (3) 「`theme`」佈景選單、「`theme_multi`」可複選的佈景選單 - (4) 「`group`」群組選單、「`group_multi`」可複選的群組選單 - (5) 「`user`」已註冊使用者選單、「`user_multi`」可複選的已註冊使用者選單 - (6) 「`tplset`」樣板選單、「`cpanel`」後台選單、「`timezone`」時區選單、「`language`」語系選單、「`startpage`」首頁模組選單、「`module_cache`」模組快取時間選單、「`site_cache`」網站快取時間選單 5. 偏好設定的輸入值型態,其可用的項目有: - (1) 「`int`」整數: yesno 、group、user - (2) 「`float`」浮點數 - (3) 「`text`」一般文字 - (4) 「`textarea`」大量文字 - (5) 「`array`」陣列: select\_multi、group\_multi、 user\_multi...等 6. 偏好設定的選項設定使用陣列寫法,用於有 `select `或 `select_multi `時,「'3 篇' => 3」左邊的3 篇(索引)會顯示在螢幕上,可用文字,右邊的3(值)會存入資料庫。 ### 九、 取得偏好設定值 1. 在模組中套用時,直接用以下方式即可取得偏好設定值: ``` $xoopsModuleConfig['設定名稱'] ``` 2. 例如分頁可以改成這樣(記得`global $xoopsModuleConfig`): ``` $PageBar = getPageBar($sql, $xoopsModuleConfig['show_num'], 10); ``` 3. 若要在區塊中(或別的模組)取得某個模組的偏好設定 ``` $modhandler = xoops_gethandler('module'); $xoopsModule = $modhandler->getByDirname("模組目錄"); $config_handler =xoops_gethandler('config'); $xoopsModuleConfig = $config_handler->getConfigsByCat(0, $xoopsModule->mid()); ```
$modversion['hasSearch'] = 1; $modversion['search']['file'] = "include/search.php"; $modversion['search']['func'] = "snews_search"; ``` ### 八、 加入偏好設定 1. 若有一些和模組部份功能的設定要讓站長調整,那可直接使用偏好設定。 2. 模組若需要偏好設定功能,那麼請加入以下項目(在此常數需要加上引號才正常!): ``` $modversion['config'][$i]['name'] = 'show_num'; $modversion['config'][$i]['title'] = '_MI_SNEWS_SHOW_NUM'; $modversion['config'][$i]['description'] = '_MI_SNEWS_SHOW_NUM_DESC'; $modversion['config'][$i]['formtype'] = 'select'; $modversion['config'][$i]['valuetype'] = 'int'; $modversion['config'][$i]['options'] = array('3篇' => 3, '6篇' => 6, '9篇' => 9); $modversion['config'][$i]['default'] = 6; ``` 3. 記得加入語系到`modinfo.php` ``` define('_MI_SNEWS_SHOW_NUM', '每頁顯示文章數'); define('_MI_SNEWS_SHOW_NUM_DESC', '設定每頁顯示文章數(分頁用)'); ``` 4. 輸入欄位類型其可用的項目有: - (1) 「`yesno`」是否的單選框、「`textbox`」文字框、「`password`」密碼框、「`color`」顏色框、「`hidden`」隱藏框、「`textarea`」大量文字框 - (2) 「`select`」下拉選單、「`select_multi`」可複選的下拉選單 - (3) 「`theme`」佈景選單、「`theme_multi`」可複選的佈景選單 - (4) 「`group`」群組選單、「`group_multi`」可複選的群組選單 - (5) 「`user`」已註冊使用者選單、「`user_multi`」可複選的已註冊使用者選單 - (6) 「`tplset`」樣板選單、「`cpanel`」後台選單、「`timezone`」時區選單、「`language`」語系選單、「`startpage`」首頁模組選單、「`module_cache`」模組快取時間選單、「`site_cache`」網站快取時間選單 5. 偏好設定的輸入值型態,其可用的項目有: - (1) 「`int`」整數: yesno 、group、user - (2) 「`float`」浮點數 - (3) 「`text`」一般文字 - (4) 「`textarea`」大量文字 - (5) 「`array`」陣列: select\_multi、group\_multi、 user\_multi...等 6. 偏好設定的選項設定使用陣列寫法,用於有 `select `或 `select_multi `時,「'3 篇' => 3」左邊的3 篇(索引)會顯示在螢幕上,可用文字,右邊的3(值)會存入資料庫。 ### 九、 取得偏好設定值 1. 在模組中套用時,直接用以下方式即可取得偏好設定值: ``` $xoopsModuleConfig['設定名稱'] ``` 2. 例如分頁可以改成這樣(記得`global $xoopsModuleConfig`): ``` $PageBar = getPageBar($sql, $xoopsModuleConfig['show_num'], 10); ``` 3. 若要在區塊中(或別的模組)取得某個模組的偏好設定 ``` $modhandler = xoops_gethandler('module'); $xoopsModule = $modhandler->getByDirname("模組目錄"); $config_handler =xoops_gethandler('config'); $xoopsModuleConfig = $config_handler->getConfigsByCat(0, $xoopsModule->mid()); ```
$modversion['config'][$i]['name'] = 'show_num'; $modversion['config'][$i]['title'] = '_MI_SNEWS_SHOW_NUM'; $modversion['config'][$i]['description'] = '_MI_SNEWS_SHOW_NUM_DESC'; $modversion['config'][$i]['formtype'] = 'select'; $modversion['config'][$i]['valuetype'] = 'int'; $modversion['config'][$i]['options'] = array('3篇' => 3, '6篇' => 6, '9篇' => 9); $modversion['config'][$i]['default'] = 6; ``` 3. 記得加入語系到`modinfo.php` ``` define('_MI_SNEWS_SHOW_NUM', '每頁顯示文章數'); define('_MI_SNEWS_SHOW_NUM_DESC', '設定每頁顯示文章數(分頁用)'); ``` 4. 輸入欄位類型其可用的項目有: - (1) 「`yesno`」是否的單選框、「`textbox`」文字框、「`password`」密碼框、「`color`」顏色框、「`hidden`」隱藏框、「`textarea`」大量文字框 - (2) 「`select`」下拉選單、「`select_multi`」可複選的下拉選單 - (3) 「`theme`」佈景選單、「`theme_multi`」可複選的佈景選單 - (4) 「`group`」群組選單、「`group_multi`」可複選的群組選單 - (5) 「`user`」已註冊使用者選單、「`user_multi`」可複選的已註冊使用者選單 - (6) 「`tplset`」樣板選單、「`cpanel`」後台選單、「`timezone`」時區選單、「`language`」語系選單、「`startpage`」首頁模組選單、「`module_cache`」模組快取時間選單、「`site_cache`」網站快取時間選單 5. 偏好設定的輸入值型態,其可用的項目有: - (1) 「`int`」整數: yesno 、group、user - (2) 「`float`」浮點數 - (3) 「`text`」一般文字 - (4) 「`textarea`」大量文字 - (5) 「`array`」陣列: select\_multi、group\_multi、 user\_multi...等 6. 偏好設定的選項設定使用陣列寫法,用於有 `select `或 `select_multi `時,「'3 篇' => 3」左邊的3 篇(索引)會顯示在螢幕上,可用文字,右邊的3(值)會存入資料庫。 ### 九、 取得偏好設定值 1. 在模組中套用時,直接用以下方式即可取得偏好設定值: ``` $xoopsModuleConfig['設定名稱'] ``` 2. 例如分頁可以改成這樣(記得`global $xoopsModuleConfig`): ``` $PageBar = getPageBar($sql, $xoopsModuleConfig['show_num'], 10); ``` 3. 若要在區塊中(或別的模組)取得某個模組的偏好設定 ``` $modhandler = xoops_gethandler('module'); $xoopsModule = $modhandler->getByDirname("模組目錄"); $config_handler =xoops_gethandler('config'); $xoopsModuleConfig = $config_handler->getConfigsByCat(0, $xoopsModule->mid()); ```
define('_MI_SNEWS_SHOW_NUM', '每頁顯示文章數'); define('_MI_SNEWS_SHOW_NUM_DESC', '設定每頁顯示文章數(分頁用)'); ``` 4. 輸入欄位類型其可用的項目有: - (1) 「`yesno`」是否的單選框、「`textbox`」文字框、「`password`」密碼框、「`color`」顏色框、「`hidden`」隱藏框、「`textarea`」大量文字框 - (2) 「`select`」下拉選單、「`select_multi`」可複選的下拉選單 - (3) 「`theme`」佈景選單、「`theme_multi`」可複選的佈景選單 - (4) 「`group`」群組選單、「`group_multi`」可複選的群組選單 - (5) 「`user`」已註冊使用者選單、「`user_multi`」可複選的已註冊使用者選單 - (6) 「`tplset`」樣板選單、「`cpanel`」後台選單、「`timezone`」時區選單、「`language`」語系選單、「`startpage`」首頁模組選單、「`module_cache`」模組快取時間選單、「`site_cache`」網站快取時間選單 5. 偏好設定的輸入值型態,其可用的項目有: - (1) 「`int`」整數: yesno 、group、user - (2) 「`float`」浮點數 - (3) 「`text`」一般文字 - (4) 「`textarea`」大量文字 - (5) 「`array`」陣列: select\_multi、group\_multi、 user\_multi...等 6. 偏好設定的選項設定使用陣列寫法,用於有 `select `或 `select_multi `時,「'3 篇' => 3」左邊的3 篇(索引)會顯示在螢幕上,可用文字,右邊的3(值)會存入資料庫。 ### 九、 取得偏好設定值 1. 在模組中套用時,直接用以下方式即可取得偏好設定值: ``` $xoopsModuleConfig['設定名稱'] ``` 2. 例如分頁可以改成這樣(記得`global $xoopsModuleConfig`): ``` $PageBar = getPageBar($sql, $xoopsModuleConfig['show_num'], 10); ``` 3. 若要在區塊中(或別的模組)取得某個模組的偏好設定 ``` $modhandler = xoops_gethandler('module'); $xoopsModule = $modhandler->getByDirname("模組目錄"); $config_handler =xoops_gethandler('config'); $xoopsModuleConfig = $config_handler->getConfigsByCat(0, $xoopsModule->mid()); ```
$xoopsModuleConfig['設定名稱'] ``` 2. 例如分頁可以改成這樣(記得`global $xoopsModuleConfig`): ``` $PageBar = getPageBar($sql, $xoopsModuleConfig['show_num'], 10); ``` 3. 若要在區塊中(或別的模組)取得某個模組的偏好設定 ``` $modhandler = xoops_gethandler('module'); $xoopsModule = $modhandler->getByDirname("模組目錄"); $config_handler =xoops_gethandler('config'); $xoopsModuleConfig = $config_handler->getConfigsByCat(0, $xoopsModule->mid()); ```
$PageBar = getPageBar($sql, $xoopsModuleConfig['show_num'], 10); ``` 3. 若要在區塊中(或別的模組)取得某個模組的偏好設定 ``` $modhandler = xoops_gethandler('module'); $xoopsModule = $modhandler->getByDirname("模組目錄"); $config_handler =xoops_gethandler('config'); $xoopsModuleConfig = $config_handler->getConfigsByCat(0, $xoopsModule->mid()); ```
$modhandler = xoops_gethandler('module'); $xoopsModule = $modhandler->getByDirname("模組目錄"); $config_handler =xoops_gethandler('config'); $xoopsModuleConfig = $config_handler->getConfigsByCat(0, $xoopsModule->mid()); ```
進階搜尋
568人線上 (189人在瀏覽線上書籍)
會員: 0
訪客: 568