`
lonestone
  • 浏览: 92883 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

给你的CS2.0(CommunityServer2.0)添加帖子底部带登录的快速回复控件!

阅读更多

自从公司网站http://bbs.cnfdc.com.cn 用上了cs2.0,就有同事给我提出,能不能添加一个帖子底部的快速回复,这样可以很方便的回复帖子,当时刚接触cs,没有弄,现在,觉得对于cs比较熟悉了,于是就下手做了一个,没想到,成功了,现在就和大家分享一下吧。

我采用的是cs的标准方法,即用户控件的方式,建立一个皮肤文件,然后给这个皮肤文件对应写一个类。皮肤文件可以说是skin-Login.ascx和CreateQuickReplay.ascx的混合体,类文件也一样,不过由于要求游客可以通过一并输入用户名和密码的方式来发帖,所以先登录用户,这里就去掉了一些验证,放在用户登录后进行。

先把初步的皮肤文件的代码放上来,文件名Skin-ThreadQuickReply.ascx,放在default主题目录下

<%...@ControlLanguage="C#"%>
<%...@RegisterTagPrefix="CSD"Namespace="CommunityServer.Discussions.Controls"Assembly="CommunityServer.Discussions"%>
<%...@RegisterTagPrefix="CS"Namespace="CommunityServer.Controls"Assembly="CommunityServer.Controls"%>
<%...@ImportNamespace="CommunityServer.Discussions.Controls"%>
<%...@ImportNamespace="CommunityServer.Discussions.Components"%>
<%...@ImportNamespace="CommunityServer.Components"%>
<%...@ImportNamespace="CommunityServer.Controls"%>
<%...@ImportNamespace="CommunityServer"%>
<divclass="CommonContentArea">
<divclass="CommonContent">
<divclass="CommonFormArea">
<ulclass="ForumPostList">
<li>
<divclass="ForumPostArea">
<h4class="ForumPostHeader">
<tablecellpadding="0"cellspacing="0"border="0"width="100%">
<trvalign="middle">
<tdalign="left">快速回复主题</td>
<tdalign="right"class="ForumPostHeaderControlArea">
</td>
</tr>
</table>
</h4>
<tablecellspacing="0"cellpadding="0"border="0"width="100%"style="table-layout:auto;">
<trvalign=top>
<tdrowspan="2"class="ForumPostUserArea">
<divclass="ForumPostUserContent"style="text-align:left">
<CSD:UserPermissionsrunat="server"id="Userpermissions1"/>
</div>
</td>
<tdclass="ForumPostContentArea">
<tablewidth="100%"cellpadding="0"cellspacing="0"border="0">
<tr>
<tdclass="CommonFormField"colspan="2">
<asp:PanelID="UserLoginForm"runat="server">
<spanclass="CommonFormFieldName"><CS:ResourceLabelID="ResourceLabel1"runat="server"ResourceName="Login_UserName"/></span>
<CS:DefaultButtonTextBoxButton="loginButton"id="username"runat="server"size="30"maxlength="64"/>
<spanclass="CommonFormFieldName"><CS:ResourceLabelID="ResourceLabel2"runat="server"ResourceName="Login_Password"/></span>
<CS:DefaultButtonTextBoxButton="loginButton"TextMode="Password"id="password"runat="server"size="11"maxlength="64"/>
<spanclass="txt4">(<CSD:ForumAnchorAnchorType="UserForgotPassword"runat="server"/>)</span>
<asp:CheckBoxtype="checkbox"Checked="true"runat="server"id="autoLogin"/>
<asp:LinkButtonid="loginButton"runat="server"CssClass="CommonTextButton"/><ahref="/user/CreateUser.aspx">立即注册</a>
</asp:Panel>

</td>
</tr>
<tr>
<tdclass="CommonFormFieldName"><CS:ResourceLabelrunat="server"ResourceName="SendEmail_Subject"id="rc_send_subject"/></td>
<tdclass="CommonFormField"><asp:textboxautocomplete="off"id="PostSubject"runat="server"columns="80"/><asp:requiredfieldvalidatorid="SubjectValidator"runat="server"Cssclass="CommonValidationWarning"ControlToValidate="PostSubject">*</asp:requiredfieldvalidator></td>
</tr>
<tr>
<tdcolspan=2class="CommonFormField">
<asp:requiredfieldvalidatorid="Requiredfieldvalidator1"runat="server"Cssclass="CommonValidationWarning"ControlToValidate="PostBody">*</asp:requiredfieldvalidator>
<CS:Editorrunat="Server"EnableHtmlModeEditing="false"id="PostBody"Width="660"Height="200"/>
</td>
</tr>
<tr>
<tdcolspan=2class="CommonFormField">
<asp:buttonid="SavePost"Runat="server"Text="发表"/>
</td>
</tr>
</table>
</td>
</tr>
<trvalign="bottom">
<tdclass="ForumPostFooterArea">
<ulclass="ForumPostStatisticsCommonPrintHidden"style="clear:both;">
<li></li>
</ul>
</td>
</tr>
</table>
</div>
</li>
</ul>

</div>
</div>
</div>

然后就是ThreadQuickReply.cs,放在CommunityServerForums20项目的根目录下即可:

//------------------------------------------------------------------------------
//<copyrightcompany="TelligentSystems">
//Copyright(c)TelligentSystemsCorporation.Allrightsreserved.
//</copyright>
//------------------------------------------------------------------------------

usingSystem;
usingSystem.Web;
usingSystem.Web.UI.WebControls;
usingCommunityServer.Components;
usingCommunityServer.Controls;
usingCommunityServer.Discussions.Components;
usingSystem.Web.Security;

namespaceCommunityServer.Discussions.Controls
...{
/**////<summary>
///用来在主题下直接快速回复
///作者:王勇
///日期:2006-8-14
///email:wangyong.yichang@gmail.com
///qq:12586093
///</summary>

publicclassThreadQuickReply:CommunityServer.Controls.TemplatedWebControl
...{
publicThreadQuickReply()
...{
Initialize();
}


privatevoidInitialize()
...{


//CSEvents.AuthorizePost();

if(context.PostID>0)
...{
postReplyingTo
=Posts.GetPost(context.PostID,context.User.UserID);
forum
=postReplyingTo.SectionasForum;
}



if(postReplyingTo==null)
...{
thrownewCSException(CSExceptionType.PostNotFound);
}


//Securitychecktoseeiftheforumallowsanonymousposts
//
//if(context.User.IsAnonymous&&(!forum.EnableAnonymousPosting||!context.SiteSettings.EnableAnonymousUserPosting))
//{
//if(!Context.Request.IsAuthenticated)
//{
//Context.Response.Redirect(Globals.GetSiteUrls().Login);
//Context.Response.End();
//}
//}

if(postReplyingTo.IsLocked)
...{
Context.Response.Redirect(Globals.GetSiteUrls().Post(context.PostID));
Context.Response.End();
}

}


privateEditorpostBody;
privateTextBoxpostSubject;
privateIButtonbutton;
CSContextcontext
=CSContext.Current;
ForumPostpostReplyingTo
=null;
Forumforum
=null;

//提前登录控件
TextBoxusername;
TextBoxpassword;
IButtonloginButton;
CheckBoxautoLogin;

//*********************************************************************
//CreateChildControls
//
/**////<summary>
///Thiseventhandleraddsthechildrencontrols.
///</summary>

//***********************************************************************/
protectedoverridevoidCreateChildControls()
...{
//Iftheuserisalreadyauthenticatedwehavenoworktodo
if(Page.Request.IsAuthenticated)
border-right: #808080 1px solid; border-top: #808080 1px s
分享到:
评论

相关推荐

    photoshop cs2.0教程

    文字处理在平面设计中不可或缺,Photoshop CS2.0支持添加和编辑文本,用户可以学习如何调整字体、大小、颜色,以及应用文本样式和路径文字。 此外,教程还会涉及动作和批处理功能,通过录制一系列操作,可以快速...

    CS2.0

    《深入理解CommunityServer 2.0:博客、论坛与图片的完美融合》 在互联网社交领域,CommunityServer 2.0是一款强大的开源内容管理系统,它集成了博客、论坛和图片分享等功能,为用户提供了一个全面的在线社区平台。...

    OWIN OAuth 2.0 Authorization Server

    OWIN(Open Web Interface for .NET)是一...这个"OWIN OAuth 2.0 Authorization Server"项目应该包含了实现上述功能的代码,你可以通过研究代码来了解具体的实现细节,为自己的应用程序添加安全的OAuth 2.0授权功能。

    BBS-CS2.0.rar

    【标题】"BBS-CS2.0.rar" 提供的是一个基于Java JSP技术构建的BBS(电子公告板)系统源代码。这个系统可能是为了帮助开发者理解和学习如何使用Java Web技术来创建交互式在线讨论平台。以下是这个系统中涉及的一些...

    BBS-CS V2.0

    综上所述,BBS-CS V2.0是一个基于JSP技术的论坛社区系统,它集成了用户注册、登录、发帖、回帖、搜索等多种功能,为用户提供了一个互动性强的在线交流平台。通过分析提供的文件名,我们可以推断出其基本架构和关键...

    [整站程序]Community Server v2.1 for asp.net v2.0 中文正式版源码_998118cs.zi

    [整站程序]Community Server v2.1 for asp.net v2.0 中文正式版源码_998118cs.zi[整站程序]Community Server v2.1 for asp.net v2.0 中文正式版源码_998118cs.zi[整站程序]Community Server v2.1 for asp.net v2.0 ...

    photoshop cs 2.0

    Photoshop CS2.0是一款由Adobe公司开发的专业图像处理软件,是数字图像编辑与创作的行业标准。这个版本在CS系列中占据着重要的位置,它为用户提供了许多强大的功能,适用于初学者和有一定经验的设计师。 对于初学者...

    Asp.net 2.0 FileUpload 控件的用法

    在探讨ASP.NET 2.0中的`FileUpload`控件的使用方法时,我们首先要理解这个控件的基本功能和在Web开发中的作用。`FileUpload`控件是ASP.NET框架中用于处理用户上传文件的一个重要组件,它允许用户选择一个或多个文件...

    Community Server v2.1 for asp.net v2.0 中文正式版源码_998118cs.zip

    今天,我们来详细探讨一下“Community Server v2.1 for ASP.NET v2.0”的中文正式版源码,这是一款基于微软.NET框架的社区构建平台,它集成了博客、论坛、相册、文件共享等多种社交功能,是Web开发中的重要参考案例...

    ASP.NET2.0+SQLServer网络应用系统开发案例精解

    ASP.NET2.0+SQLServer网络应用系统开发案例精解 这是我在实习的时候购买《ASP.NET2.0+SQLServer网络应用系统开发案例精解》这本书时附送的各应用系统的源代码!~系统采用VS2005+SQLSERVER2000+C#编写!~已经通过...

    Photoshop CS 基础入门教程 2.0.0.2

    Photoshop CS是一款由Adobe公司开发的专业图像处理软件,它在设计、摄影、艺术等领域具有广泛的应用。...通过这个2.0.0.2版本的教程,你将能够逐步掌握这个强大的图像编辑软件,开启你的创意之旅。

    网上在线论坛(ASP.NET 2.0+SQL Server 2005实现)

    【标题】:“网上在线论坛(ASP.NET 2.0+SQL Server 2005实现)”是一个基于ASP.NET 2.0版本的Web应用程序,它利用了Microsoft SQL Server 2005作为后端数据库管理系统,实现了在线讨论论坛的功能。这个项目可能包括...

    简单的电子书翻页效果 Flash cs3 as2.0

    "简单的电子书翻页效果 Flash cs3 AS2.0"是一个典型的项目,它利用了Adobe Flash Professional CS3这款强大的动画和交互设计工具,以及ActionScript 2.0编程语言,来模拟真实的纸质书翻页效果。下面我们将深入探讨这...

    ASP.NET源码——[整站程序]Community Server v2.1 for asp.net v2.0.zip

    在这个特定的压缩包"ASP.NET源码——[整站程序]Community Server v2.1 for asp.net v2.0.zip"中,我们得到了一个名为"Community Server"的完整网站程序的源代码,版本为v2.1,它是为ASP.NET v2.0设计的。 Community...

    ASP.net 2.0 + SQL Server.rar

    ASP.NET 2.0是微软.NET框架下的一个关键组件,专为构建动态Web应用程序而设计。这个版本在ASP.NET 1.x的基础上进行了诸多改进和增强,以提高开发效率和性能。它提供了丰富的服务器控件、事件驱动模型以及强大的内置...

    jdbc sqlserver 驱动2.0

    **Microsoft SQL Server JDBC Driver 2.0 知识点详解** `JDBC(Java Database Connectivity)`是Java语言中用于与数据库交互的一种标准接口,它允许Java程序通过标准API与各种数据库进行通信。`SQL Server JDBC ...

    .NET 2.0 自动更新控件-源码

    .NET 2.0 自动更新控件是一种在Visual Studio 2005环境下开发的组件,主要用于.NET Framework 2.0应用程序的版本管理和更新。它为开发者提供了一种简便的方法来实现程序的自动检查更新、下载和安装,使得用户无需...

    c#CS登录注册实现version2.0

    在本文中,我们将深入探讨如何使用C#语言和Windows Forms(WinForm)开发一个完整的登录注册系统,版本2.0。这个系统对于任何基于桌面应用的项目都是至关重要的,因为它为用户提供了一个安全的身份验证和授权机制。...

    AI脚本大合集2.0版本(CS6-CC2019)

    AI脚本大合集2.0版本提供了一键标注功能,能够快速准确地为设计元素添加尺寸,减少了手动测量和标注的时间,确保了设计精度。 其次,包装盒刀版出血制作是包装设计中的重要环节。传统的制作过程往往繁琐且容易出错...

Global site tag (gtag.js) - Google Analytics