开源ASP.NET论坛YAF 定制化开发 Part 2
2008-09-07 06:31
183 查看
[align=center]开源ASP.NET论坛YAF 定制化开发 Part 2[/align]
目前,开源ASP.NET论坛EntLib.com/YAF 已经升级到.Net Framework 3.5 平台和Visual Studio 2008。我们将根据各方用户的反馈意见,对论坛进行升级,增加更多的功能,更好地满足用户的实际需求。本开源论坛可以免费使用,同时提供项目源代码下载。
前一篇文章:
开源ASP.NET论坛EntLib.com/YAF 定制化开发 Part 1
这里进一步对EntLib.com / YAF 开源ASP.NET论坛进行定制化开发 – 允许每个论坛(Forum)设定论坛图标,如下图所示:
每个论坛图标可以直观说明本论坛的内容,点击论坛图标也可直接进入论坛。可以访问http://forum.entlib.com 查看演示效果。
按照如下步骤实现定制化开发:
1.修改表 yaf_Forum,增加字段 ForumIcon-nvarchar(100)。另外,还需要修改存储过程 [yaf_forum_listread],增加 ForumIcon 字段的输出。
2.修改ForumList.ascx 页面文件,增加论坛图标的输出。
示例代码如下:
[align=left]<asp:Repeater id="forumList1" runat="server">[/align]
[align=left]<ItemTemplate>[/align]
[align=left] <tr class="post">[/align]
[align=left] <td><%# GetForumIcon(Container.DataItem) %></td>[/align]
[align=left] <td>[/align]
[align=left] <span class="forumheading"><%# GetForumLink((System.Data.DataRow)Container.DataItem) %></span>[/align]
[align=left] <span class="forumviewing"><%# GetViewing(Container.DataItem) %></span><br />[/align]
[align=left] <span class="subforumheading"><%# DataBinder.Eval(Container.DataItem, "[\"Description\"]") %></span>[/align]
[align=left] <br/>[/align]
[align=left] <asp:repeater visible='true' id="ModeratorList" runat="server" onitemcommand='ModeratorList_ItemCommand' datasource='<%# ((System.Data.DataRow)Container.DataItem).GetChildRows("FK_Moderator_Forum") %>'>[/align]
[align=left] <HeaderTemplate><span class="smallfont"><%# ForumPage.GetText("moderators") %>: </HeaderTemplate>[/align]
[align=left] <ItemTemplate><%# DataBinder.Eval(Container.DataItem, "[\"UserName\"]") %></ItemTemplate>[/align]
[align=left] <SeparatorTemplate>, </SeparatorTemplate>[/align]
[align=left] <FooterTemplate></span></FooterTemplate>[/align]
[align=left] </asp:repeater>[/align]
[align=left] </td>[/align]
[align=left] <td align="center"><%# Topics(Container.DataItem) %></td>[/align]
[align=left] <td align="center"><%# Posts(Container.DataItem) %></td>[/align]
[align=left] <td align="center" class="smallfont"><%# yaf.Utils.BadWordReplace(FormatLastPost((System.Data.DataRow)Container.DataItem)) %></td>[/align]
[align=left] <td><%# GetForumLogoLink(Container.DataItem) %></td>[/align]
[align=left] </tr>[/align]
</ItemTemplate>
……
其中GetForumLogoLink(Container.DataItem)的后台代码如下:
[align=left] protected string GetForumLogoLink(object _o)[/align]
[align=left] {[/align]
[align=left] string strReturn = "";[/align]
[align=left] string strForumDescription = "";[/align]
[align=left] [/align]
[align=left] DataRow row = (DataRow)_o;[/align]
[align=left] [/align]
[align=left] int ForumID = Convert.ToInt32(row["ForumID"]);[/align]
[align=left] [/align]
[align=left] // get the Forum Description[/align]
[align=left] strForumDescription = Convert.ToString(row["Forum"]);[/align]
[align=left] [/align]
[align=left] string strPath = "/images/forumicons/icon_entlib.gif";[/align]
[align=left] [/align]
[align=left] object iconPath = row["ForumIcon"];[/align]
[align=left] [/align]
[align=left] if (iconPath != System.DBNull.Value)[/align]
[align=left] {[/align]
[align=left] strPath = "/images/forumicons/" + iconPath.ToString();[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] if (int.Parse(row["ReadAccess"].ToString()) > 0)[/align]
[align=left] {[/align]
[align=left] strReturn = String.Format("<a href=\"{0}\"><img src='{1}' alt='{2}' /></a>",[/align]
[align=left] Forum.GetLink(yaf.Pages.topics, "f={0}", ForumID),[/align]
[align=left] strPath,[/align]
[align=left] strForumDescription[/align]
[align=left] );[/align]
[align=left] }[/align]
[align=left] else[/align]
[align=left] {[/align]
[align=left] // no access to this forum[/align]
[align=left] strReturn = String.Format("<img src='{0}' alt='{1}' />", strPath, ForumPage.GetText("NO_FORUM_ACCESS"));[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] return strReturn;[/align]
}
上述代码实现论坛图标的输出显示。
如有疑问,欢迎到 http://forum.EntLib.com 开源ASP.NET技术论坛交流。
目前,开源ASP.NET论坛EntLib.com/YAF 已经升级到.Net Framework 3.5 平台和Visual Studio 2008。我们将根据各方用户的反馈意见,对论坛进行升级,增加更多的功能,更好地满足用户的实际需求。本开源论坛可以免费使用,同时提供项目源代码下载。
前一篇文章:
开源ASP.NET论坛EntLib.com/YAF 定制化开发 Part 1
这里进一步对EntLib.com / YAF 开源ASP.NET论坛进行定制化开发 – 允许每个论坛(Forum)设定论坛图标,如下图所示:
每个论坛图标可以直观说明本论坛的内容,点击论坛图标也可直接进入论坛。可以访问http://forum.entlib.com 查看演示效果。
按照如下步骤实现定制化开发:
1.修改表 yaf_Forum,增加字段 ForumIcon-nvarchar(100)。另外,还需要修改存储过程 [yaf_forum_listread],增加 ForumIcon 字段的输出。
2.修改ForumList.ascx 页面文件,增加论坛图标的输出。
示例代码如下:
[align=left]<asp:Repeater id="forumList1" runat="server">[/align]
[align=left]<ItemTemplate>[/align]
[align=left] <tr class="post">[/align]
[align=left] <td><%# GetForumIcon(Container.DataItem) %></td>[/align]
[align=left] <td>[/align]
[align=left] <span class="forumheading"><%# GetForumLink((System.Data.DataRow)Container.DataItem) %></span>[/align]
[align=left] <span class="forumviewing"><%# GetViewing(Container.DataItem) %></span><br />[/align]
[align=left] <span class="subforumheading"><%# DataBinder.Eval(Container.DataItem, "[\"Description\"]") %></span>[/align]
[align=left] <br/>[/align]
[align=left] <asp:repeater visible='true' id="ModeratorList" runat="server" onitemcommand='ModeratorList_ItemCommand' datasource='<%# ((System.Data.DataRow)Container.DataItem).GetChildRows("FK_Moderator_Forum") %>'>[/align]
[align=left] <HeaderTemplate><span class="smallfont"><%# ForumPage.GetText("moderators") %>: </HeaderTemplate>[/align]
[align=left] <ItemTemplate><%# DataBinder.Eval(Container.DataItem, "[\"UserName\"]") %></ItemTemplate>[/align]
[align=left] <SeparatorTemplate>, </SeparatorTemplate>[/align]
[align=left] <FooterTemplate></span></FooterTemplate>[/align]
[align=left] </asp:repeater>[/align]
[align=left] </td>[/align]
[align=left] <td align="center"><%# Topics(Container.DataItem) %></td>[/align]
[align=left] <td align="center"><%# Posts(Container.DataItem) %></td>[/align]
[align=left] <td align="center" class="smallfont"><%# yaf.Utils.BadWordReplace(FormatLastPost((System.Data.DataRow)Container.DataItem)) %></td>[/align]
[align=left] <td><%# GetForumLogoLink(Container.DataItem) %></td>[/align]
[align=left] </tr>[/align]
</ItemTemplate>
……
其中GetForumLogoLink(Container.DataItem)的后台代码如下:
[align=left] protected string GetForumLogoLink(object _o)[/align]
[align=left] {[/align]
[align=left] string strReturn = "";[/align]
[align=left] string strForumDescription = "";[/align]
[align=left] [/align]
[align=left] DataRow row = (DataRow)_o;[/align]
[align=left] [/align]
[align=left] int ForumID = Convert.ToInt32(row["ForumID"]);[/align]
[align=left] [/align]
[align=left] // get the Forum Description[/align]
[align=left] strForumDescription = Convert.ToString(row["Forum"]);[/align]
[align=left] [/align]
[align=left] string strPath = "/images/forumicons/icon_entlib.gif";[/align]
[align=left] [/align]
[align=left] object iconPath = row["ForumIcon"];[/align]
[align=left] [/align]
[align=left] if (iconPath != System.DBNull.Value)[/align]
[align=left] {[/align]
[align=left] strPath = "/images/forumicons/" + iconPath.ToString();[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] if (int.Parse(row["ReadAccess"].ToString()) > 0)[/align]
[align=left] {[/align]
[align=left] strReturn = String.Format("<a href=\"{0}\"><img src='{1}' alt='{2}' /></a>",[/align]
[align=left] Forum.GetLink(yaf.Pages.topics, "f={0}", ForumID),[/align]
[align=left] strPath,[/align]
[align=left] strForumDescription[/align]
[align=left] );[/align]
[align=left] }[/align]
[align=left] else[/align]
[align=left] {[/align]
[align=left] // no access to this forum[/align]
[align=left] strReturn = String.Format("<img src='{0}' alt='{1}' />", strPath, ForumPage.GetText("NO_FORUM_ACCESS"));[/align]
[align=left] }[/align]
[align=left] [/align]
[align=left] return strReturn;[/align]
}
上述代码实现论坛图标的输出显示。
如有疑问,欢迎到 http://forum.EntLib.com 开源ASP.NET技术论坛交流。
相关文章推荐
- 开源ASP.NET论坛EntLib.com/YAF 定制化开发 Part 1
- 开源ASP.NET论坛EntLib.com/YAF 定制化开发 Part 1
- 开源ASP.NET论坛Forum - 定制化开发 Part 3
- 开源ASP.NET论坛EntLib.com/YAF 定制化开发 Part 1
- Kodi 开源源码定制化开发(原XBMC)
- 关于开发开源软件的授权 及获取数据的分析
- JAVA首选五款开源Web开发框架
- 【C/C++开发】值得学习的C语言开源项目
- Android开发——网易云音乐使用的开源组件集合
- 网易新闻iOS版在开发过程中曾经使用过的第三方开源类库、组件
- 在一个开源项目的开发中遇到的问题
- 嵌入式开发和学习推荐平台——最新迅为4412开源硬件开发板
- JavaFX即将开源,支持iOS与Android开发
- Android优秀开源项目,覆盖Android开发的每个领域
- J2EE开发总结之常用开源或免费工具
- 常用的几个提高IOS开发效率的开源类库及工具
- 主流移动应用开发框架(1)——实现左右滑隐藏菜单的开源框架AndroidResideMenu二次开发
- Android开发 无法导入ViewPagerIndicator或其他开源框架无法导入
- 基于asmack开发的Android开源IM客户端
- Android酷炫实用的开源框架(UI框架) – Android开发中文站 http://www.androidchina.net/1992.html