最近在開發新模組需要用到在每個分類定義可管理的會員群組,然後被指定的分類群組的會員就能在新增內容(包括管理),寫了一個分類群組管理權的function可重複使用,說明如下:
模組需要在分類能定義管理的群組像是這樣!!
所以資料表會有每個分類跟該分類儲存的可管理群組id
寫一個function以後全部模組都能使用,可加快模組開發流程,code如下。
在模組的function.php中加上以下程式
//引入共用函數
include_once XOOPS_ROOT_PATH."/modules/neillibrary/function.php";
//群組權限判斷
function grouppermission($dbneme="",$where="",$var="",$type=""){
global $xoopsUser,$isAdmin;
if($isAdmin==false && !empty($type)){
$groupsArr=databasetablewhile($dbneme,$where);
foreach($groupsArr as $key=> $val){
$admingroup[$key]=phpconversion($conversion=$groupsArr[$key][$var],$type="unserialize");
if(!empty($xoopsUser)){ //會員
foreach($xoopsUser->getGroups() as $i){
if(in_array("$i",$admingroup[$key])){
$group=true;
}
}
}else{ //訪客
if(in_array("3",$admingroup[$key])){
$group=true;
}
}
}
}else{
$group=true;
}
return $group;
}
然後在模組頁面的php檔中呼叫function並給予判斷,如果回傳直是false則表示該會員不具有任何一個分類的管理權限,返回首頁即可!!
//群組管理權限
if(empty(grouppermission($dbneme="neilonlinevideosort",$where=" order by sortid ASC",$var="admingroup",$type=true))){
redirect_header(XOOPS_URL. "/modules/".$xoopsModule->getVar("dirname")."/index.php" ,0 , _MS_SHARED18);
}
以上工作心得撰寫:徐嘉裕 Neil hsu
模組需要在分類能定義管理的群組像是這樣!!
所以資料表會有每個分類跟該分類儲存的可管理群組id
寫一個function以後全部模組都能使用,可加快模組開發流程,code如下。
在模組的function.php中加上以下程式
//引入共用函數
include_once XOOPS_ROOT_PATH."/modules/neillibrary/function.php";
//群組權限判斷
function grouppermission($dbneme="",$where="",$var="",$type=""){
global $xoopsUser,$isAdmin;
if($isAdmin==false && !empty($type)){
$groupsArr=databasetablewhile($dbneme,$where);
foreach($groupsArr as $key=> $val){
$admingroup[$key]=phpconversion($conversion=$groupsArr[$key][$var],$type="unserialize");
if(!empty($xoopsUser)){ //會員
foreach($xoopsUser->getGroups() as $i){
if(in_array("$i",$admingroup[$key])){
$group=true;
}
}
}else{ //訪客
if(in_array("3",$admingroup[$key])){
$group=true;
}
}
}
}else{
$group=true;
}
return $group;
}
然後在模組頁面的php檔中呼叫function並給予判斷,如果回傳直是false則表示該會員不具有任何一個分類的管理權限,返回首頁即可!!
//群組管理權限
if(empty(grouppermission($dbneme="neilonlinevideosort",$where=" order by sortid ASC",$var="admingroup",$type=true))){
redirect_header(XOOPS_URL. "/modules/".$xoopsModule->getVar("dirname")."/index.php" ,0 , _MS_SHARED18);
}
以上工作心得撰寫:徐嘉裕 Neil hsu
留言
張貼留言