开源ASP.NET论坛EntLib.com/YAF 定制化开发 Part 1

开源ASP.NET 论坛EntLib.com/YAF 定制化开发 Part 1
 
 
目前,开源ASP.NET论坛EntLib.com/YAF 已经升级到.Net Framework 3.5 平台和Visual Studio 2008。我们将根据各方用户的反馈意见,对论坛进行升级,增加更多的功能,更好地满足用户的实际需求。本开源论坛可以免费使用,同时提供项目源代码下载。
 
下面针对具体的功能,演示如何进行定制化开发。开发完成后的效果如下:



 
增加论坛帖子的设置精华(精华贴分为1、2、3个等级,采用不同的标识)、设置推荐功能:
 
1. 首先修改数据表yaf_topic 结构
增加字段 DigestLevel ApproveStatus ,字段类型为 INT ,默认值 0 ,运行为 NULL
 
2. 修改存储过程 [dbo].[yaf_topic_list]
省略前面的script ......
c.PollID,
ForumFlags = d.Flags,
c.DigestLevel, // 增加 DigestLevel 输出
c.ApproveStatus // 增加 ApproveStatus 输出
FROM      yaf_Topic c
JOIN yaf_User b
ON b.UserID = c.UserID
省略后面的script ......
 
3. 修改TopicLine.cs 控件,增加显示-精华/推荐的标识。
 
            ////////////////////////////////////////////////////////////////////////////////////
            // updated by [url]http://www.entlib.com/[/url]
            // updated date: 2008-08-12
            // 显示精华贴的标识
            ////////////////////////////////////////////////////////////////////////////////////
            if ( m_row["DigestLevel"] != System.DBNull.Value && Convert.ToInt32(m_row["DigestLevel"]) > 0)
            {
                html.AppendFormat("&nbsp;<img src='images/topics/digest_{0}.gif' alt=' 精华{0}' align='absbottom' />" , m_row["DigestLevel"].ToString().Trim());
            }
 
            if (m_row["ApproveStatus"] != System.DBNull.Value && Convert.ToInt32(m_row["ApproveStatus"]) > 0)
            {
                html.Append("&nbsp;<img src='images/topics/agree.gif' alt=' 推荐' align='absbottom' />" );
            }
            ////////////////////////////////////////////////////////////////////////////////////
 
4. 修改后台版主的管理界面 �C moderate.ascx 用户控件,增加设置精华、设置推荐等等功能,只有版主才可以进行操作。
 
< asp : repeater id=topiclist runat=server>
< itemtemplate >
     <yaf:TopicLine runat="server" DataRow=<%# Container.DataItem %>>
         <td class="postheader" align="left" nowrap>
              <asp:linkbutton runat=server onload="Delete_Load" commandargument='<%# DataBinder.Eval(Container.DataItem, "TopicID") %>' commandname='delete'> 删除话题</asp:linkbutton>
              | <asp:linkbutton ID="btnSetDigest" runat=server commandargument='<%# DataBinder.Eval(Container.DataItem, "TopicID")%>' CommandName='digest'> 设置精华</asp:linkbutton><asp:TextBox ID="txtDigestLevel" runat="server" Width="20" Text='<%# DataBinder.Eval(Container.DataItem, "DigestLevel") %>'></asp:TextBox>&nbsp;
            | <asp:linkbutton ID="btnRecommend" runat=server commandargument='<%# DataBinder.Eval(Container.DataItem, "TopicID")%>' CommandName='recommend' Text='<%# GetRecommendOpt(Eval("ApproveStatus")) %>'></asp:linkbutton>
         </td>
     </yaf:TopicLine>
</ itemtemplate >
</ asp : repeater >

具体的后台实现代码可以在 EntLib.com 开源 ASP.NET 项目中获得,新项目版本为 v3.5 ,运行在 .Net Framework 3.5 平台之上,开发环境为 Visual Studio 2008 。版主后台维护界面如下:



 原文链接:
[url]http://forum.entlib.com/Default.aspx?g=posts&t=165[/url]
 
论坛演示地址: [url]http://forum.EntLib.com[/url] 包括论坛技术问题、安装使用等等交流。
 
 
 

你可能感兴趣的:(asp.net,休闲,开源论坛,Yaf,EntLib.com)