⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 permit_group.php

📁 在传统CMS文章内容管理功能基础上
💻 PHP
字号:
<?php/*[BBWPS!] (C)2006-2010 小蜜蜂版权所有.This is NOT a freeware, use is subject to license terms功能:平台虚拟权限组*/error_reporting(0);//-------------------------------------------------//验证是否是合法引用//-------------------------------------------------function_exists("CheckRequire")?null:exit("Forbidden");require_once("../class/ParseRole_class.php");//-------------------------------------------------//读入更新模块权限的信息//-------------------------------------------------file_exists("../data/updaterole.php")?include_once("../data/updaterole.php"):null;//-------------------------------------------------------//读取更新的模块url并访问模块更新的虚拟权限组//$updateRole 要更新的模块虚拟权限组//$roleArray  缓存下来的模块虚拟权限组//$moduleArray 模块安装信息//-------------------------------------------------------file_exists("../data/role.php")?include("../data/role.php"):null;$roleStr = "<?php"."\n";if(is_array($updateRole)){	//---------------------------------------------------	//如果有更新信息,就按更新的信息来循环访问更新信息	//---------------------------------------------------	foreach ($updateRole as $uRole){		//----------------------------------------		//用XML解析器解析		//----------------------------------------		if($moduleArray[$uRole]['idns']){			$rolePath = $moduleArray[$uRole]['idns']."api/role.php?basecheckcode=".EnMakeMd5($baseCheckCode);		}		else {			if($moduleArray[$uRole]['dns']){				$rolePath = $moduleArray[$uRole]['dns']."api/adminrole.php?basecheckcode=".EnMakeMd5($baseCheckCode);			}			else{				continue;			}		}		$xmlParseObj = new RoleParse($rolePath);		$xmlParseArr = $xmlParseObj->GetInfos();		if(key_exists($xmlParseArr[0]['module'],$roleArray)){			//------------------------------------			//存在,说明是更新的信息,先清除以前的信息			//------------------------------------			unset($roleArray[$xmlParseArr[0]['module']]);		}		//-------------------------------------		//保存原来的缓存信息		//-------------------------------------		if(is_array($roleArray)){			foreach ($roleArray as $rkey=>$ra){				if(is_array($ra)&&count($ra)>0){					foreach ($ra as $r){						$roleStr.='$roleArray["'.$rkey.'"][]=array(';						foreach ($r as $rk=>$rv){							$roleStr.='"'.$rk.'"=>"'.$rv.'",';						}						$roleStr = substr($roleStr,0,-1).');'."\n";					}				}			}		}		//---------------------------------------------		//加入现在的信息		//---------------------------------------------		if(is_array($xmlParseArr)&&count($xmlParseArr)>0){			$moduleName = $xmlParseArr[0]['module'];			array_shift($xmlParseArr);			foreach ($xmlParseArr as $xp){				$roleStr.='$roleArray["'.$moduleName.'"][]=array("rid"=>"'.$xp["rid"].'","rname"=>"'.$xp["rname"].'","descript"=>"'.$xp['rdescript'].'");'."\n";			}		}		$fp = fopen("../data/role.php","w");		fwrite($fp,$roleStr,strlen($roleStr))?fclose($fp):null;		//过滤重复的数据;		$fileStrArray=file("../data/role.php");		$fileStrArray=array_unique($fileStrArray);		$fileStr=implode("\n",$fileStrArray);		$fp = fopen("../data/role.php","w");		fwrite($fp,$fileStr,strlen($fileStr))?fclose($fp):null;		//exit();		//-----------------------------------------------		//删除当前更新的权限组		//-----------------------------------------------		$updateStr = "<?php"."\n";		foreach ($updateRole as $uroleValue){			if($uroleValue!=$uRole){				$updateStr.='$updateRole[]="'.$uroleValue.'";'."\n";			}		}		$upfp = fopen("../data/updaterole.php","w");		fwrite($upfp,$updateStr,strlen($updateStr));		fclose($upfp);	}	unset($fp,$roleStr);}unset($roleArray);file_exists("../data/role.php")?include("../data/role.php"):null;$db= new DB($hostname,$username,$password,$database);$p = new Template("./template/member");extract($_POST);extract($_GET);switch ($action){	//----------------------------------	//启动权限组	//----------------------------------	case "start":	$popenStartSql = "update {$prefix}permitgroup set popen='1' where pgid='{$pgid}'";	$db->update($popenStartSql);	Meta(0,"?mod=member&f=permit_group");	break;	//----------------------------------	//停止权限组	//----------------------------------	case "stop":	$popenStopSql = "update {$prefix}permitgroup set popen='0' where pgid='{$pgid}'";	$db->update($popenStopSql);	Meta(0,"?mod=member&f=permit_group");	break;	//----------------------------------	//增加一个虚拟权限组	//----------------------------------	case "addpg":	$module=array($_POST["cbaseArray"],$_POST["module"]);	$module=serialize($module);	$insertSql = "insert into {$prefix}permitgroup (`pgname`,`descript`,`popen`,`module`,`pgtype`,`ispass`,`isreg`) values ('$pgname','$description','1','$module','{$_POST["pgtype"]}','{$_POST["ispass"]}','{$_POST["isreg"]}')";	$db->insert($insertSql);	Meta(0,"?mod=member&f=permit_group");	break;	//---------------------------------	//编辑一个虚拟权限组	//---------------------------------	case "edit":	$permitPrefix = "";	//--------------------------------	//把设置的权限串化	//--------------------------------	foreach ($permitvalue as $pk=>$pv){		$permitArray[]=array("module"=>$pk,"moduleper"=>$pv);	}	$permitStr = serialize($permitArray);	//------------------------------------	//串化后的格式为 bbwps_module_0:2|bbwps_module_2:2|动画:1	//------------------------------------	$module=array($_POST["cbaseArray"],$_POST["module"]);	$module=serialize($module);	$permitSql = "update {$database}.{$prefix}permitgroup set `pgname`='$pgname',`permit`='$permitStr',`descript`='$description',`popen`='$popen',`module`='$module',`ispass`='{$_POST["ispass"]}',`isreg`='{$_POST["isreg"]}' where `pgid`='$pgid'";	$db->update($permitSql);	Meta(0,"?mod=member&f=permit_group");	break;	//-----------------------------------------------	//删除一个虚拟权限组	//-----------------------------------------------	case "del":	$deleteSql = "delete from {$prefix}permitgroup where `pgid`='$pgid'";	$db->update($deleteSql);	$sql="update {$prefix}members set vipnum='0' where vipnum='$pgid'";	$db->update($sql);	Meta(0,"?mod=member&f=permit_group");	//-------------------------------------------------	//编辑一个会员组的页面	//-------------------------------------------------	break;	case "editpage":		$p->set_file("pg","permit_group.html");	$p->set_block("pg","modulerole1","mr");	$p->set_block("pg","permitrow","pgr");		//获得该会员组的基本信息	$pgSql = "select * from {$prefix}permitgroup where pgid={$pgid}";	$pgRes = $db->query($pgSql,true);	$pgObj = $db->fetch_object($pgRes);	//新增加的用户组访问的模块2007-04-18	$tmp_module=unserialize($pgObj->module);	$moduleArraySelf=$tmp_module[1];	$cbaseArray=$tmp_module[0];	getallcbase();	$ModuleStr=$cbaseOption;	$p->set_var("edit_module",$ModuleStr);	//----------------------------------------	//清空权限组	//----------------------------------------	$p->set_var("permitname",$pgObj->pgname);	$p->set_var("pgid","&pgid=".$pgObj->pgid);	$p->set_var("description",$pgObj->descript);	$p->set_var("popen_0","");	$p->set_var("popen_1","");	$pgObj->ispass?$p->set_var("ispass","checked"):$p->set_var("ispass","");	$pgObj->isreg?$p->set_var("isreg","checked"):$p->set_var("isreg","");	$popen = "popen_".$pgObj->popen;	$p->set_var($popen,"checked");	$permitArr = unserialize($pgObj->permit);	//-----------------------------------------	//二层模板	//-----------------------------------------	foreach ($roleArray as $rakey=>$ra){		$moduleid=$rakey;		$rakey=str_replace("bbwps_module_","",$rakey);		if(in_array($rakey,$moduleArraySelf)){			$p->set_var("mr",null);			$p->set_var("modulename",$moduleArray[$moduleid]["name"]);			//-----------------------------------------			//三层模板			//-----------------------------------------			foreach ($ra as $r){				$p->set_var($r);				$p->set_var("input","<input type=\"radio\" name=\"permitvalue[".$moduleid."]\" value=\"".$r['rid']."\">");				foreach ($permitArr as $pa1){					//-----------------------------------					//$permitAr[0]模块ID号					//-----------------------------------					if($pa1['module']==$moduleid&&$pa1['moduleper']==$r['rid']){						$p->set_var("input","<input type=\"radio\" name=\"permitvalue[".$moduleid."]\" value=\"".$r['rid']."\" checked>");						break;					}				}				$p->parse("mr","modulerole1",true);			}			$p->parse("pgr","permitrow",true);		}	}	$p->set_file("pg","permit_group.html");	$p->parse("out","pg");	$p->p("out");	break;	default:	$p->set_file("handle","mem_add.html");	$p->set_block("handle","link","lk");	$sql="select * from {$database}.{$prefix}permitgroup";	$db->query($sql,true);	while ($rs=$db->fetch_array()){		$p->set_var($rs);		if($rs["popen"]==0){			$p->set_var("start","start");			$p->set_var("startname",$langAdminArray["modu_start"]);			$p->set_var("color","green");		}		else{			$p->set_var("start","stop");			$p->set_var("startname",$langAdminArray["modu_stop"]);			$p->set_var("color","red");		}		$p->parse("lk","link",true);	}	getallcbase();	$ModuleStr=$cbaseOption;	$p->set_var("edit_module",$ModuleStr);	$p->parse("output","handle");	$p->p("output");	break;}function getcbase($baseid,$step){	global $db,$cbaseOption,$prefix,$moduleArraySelf,$cbaseArray,$langAdminArray;	$sql="select * from {$prefix}module where cbaseid={$baseid}";	$db->query($sql,true);	while ($rs=$db->fetch_array()){		$checked="";		if(in_array($rs["id"],$moduleArraySelf)){			$checked="checked";		}		else{			$rs["isshow"]?$checked="":$checked="disabled";		}		switch ($rs["regctrl"]){			case 0 :			$regctrl="({$langAdminArray["mem_regctrl_0"]})";			break;			case 1 :			$regctrl="({$langAdminArray["mem_regctrl_1"]})";			break;			default:			$regctrl="";			break;		}		$cbaseOption.="{$step}|--<input type=\"checkbox\" name=\"module[]\" value=\"{$rs["id"]}\" {$checked}>{$rs["name"]}{$regctrl}<br>";	}	$sql="select * from {$prefix}cbase where pcbaseid={$baseid}";	$db->query($sql,true);	while ($rs=$db->fetch_array()){		$arr_tmp_cbaseid[]=$rs;	}	foreach ($arr_tmp_cbaseid as $rs){		if(in_array($rs["cbaseid"],$cbaseArray)){			$checked="checked";		}		else{			$checked="";		}		switch ($rs["regctrl"]){			case 0 :			$regctrl="({$langAdminArray["mem_regctrl_0"]})";			break;			case 1 :			$regctrl="({$langAdminArray["mem_regctrl_1"]})";			break;			default:			$regctrl="";			break;		}		$cbaseOption.="{$step}|--<input type=\"checkbox\" name=\"cbaseArray[]\" value=\"{$rs["cbaseid"]}\" {$checked}>{$rs["cbasename"]}({$langAdminArray["mem_node"]})<br />";		getcbase($rs["cbaseid"],$step." ");	}	return true;}function getallcbase(){	global $db,$cbaseOption,$prefix,$moduleArraySelf,$cbaseArray,$langAdminArray;	$sql="select * from {$prefix}module where cbaseid=0 order by sort";	$db->query($sql,true);	while ($rs=$db->fetch_array()){		$checked="";		if(in_array($rs["id"],$moduleArraySelf)){			$checked="checked";		}		else{			$rs["isshow"]?$checked="":$checked="disabled";		}		switch ($rs["regctrl"]){			case 0 :			$regctrl="({$langAdminArray["mem_regctrl_0"]})";			break;			case 1 :			$regctrl="({$langAdminArray["mem_regctrl_1"]})";			break;			default:			$regctrl="";			break;		}		$cbaseOption.="|--<input type=\"checkbox\" name=\"module[]\" value=\"".$rs["id"]."\" {$checked}>".$rs["name"]."{$regctrl}<br/>";	}	$sql="select * from {$prefix}cbase where pcbaseid=0";	$db->query($sql,true);	while ($rs=$db->fetch_array()){		$rstmp[]=$rs;	}	foreach ($rstmp as $rs){		if(in_array($rs["cbaseid"],$cbaseArray)){			$checked="checked";		}		else{			$checked="";		}		$cbaseOption.="|--<input type=\"checkbox\" name=\"cbaseArray[]\" value=\"{$rs["cbaseid"]}\" {$checked}>{$rs["cbasename"]}({$langAdminArray["mem_node"]})<br />";		getcbase($rs["cbaseid"]," ");	}}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -