动易swCMS6.5网站后台频道管理菜单可编辑技术

动易 swCMS6.5 网站后台频道管理菜单可编辑技术
 
在动易cms6.5网站后台添加一个内部频道后,
则后台框架左栏的管理菜单也相应增加该频道管理菜单。
如何实现呢?在还没有对文件Admin_Index_Left.asp进行分析前
我还以为是使用JS+XML技术来实现后台菜单的编辑,
现在经过分析,其实不是那么回事
因为是后台管理菜单嘛,若使用JS+XML显示菜单,
则安全性肯定没有即时获取数据库内容来显示好
 
若使用XML来存储后台管理菜单的内容
万一XML文件被攻击网站的人下载就不太好了。
另外浏览器若不支持JS的话那后台菜单会出现无法使用的情况。
 
说到这里,我想起曾经分析过的微软Asp.Net开源的面向企业门户的网站系统Portal
该网站的栏目菜单就是用XML来存储的,
然后用一个C#对XML文件的操作类来完成对该XML的读删改操作
因为存储的是前台菜单,所以采用XML来存储对网站的安全性影响不大。
 
下面对动易cms6.5网站的后台管理菜单的显示进行分析:
主要是文件Admin_Index_Left.asp的代码阅读。
打开文件我们看到其包含两个文件:
<!--#include file="Admin_Common.asp"-->
<!--#include file="../Include/PowerEasy.Edition.asp"-->
文件Admin_Common.asp是后台文件的必包含的通用文件,
它不仅对管理员的是否登陆以及管理的权限进行判断
而且还包含了前台页面的数据库连接文件等在后台也使用的函数文件。
而文件PowerEasyEdition.asp仅定义了一个常量,就是:
Const SystemEdition = "CMS"       说明该网站系统的版本为CMS
 
我们可以从后台管理菜单页看到其显示的顺序:
 
管理员ID及权限和待阅信息
(当前登陆的管理员的相关信息)
 
各频道管理菜单
(根据动易网站的版本获取其拥有的功能模块并根据管理员权限判断显示频道的菜单内容,
例如:本动易网站的版本是CMS版,则其只拥有:
频道使用的功能模块 1--文章 2--下载 3--图片 4--留言
若动易网站的版本是eShop版,则其还包括商城功能模块: 5--商城
这部分菜单的显示要根据频道的数据和管理员权限的判断程序决定,
这段代码成为本技术的重点和难点
等下我们挑选此部分判断的程序代码进行分析)
 
采集管理
系统信息
(这部分菜单的显示只需要做很小的判断然后通过Response输出菜单的HTML内容即可)
 
 
首先获取本网站的所有内部频道
sqlChannel = "select * from PE_Channel where ChannelType<=1"      '只显示内部频道
Select Case SystemEdition      'SystemEdition为常量,位于文件PowerEasy.Edition.asp中,为该动易网站的版本
Case "CMS", "GPS", "EPS"                                              '因为本网站为动易CMS版本,
    sqlChannel = sqlChannel & " and ModuleType<5"       '则频道的功能模块显示4个,即:文章/下载/图片/留言
Case "eShop", "ECS"
    sqlChannel = sqlChannel & " and ModuleType<6"
Case "IPS", "All"
    sqlChannel = sqlChannel & " and ModuleType<7"
End Select
 
当获取该网站包含的所有内部频道后,
接着用一个循环语句,
循环所有内部频道的后台管理菜单
Do While Not rsChannel.EOF
 
并结合该管理员的权限决定是否显示该频道的菜单内容:
AdminPurview_Channel = rsGetAdmin("AdminPurview_" & ChannelDir) 
'获取该自定义频道的管理权限
If IsNull(AdminPurview_Channel) Then
AdminPurview_Channel = 5 '若管理权限为空,则设为5(无任何意义)
'其中1--频道管理员 2--栏目总编 3--栏目管理员 4--无权限
Else
AdminPurview_Channel = CLng(AdminPurview_Channel)
'否则为1到4个一个值
End If
 
If AdminPurview = 1 Or AdminPurview_Channel <= 3 Then      
'若为超级管理员或频道管理权限不为4,则显示该频道管理菜单
               
If rsChannel("ModuleType") = 6 Then 
……
'若该频道的模块类型为供求模块,则菜单标题的链接文件为Admin_Help_Supply.asp
Else
       ……
‘否则为Admin_Help_Channel.asp
End If
 
If rsChannel("ModuleType") = 2 Then '若为下载模块类型,则显示:
    Response.Write "<tr><td height=20><a href='Admin_" & ModuleName & ".asp?ChannelID=" & ChannelID & "&Action=Add&AddType=3' target=main>添加" & ChannelShortName & "(镜像模式)</a></td></tr>" & vbCrLf
End If
 
If AdminPurview = 1 Or AdminPurview_Channel <= 2 Then       '根据管理权限判断
    If rsChannel("ModuleType") = 3 Then '若为图片模块类型,则显示:
         Response.Write "<tr><td height=20><a href='Admin_Photo.asp?ChannelID=" & ChannelID & "&Action=Add&AddType=3' target=main>添加" & ChannelShortName & "(批量模式)</a></td></tr>" & vbCrLf
    End If
End If
 
If rsChannel("ModuleType") = 5 Then ShowAdmin_Shop = True
‘若为商城模块,则允许该模块管理菜单的显示
 
…………
    rsChannel.MoveNext
Loop        '内部频道的所有管理菜单的显示循环结束
 
接下来的代码,就是根据网站的版本以及是否包含了以下模块
来判断是否显示以下功能模块的管理菜单:
企业招聘管理
房产中心管理
动易商城管理
客户关系管理
室场登记管理
学生学籍管理
问卷调查管理
 
最后就是动易网站各版本都包含的一些管理菜单,
如“系统设置”“数据库管理”等菜单的显示
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值