表6.6超级板块表
字段 1 2 3 4 5 6 7 8 9
字段名 CatalogID Name Notes Logo InsertDate UpdateDate Deleted UserID Desn 类型 int Nvarchar Nvarchar Nvarchar Datetime Datetime Bit Int Int 是否主键 是/自增 否 否 否 否 否 否 否 否 描述 超级板块名 超级板块简介 超级板块图标 插入时间 更新时间 是否已删 创建人id 板块权值 7、管理员信息表(tb_Manager)
管理员信息表信息{UserType ItemID UserID InserDate UserfulDate InsertUser Deleted}
表tb_Manager的结构如表6.7所示:
表6.7管理员信息表
字段 1 2 3 4 5 6 7 8
字段名 ManagerID UserType ItemID UserID InserDate UserfulDate InserUser Deleted 类型 int Int Int Int Datetime Datetime Int Int 是否主键 是/自增 否 否 否 否 否 否 否 描述 管理员类型 管理的板块id 管理员id 被任命时间 有效时间 任命人id 是否已删
25
7 系统关键模块的设计和实现
7.1 论坛包含的项目文件
由于该论坛采用分层模式开发,所以在开发该论坛时还要增加库文件项目。该系统主要有分为以下几层:网页层(Web)、逻辑处理层(Keming.BBS.BLL)、实体层(Keming.BBS.Model)和数据库访问层(Keming.BBS.SQLServerDAL).它的项目结构如图7.1所示:
图7.1 网站项目结构图
7.2 论坛前台主要功能模块设计 7.2.1 网站前台系统概述
网站前台功能主要包括用户注册、用户登录、浏览帖子、发布帖子、回复帖子和搜索帖子等。为了能更好的了解系统的前台,下面将前台页面的各部分以列表形式给出,如表7.1所示。
表7.1前台页面说明
区域 1 2 3 4 5 6 名称 首页 注册 登录 子版块 帖子显示 帖子编辑 说明 论坛首页 论坛的注册页面 论坛的登录页面 论坛的子板块帖子显示页面 论坛的帖子和回复显示页面 论坛的发帖和回帖页面 对应文件 Default.aspx Regist.aspx Login.aspx ArticalIndex.aspx DisplayCard.aspx AddArtical.aspx 26
7.2.2 论坛首页设计
论坛首页的主要功能是使用户能够浏览论坛所有的超级板块及其子版块、浏览当前最新的帖子、最热门的帖子,能通过“注册”或者“登录”超链接来完成注册和登录的功能。通过首页的设计,用户可以方便的对页面进行查看。能快速的定位到自己感兴趣的页面。
当浏览者打开首页时,系统将调用实例化对象游客完成基础数据的查询。然后把业务逻辑层查询到的数据跟页面的数据进行绑定进行显示。同理超级板块的内容显示也使用同样的方法进行数据获取和显示,首页主要调用游客类来实现页面数据的显示。游客接口的定义如下所示:
// 游客的接口定义
DataTable SearchCard(string cmdtex); // 返回查询的帖子信息 UserInfo GetUserInfoById(int useid); //根据用户id返回用户信息 bool SetCardViewCount(int cardid, int cardtype); // 设置帖子的浏览次数 int GetUseTypeByName(string loginname); // 根据用户名返回用户类型 int CreatNewUser(UserInfo newuser); // 生成一名新的用户
UserInfo CheckLogin(string loginName, string passdWord); // 检查并登录 bool CheckUserByName(string name); /// 查看该用户名是否已被注册 CardInfo GetCardInfo(int cardID); // 获得指定id的帖子的详细信息 IList
IList
IList
块
IList
bool IsCatalogManager(int useid, int catalogid); // 查看某用户是否是指定版块仓库的
27
超级版主
bool IsModuleManager(int useid, int moduleid); // 查看某用户是否是指定版块的版主 bool IsModuleManager(int useid); // 查看该用户是否是版主 bool IsCatalogManager(int useid); // 查看该用户是否超级版主 IList
首页显示主要用到了两个自定义的用户控件CatalogList.ascx和CardTitleList.ascx。 板块集显示用户控件CatalogList.ascx主要通过重写用户控件的 protected override void Render(HtmlTextWriter writer)方法来完成板块集的显示。其实现代码如下所示 //用户控件CatalogList.ascx的实现代码
public partial class Control_Catalog : System.Web.UI.UserControl {
protected void Page_Load(object sender, EventArgs e) {
}
protected override void Render(HtmlTextWriter writer)
{
//生成实例化游客类对象
Keming.BBS.BLL.User user = new Keming.BBS.BLL.User(); base.Render(writer);
//调用游客类的GetCatalogInfo()方法获得当前论坛的所有板块集并把结果
//作为参数传给LoadCatalogString(IList
的封装,调用用户控件的方法完成字符串的输出 writer.Write(LoadCatalogString(user.GetCatalogInfo())); }
//把板块集数据封装成可显示的字符串
private string LoadCatalogString(IList
if (data.Count < 1) return null;
28
//实例化一个游客类对象
Keming.BBS.BLL.User user = new Keming.BBS.BLL.User();
//实例化一个StringBuilder类对象来完成数据的字符串封装
StringBuilder stb = new StringBuilder();
//对容器中的每个超级板块数据进行遍历以完成封装
foreach (CatalogInfo c in data)
{
// 封装版块集名
stb.Append(\
//封装子版块集字符串
stb.Append(LoadModuleListString(user.GetModuleOfCatalog(c.ID))).Append(\
}
return stb.ToString(); }
// 将子模板按模板封装成字符串的方法
private string LoadModuleListString(IList
{
if (data.Count < 1) return \暂无其他板块!\
//子板块数据显示头模板字符串
string head = \ >
\+ \版块信息string foot = \ //子模板数据显示的脚模板字符串 StringBuilder stb = new StringBuilder(head); //实例化一个对象来完成子模板数据的字符串封装
foreach (ModuleInfo m in data) //遍历子板块的所有数据
{ stb.Append(\
m.ID).Append(\封装版块名
29
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于 NEt网上论坛系统的设计与实现 - 图文(7)在线全文阅读。
相关推荐: