BBS建站上网365问/153.如何设计一个好的菜单系统?
设计好菜单系统的关键是计划。一个好方法是在纸上粗略描绘出菜单的结构,这样设计起来很清晰,而且设计在纸上的菜单很容易实施。
典型的菜单系统这样分:信件可以从信件菜单进入、文件可以从文件菜单进入、游戏可以从游戏菜单进入,依此类推。这样做的菜单易于理解,也使系统更容易使用。自然,这不意味着你必须有典型的菜单系统,但为了示范,下面谈到的是典型的菜单系统。
两种广泛使用的拓扑结构是:功能性拓扑(两种中更流行的一种)和对象性拓扑。每种都有它自己的优点,可以按实际需要选择。无论你决定使用哪种拓扑,RemoteAccess都可以灵活应用、增强和混合拓扑结构。
功能性拓扑结构是按功能安排菜单。例如:
┌───┐
│主菜单│
└─┬─┘
↓
┌─────┴─────┐
↓ ↓
┌──┴──┐ ┌──┴──┐
┌──┤ 信件菜单 │ ┌──┤ 文件菜单 │
│ └─────┘ │ └─────┘
│ ┌─────┐ │ ┌─────┐
├→ │ 公开信件 │ ├→ │ 通用文件 │
│ └─────┘ │ └─────┘
│ ┌───────┐ │ ┌───────┐
└→│ 私人 E-Mail │ └→│ DOS 工具文件 │
└───────┘ └───────┘
这个简单系统通过功能(因此得名功能性拓扑)分组。在这个例子中,一共有3个主部分:主菜单、信件菜单和文件菜单。这个拓扑很容易设计和实施,而且加入其它主部分也很容易。例如,统计菜单可以很容易地加到主菜单中,其中包含显示系统使用图、用户统计等菜单项目。
┌───┐
│主菜单│
└─┬─┘
↓
┌──────────┼──────────┐
↓ ↓ ↓
┌──┴──┐ ┌──┴──┐ ┌──┴──┐
┌──┤ 信件菜单 │ ┌──┤ 文件菜单 │ ┌──┤ 统计菜单 │
│ └─────┘ │ └─────┘ │ └─────┘
│ ┌─────┐ │ ┌─────┐ │ ┌─────┐
├→ │ 公开信件 │ ├→ │ 通用文件 │ ├→ │ 系统图表 │
│ └─────┘ │ └─────┘ │ └─────┘
│ ┌───────┐│ ┌───────┐│ ┌───────┐
└→│ 私人 E-Mail │└→│ DOS 工具文件 │└→│ 用户统计 │
└───────┘ └───────┘ └───────┘
这种功能性拓扑实际上没有结尾。这就是为什么开始前要对菜单系统进行计划的原因。但现在不要拿出笔和纸进行规划,推荐你首先阅读整个这一部分,以便充分利用菜单系统,因为有工具可以帮助你使菜单数目最小化。象模板(在后面解释)一类的工具是很有价值的,可以节省不少时间,同时保持菜单不过于臃肿,易于维护,也将带来更强大的功能。
当你对全部功能性拓扑计划满意时,再仔细进入到主部分、子部分的每一个项目。这不仅使菜单的实施过程简化,也指导了信件区和文件区等其它方面的设置。
┌─────────────────────┐
│信件菜单 │
┌──┤ │
│ │安全级别:0(所有用户) │
│ │菜单名称:MSGMAIN主菜单 │
│ └─────────────────────┘
│ ┌─────────────────────┐
│ │区:公开信件 │
│ │区号: 1 │
│ │组号: 1 │
├→ │读级别:0(所有用户) │
│ │写级别: 50 │
│ │站长级别:100(我自己) │
│ └─────────────────────┘
│ ┌─────────────────────┐
│ │区:私人 E-Mail │
│ │区号: 2 │
│ │组号: 1 │
└→ │读级别:0(所有用户) │
│写级别: 50 │
│站长级别:100(我自己) │
└─────────────────────┘
对文件菜单部分也应该做同样的规划,请看下面的4个区文件系统流程图,它给出了清晰的菜单结构以及要如何建立每个文件区的细节。
┌─────────────────────┐
│文件菜单 │
│ │
│安全级别:0(所有) │
│菜单名称: FILEMAIN │
└──────────┬──────────┘
┌─────────────┐ │ ┌─────────────┐
│区:通用文件 │ │ │区:BBS文件 │
│组号: 1 │ │ │组号: 1 │
│区号: 1 │ │ │区号: 3 │
│下传级别: 50 │←┼→│下传级别: 50 │
│列表级别:0(所有) │ │ │列表级别:0(所有) │
│上传级别: 100 │ │ │上传级别: 100 │
│上传区: 4 │ │ │上传区: 4 │
└─────────────┘ │ └─────────────┘
┌─────────────┐ │ ┌─────────────┐
│区:DOS工具文件 │ │ │区: 上传 │
│组号: 1 │ │ │组号: 1 │
│区号: 2 │ │ │区号: 4 │
│下传级别: 50 │←┴→│下传级别: 100 │
│列表级别:0(所有) │ │列表级别: 100 │
│上传级别: 100 │ │上传级别: 50 │
│上传区: 4 │ │所有组: Yes │
└─────────────┘ └─────────────┘
如果你对每个区设置不同的字段,也可以对每个区加入更多的信息,例如新文件查找、上传重复检查、允许长文件描述和许多其它选项。
现在来讨论另外一种拓扑:对象性拓扑。功能性拓扑是按菜单的功能分组,而对象性拓扑是按菜单的对象分组。
例如,如果BBS主要服务两种对象-假设烹饪和桌面出版(简写DTP),菜单可以按对象分组。每个对象可以有它自己的相关信件和文件区。
┌───┐
│主菜单│
└─┬─┘
↓
┌─────┴─────┐
↓ ↓
┌───┴───┐ ┌───┴───┐
┌─┤ 烹饪菜单 │ ┌─┤ 桌面出版菜单 │
│ └───────┘ │ └───────┘
│ ┌───────┐ │ ┌───────┐
├→│ 烹饪信件 │ ├→│ 桌面出版信件 │
│ └───────┘ │ └───────┘
│ ┌───────┐ │ ┌───────┐
└→│ 烹饪文件 │ └→│ 桌面出版文件 │
└───────┘ └───────┘
在上面的例子中,主菜单下定义了两个子部分。对桌面出版对象感兴趣的用户只需要从主菜单进入桌面出版子部分,从这里他们将进入桌面出版的信件和文件区。对于烹饪子部分也一样。这类拓扑易于使用,但如果有许多主题要支持的话,就要求太多的维护工作。
无论你决定使用功能性或对象性菜单拓扑,或混合使用,甚至都不使用,你都可以看到进行计划的重要性。
劲捷电子信息站的菜单结构见后面的问答。