今天给大家介绍动易SiteFactory后台管理菜单的架构原理,如下图所示:
后台管理菜单分为三级菜单即主菜单(一级菜单)、二次菜单、三级菜单。
一级菜单:我的工作台、内容管理、商店管理、客户关系管理等;
二级菜单:信息管理、生成管理、评论管理、采集管理等;
三级菜单:内容管理、专题内容管理、回收站管理等。
一 、菜单的配置文件
1、配置文件所在位置
后台菜单项目都保存在统管理员“Common”文件夹目录中的 “MainMenu.xml” 文件中,具体位置:“根目录AdminCommonMainMenu.xml”。
2、菜单配置文件的架构
打开 MainMenu.xml 文件你会看见如下架构
总框架
<?xml version="1.0" encoding="utf-8"?>
<menu>
菜单代码内容
</menu>
“菜单代码内容”如下:
<channelMenu id="ContentManage" title="内容管理" … 一级菜单
<mainMenu id="ContentManage" title="信息管理" … 二级菜单
<subMenu id="CategoryInfoManage" title="内容管理" … 三级菜单
</subMenu>
</mainMenu>
</channelMenu>
<channelMenu ..> </channelMenu> 代表的是 “一级菜单”,如下图红色部分;
<mainMenu .. > </mainMenu> 代表的是 “二级菜单”,如下图红色部分;
<subMenu .. > </subMenu> 代表的是 “三级菜单”,如下图红色部分;
二、 菜单节点的参数配置
下图为配置文件中部分参数的作用:
参数名称 |
参数作用 |
id |
菜单id,要求在xml文件中必须是唯一的。 |
title |
菜单显示名称,显示在菜单页面上。 |
leftUrl |
指定系统左框架中的页面,点击后将刷新左侧框架中的页面。 |
rightUrl |
指定系统右框架中的页面,点击后将刷新右侧框架中的页面。 |
showOnForm |
布尔型,角色管理是否配置此菜单中链接页面的管理权限,如果填写的不是布尔型默认为false。 |
operateCode |
定义此菜单的权限操作码, 如果您不想指定任何权限可以设置为operateCode="None"值。 |
description |
菜单功能的描述信息。 |
参数举例
<subMenu id="CategoryInfoManage" title="内容管理" operateCode="CategoryInfoManage" leftUrl="Contents/NodeTree.aspx?ShowType=ContentManage" rightUrl="Contents/ContentManage.aspx" ShowOnForm="true" Description="" />
1、“title”参数的作用 : 显示菜单的名称
2、“leftUrl”和“rightUrl”参数的作用:系统将刷新左右两侧的框架页内容。
3、“OperateCode” 参数作用: 菜单的访问权限操作码,就是指这个菜单的访问权限,系统定义了很多权限操作码,一个普通管理员拥有一个或多个角色,角色包含了很多权限操作码。
举例 普通管理员 A 的角色拥有 信息管理权限
普通管理员 B 的角色没有 信息管理权限
那么他们登陆后,菜单内容管理,管理员A则会看到,管理员B就不会看到,因为内容管理菜单 指定了访问权限操作码 operateCode="InfoManage"。
注意:1 超级管理员不收权限操作码限制。2 operateCode="None" 代表此菜单不需要任何访问权限限制。
4、“ShowOnForm” 参数作用:是否在用户管理 >> 管理员管理 >> 角色管理 >> 常规模块权限设置中配置.举例:内容管理菜单节点设置了 ShowOnForm="true" 那么角色常规模块权限设置就会多出此选项(如图)
如果勾选了“内容管理”,那么该角色就拥有了菜单配置中的权限操作码,该角色就拥有了内容管理操作码。
如果不想权限设置过细化,如只限制一级栏目权限, 可以这样
<channelMenu operateCode="ContentManage" ShowOnForm="true" … 一级菜单
<mainMenu operateCode="ContentManage" ShowOnForm="false" … 二级菜单
<subMenu operateCode="ContentManage" ShowOnForm="false" … 三级菜单
</subMenu>
</mainMenu>
</channelMenu>
这样只有“一级菜单”显示在常规角色管理中了。
注意:
1、一个节点中,当“ShowOnForm = true”时,这个节点隶属的操作码必须在整个xml 是唯一的;
2、所有 ShowOnForm = true 的节点,他们的操作码必须各不相同。
通过上面的介绍,我们知道后台管理菜单的自定义配置是通过灵活的XML方式实现的,只需要修改xml配置文件就可以达到相应的效果。SiteFactory? 用户可以方便的更改xml 配置中的文字去实现菜单的多语言效果;可以根据自己的需要进行菜单排序;也自定义菜单中的管理权限;或者扩充自己需要的模块;这种配置方式的灵活性也再一次体现SiteFactory? 使用简单、维护容易,扩展性强等优点。