admin_permissions.php

来自「php 开发的内容管理系统」· PHP 代码 · 共 370 行 · 第 1/2 页

PHP
370
字号
			"apply"=>_AM_NEWBB_PERM_TEMPLATEAPP,
			"default"=>_AM_NEWBB_PERM_SETBYGROUP
			));
		$opform->addElement($op_select);
		$opform->display();
		
        $member_handler =& xoops_gethandler('member');
        $glist =& $member_handler->getGroupList();
        $elements = array();
        $newbbperm_handler = &xoops_getmodulehandler('permission', 'newbb');
        $perm_template = $newbbperm_handler->getTemplate($groupid = 0);
        foreach (array_keys($glist) as $i) {
            $selected = !empty($perm_template[$i]) ? array_keys($perm_template[$i]) : array();
            $ret_ele  = '<tr align="left" valign="top"><td class="head">'.$glist[$i].'</td>';
			$ret_ele .= '<td class="even">';
			$ret_ele .= '<table class="outer"><tr><td class="odd"><table><tr>';
			$ii = 0;
			$option_ids = array();
			foreach ($perms as $perm) {
				$ii++;
				if($ii % 5 ==0 ){
					$ret_ele .= '</tr><tr>';
				}
				$checked = in_array("forum_".$perm, $selected)?" checked='checked'":"";
				$option_id = $perm.'_'.$i;
				$option_ids[] = $option_id;
				$ret_ele .='<td><input name="perms['.$i.']['."forum_".$perm.']" id="'.$option_id.'" onclick="" value="1" type="checkbox"'.$checked.'>'.CONSTANT("_AM_NEWBB_CAN_".strtoupper($perm)).'<br></td>';
			}
			$ret_ele .= '</tr></table></td><td class="even">';
			$ret_ele .= _ALL.' <input id="checkall['.$i.']" type="checkbox" value="" onclick="var optionids = new Array('.implode(", ", $option_ids).'); xoopsCheckAllElements(optionids, \'checkall['.$i.']\')" />';
			$ret_ele .= '</td></tr></table>';
			$ret_ele .= '</td></tr>';
            $elements[] = $ret_ele;
        }
        $tray = new XoopsFormElementTray('');
        $tray->addElement(new XoopsFormHidden('action', 'template_save'));
        $tray->addElement(new XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
        $tray->addElement(new XoopsFormButton('', 'reset', _CANCEL, 'reset'));
     	$ret = '<h4>' . _AM_NEWBB_PERM_TEMPLATE . '</h4>' . _AM_NEWBB_PERM_TEMPLATE_DESC . '<br /><br /><br />';
        $ret .= "<form name='template' id='template' method='post'>\n<table width='100%' class='outer' cellspacing='1'>\n";
        $ret .= implode("\n",$elements);
		$ret .= '<tr align="left" valign="top"><td class="head"></td><td class="even">';
        $ret .= $tray->render();
		$ret .= '</td></tr>';
        $ret .= '</table></form>';
        echo $ret;
        break;	
        
	case "template_save":
        $newbbperm_handler = &xoops_getmodulehandler('permission', 'newbb');
        $res = $newbbperm_handler->setTemplate($_POST['perms'], $groupid = 0);
        if($res){
	    	redirect_header("admin_permissions.php?action=template", 2, _AM_NEWBB_PERM_TEMPLATE_CREATED);
        }else{
	    	redirect_header("admin_permissions.php?action=template", 2, _AM_NEWBB_PERM_TEMPLATE_ERROR);
        }
		break;
		
	case "apply":
        $newbbperm_handler = &xoops_getmodulehandler('permission', 'newbb');
	    $perm_template = $newbbperm_handler->getTemplate();
		if($perm_template===null){
	    	redirect_header("admin_permissions.php?action=template", 2, _AM_NEWBB_PERM_TEMPLATE);
		}
		
		$opform = new XoopsSimpleForm(_AM_NEWBB_PERM_ACTION, 'actionform', 'admin_permissions.php', "get");
		$op_select = new XoopsFormSelect("", 'action');
		$op_select->setExtra('onchange="document.forms.actionform.submit()"');
		$op_select->addOptionArray(array("no"=>_SELECT, "template"=>_AM_NEWBB_PERM_TEMPLATE, "apply"=>_AM_NEWBB_PERM_TEMPLATEAPP));
		$opform->addElement($op_select);
		$opform->display();
		
		$category_handler =& xoops_getmodulehandler('category', 'newbb');
		$categories = $category_handler->getAllCats("", true);
		
		$forum_handler = &xoops_getmodulehandler('forum', 'newbb');
		$forums = $forum_handler->getForumsByCategory(0, '', false);
		$fm_options = array();
		foreach (array_keys($categories) as $c) {
			$fm_options[-1*$c] = "[".$categories[$c]->getVar('cat_title')."]";
			foreach(array_keys($forums[$c]) as $f){
				$fm_options[$f] = $forums[$c][$f]["title"];
		        if(!isset($forums[$c][$f]["sub"])) continue;
				foreach(array_keys($forums[$c][$f]["sub"]) as $s){
					$fm_options[$s] = "-- ".$forums[$c][$f]["sub"][$s]["title"];
				}
			}
		}
		unset($forums, $categories);		
		$fmform = new XoopsThemeForm(_AM_NEWBB_PERM_TEMPLATEAPP, 'fmform', 'admin_permissions.php', "post");
		$fm_select = new XoopsFormSelect(_AM_NEWBB_PERM_FORUMS, 'forums', null, 10, true);
		$fm_select->addOptionArray($fm_options);
		$fmform->addElement($fm_select);
        $tray = new XoopsFormElementTray('');
        $tray->addElement(new XoopsFormHidden('action', 'apply_save'));
        $tray->addElement(new XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
        $tray->addElement(new XoopsFormButton('', 'reset', _CANCEL, 'reset'));
		$fmform->addElement($tray);
		$fmform->display();
		break;
		
	case "apply_save":
		if(empty($_POST["forums"])) break;
	    $newbbperm_handler =& xoops_getmodulehandler('permission', 'newbb');
		foreach($_POST["forums"] as $forum){
			if($forum < 1) continue;
			$newbbperm_handler->applyTemplate($forum, $module_id);
		}
	    redirect_header("admin_permissions.php", 2, _AM_NEWBB_PERM_TEMPLATE_APPLIED);
		break;
		
	default:
		
		$opform = new XoopsSimpleForm(_AM_NEWBB_PERM_ACTION, 'actionform', 'admin_permissions.php', "get");
		$op_select = new XoopsFormSelect("", 'action');
		$op_select->setExtra('onchange="document.forms.actionform.submit()"');
		$op_select->addOptionArray(array(
			"no"=>_SELECT, 
			"template"=>_AM_NEWBB_PERM_TEMPLATE, 
			"apply"=>_AM_NEWBB_PERM_TEMPLATEAPP,
			"default"=>_AM_NEWBB_PERM_SETBYGROUP
			));
		$opform->addElement($op_select);
		$opform->display();
		
		$forum_handler =& xoops_getmodulehandler('forum', 'newbb');
		$forums = $forum_handler->getForumsByCategory(0, '', false);
		$op_options = array("category"=>_AM_NEWBB_CAT_ACCESS);
		$fm_options = array("category"=>array("title"=>_AM_NEWBB_CAT_ACCESS, "item"=>"category_access", "desc"=>"", "anonymous"=>true));
		foreach($perms as $perm){
			$op_options[$perm] = CONSTANT("_AM_NEWBB_CAN_".strtoupper($perm));
			$fm_options[$perm] = array("title"=>CONSTANT("_AM_NEWBB_CAN_".strtoupper($perm)), "item"=>"forum_".$perm, "desc"=>"", "anonymous"=>true);
		}
		
		$op_keys = array_keys($op_options);
		$op = isset($_GET['op']) ? strtolower($_GET['op']) : (isset($_COOKIE['op']) ? strtolower($_COOKIE['op']):"");
		if(empty($op)){
			$op = $op_keys[0];
			setCookie("op", isset($op_keys[1])?$op_keys[1]:"");
		}else{
			for($i=0;$i<count($op_keys);$i++){
				if($op_keys[$i]==$op) break;
			}
			setCookie("op", isset($op_keys[$i+1])?$op_keys[$i+1]:"");
		}
		
		$opform = new XoopsSimpleForm('', 'opform', 'admin_permissions.php', "get");
		$op_select = new XoopsFormSelect("", 'op', $op);
		$op_select->setExtra('onchange="document.forms.opform.submit()"');
		$op_select->addOptionArray($op_options);
		$opform->addElement($op_select);
		$opform->display();
		
		$perm_desc = "";
		
		$form = new newbb_XoopsGroupPermForm($fm_options[$op]["title"], $module_id, $fm_options[$op]["item"], $fm_options[$op]["desc"], 'admin/admin_permissions.php', $fm_options[$op]["anonymous"]);
		
		$category_handler =& xoops_getmodulehandler('category', 'newbb');
		$categories = $category_handler->getAllCats("", true);
		if($op=="category"){
			foreach (array_keys($categories) as $c) {
				$form->addItem($c, $categories[$c]->getVar('cat_title'));
			}
			unset($categories);
		}else{
			foreach (array_keys($categories) as $c) {
				$key_c = -1 * $c;
				$form->addItem($key_c, "<strong>[".$categories[$c]->getVar('cat_title')."]</strong>");
				foreach(array_keys($forums[$c]) as $f){
			        $form->addItem($f, $forums[$c][$f]["title"], $key_c);
			        if(!isset($forums[$c][$f]["sub"])) continue;
					foreach(array_keys($forums[$c][$f]["sub"]) as $s){
			        	$form->addItem($s, "&rarr;".$forums[$c][$f]["sub"][$s]["title"], $f);
					}
				}
			}
			unset($forums, $categories);		
		}
		$form->display();
		
		break;
}

xoops_cp_footer();
?>

⌨️ 快捷键说明

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