Discuz!NT官方社区

首页 » Discuz!NT开发与测试 » Discuz!NT插件开发 » 发布一个招集聚会活动的插件
xj728 - 2008-1-24 16:28:00
该插件从发布之日起,确实还需要不断的完善,期间给大家带来的不便,请见谅,
如果你们有网站,请留一个网站,我会去测试的,有问题,我会第一时间修改,给大家带来的不便,请见谅 !
比较急的朋友,请加我QQ,注明:插件


--------------------------------------------------------


2008-01-30号之前下载的朋友请下载最新的版本,给大家带来的不便请见谅

上一个版本是2008-1-26号发布的,修正了以下问题
1、增加了活动过期提示、并停止报名
2、增加了活动过期后,锁定贴子
3、修改了发布活动截止日期没有记录
3、修正了Sql语句只能在查询分析器里运行。现在可以论坛后台直接运行


附件: CSExpressPlugIn.rar (2008-1-30 18:01:22, 58.47 K)
该附件被下载次数 247




本插件已尽可能的不修改源程序的代码,除了与发贴相关的几个页面模版外,其它的基本不作改动,以后更新只需要更新我提供的两个dll文件即可。


本程序有三个功能,如下:
1、修改登录框在首页显示,如果用户已登录就不显示
2、增加一个生日用户的插件
3、活动插件

使用方法很简单,如下:
1、将后台里运行Sql.txt文件里的建表语句,分别是“聚会”和“参加聚会的用户表”
2、在web.config文件里添加数据库链字符串,如下:
  <connectionStrings>
    <add name="CSExpressPluginConnectionString" c/>
  </connectionStrings>
 
  注意:name="CSExpressPluginConnectionString"不能更改,以后其它插件都用此链接字符串
3、将“放入bin目录”里的文件拷贝到论坛bin目录里
4、将“放入模版目录里”的文件拷贝到论坛当前使用的目录目录里
5、在后台重新生成_pageheader.htm,_header.htm,forumindex.htm,klatch.htm,showtopic.htm,editklatch.htm,showforum.htm,joinklatch.htm

有问题请发邮件给我
Msn:xj728@hotmail.com
QQ:8672429


---------------------------------------------------------------------------------

模版更改的地方如下:
_pageheader.htm 
在第10行下增加了一个样式链接:<link rel="stylesheet" href="templates/{templatepath}/csexpressstyle.css" type="text/css" media="all"  />

_header.htm
将右上角的链接移到导航栏,具体请看模版

_showtopic.htm
将原有的发布新贴按钮代码改成有弹出菜单的,以便可供选择发布新贴或者发布活动,代码如下
<a id="btnpost"  href="posttopic.aspx?forumid={forum.fid}"><img src="templates/{templatepath}/images/write-bbs.gif" alt="发布新帖" /></a>

在底部增加弹出菜单代码,如下:
<div id="btnpost_menu" class="ntdropmenu" style="display: none;">
    <a href="posttopic.aspx?forumid={forum.fid}" style=" background-image:url(templates/{templatepath}/images/folder_s.gif); ">发布新主题</a>
    <a href="klatch.aspx?forumid={forum.fid}" style=" background-image:url(templates/{templatepath}/images/showactivity.gif);">发布聚会活动</a>
</div>


showforum.htm
增加了判断当前主题是否为活动贴,修改代码如下:
<%if {toptopic.poll}>0%>
      <%if {toptopic.poll}==1%>
          <img src="templates/{templatepath}/images/pollsmall.gif" alt="投票贴" />
      <%else if {toptopic.poll}==2%>
          <img src="templates/{templatepath}/images/showactivity.gif" alt="聚会活动贴子" />
      <%/if%>
    <%/if%>   


其它的页面为新增加的页面。

附件: CSExpressPlugIn.rar
xj728 - 2008-1-24 16:30:00
忘了提醒大家,记得备份
丢失的蓝色 - 2008-1-24 20:10:00
顶一个。。支持你
HugeDragonYK - 2008-1-24 20:23:00
支持下.
lishewen - 2008-1-24 23:01:00
能告诉我具体要改模板的哪里吗?
我把你的文件覆盖过去后原来的模板都乱完了
xj728 - 2008-1-25 10:30:00


引用:
能告诉我具体要改模板的哪里吗?
我把你的文件覆盖过去后原来的模板都乱完了
不会吧,
你把地址给我看一下,模版只是增加了一些判断是否为活动的主题,没做其它修改

QQ:  8672429  请直接与我联系。

我已经发布了修改的地方,请看第一楼的贴子
shuimu - 2008-1-25 15:20:00
顶上,!!
livingwater - 2008-1-26 8:53:00
Thanks a lot
this is a very useful tool
hope it can work smoothly
:)
hx211 - 2008-1-26 10:21:00
好象还有点问题.
报名的时候

请求在此上下文中不可用
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Web.HttpException: 请求在此上下文中不可用

源错误:


[没有相关的源行]


源文件: c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\ec159152\cd858de3\App_Web_6zwu6ob-.0.cs    行: 0

堆栈跟踪:


[HttpException (0x80004005): 请求在此上下文中不可用]
  System.Web.UI.Page.get_Request() +2073101
  Discuz.ForumPage.joinklatch.ShowPage() +1041
  Discuz.Web.UI.Pages.BasePage..ctor() +4084
  Discuz.ForumPage.joinklatch..ctor() +94
  ASP.aspx_1_joinklatch_aspx..ctor() in c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\ec159152\cd858de3\App_Web_6zwu6ob-.0.cs:0
  __ASP.FastObjectFactory_app_web_6zwu6ob_.Create_ASP_aspx_1_joinklatch_aspx() in c:\windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\ec159152\cd858de3\App_Web_6zwu6ob-.28.cs:0
  System.Web.Compilation.BuildResultCompiledType.CreateInstance() +49
  System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert) +115
  System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +31
  System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +40
  System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) +139
  System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +120
  System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
nellcome - 2008-1-26 15:47:00
怎么运行SQL语句出现下列错误,要怎么解决?

服务器: 消息 170,级别 15,状态 1,行 11
第 11 行: ')' 附近有语法错误。
服务器: 消息 15135,级别 16,状态 1,过程 sp_validatepropertyinputs,行 100
对象无效。不允许在 '.CSExpress_KlatchUserList.isConfirm' 上使用扩展属性,或对象不存在。
xj728 - 2008-1-26 22:09:00
TO:hx211
你的问题好像跟我的插件没有关系吧。 我网站上没有更新。如果你有网站,请给我一个地址,我帮你测试一下。



TO:nellcome
不允许在 '.CSExpress_KlatchUserList.isConfirm' 上使用扩展属性,或对象不存在。 该错误不会影响建表,只是能表字段进行描述而已,

务器: 消息 15135,级别 16,状态 1,过程 sp_validatepropertyinputs,行 100
这个不是我插件的问题,请重新检查一下。


如果你们有网站,请留一个网站,我会去测试的,有问题,我会第一时间修改,给大家带来的不便,请见谅
xj728 - 2008-1-26 22:12:00
TO:hx211
你的问题好像跟我的插件没有关系吧。 我网站上没有更新。如果你有网站,请给我一个地址,我帮你测试一下。



TO:nellcome
不允许在 '.CSExpress_KlatchUserList.isConfirm' 上使用扩展属性,或对象不存在。 该错误不会影响建表,只是能表字段进行描述而已,

务器: 消息 15135,级别 16,状态 1,过程 sp_validatepropertyinputs,行 100
这个不是我插件的问题,请重新检查一下。


如果你们有网站,请留一个网站,我会去测试的,有问题,我会第一时间修改,给大家带来的不便,请见谅
xj728 - 2008-1-26 22:23:00
已经成功使用的用户,这并非是我的论坛:D
http://nt.discuz.net/showtopic-41506.html
bh5588 - 2008-1-26 23:48:00
在后台运行出现:

第 6 行: go 附近有语法错误。在关键字 if 附近有语法错误。第 35 行: go 附近有语法错误。第 50 行: ) 附近有语法错误。第 57 行: go 附近有语法错误。

星星有约 - 2008-1-26 23:59:00
做好事的大家还是支持的,好,偶顶你一个.希望做出更多的插件来:)
xj728 - 2008-1-27 0:04:00
不好意思,这个Sql如果是直接用查询分析器运行是不会有问题的,如果用后台运行,你去掉注释的代码看看,就是/*这样的行,再运行一下应该没有问题
xj728 - 2008-1-27 0:42:00
已经更新了插件
nellcome - 2008-1-27 3:36:00
问题已经解决:

execute sp_addextendedproperty 'MS_Description',
  '1表示参加,0表示可能参加',
  'user', '', 'table', 'CSExpress_KlatchUserList', 'column', 'isConfirm'
go

改成:
execute sp_addextendedproperty 'MS_Description',
  '1表示参加,0表示可能参加',
  'user', 'dbo', 'table', 'CSExpress_KlatchUserList', 'column', 'isConfirm'
go
指定所有者就可以了。
四林 - 2008-1-27 4:54:00
找不到方法:“Int32 Discuz.Config.GeneralConfigInfo.get_Htmltitle()”。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.MissingMethodException: 找不到方法:“Int32 Discuz.Config.GeneralConfigInfo.get_Htmltitle()”。

源错误:


[没有相关的源行]


源文件: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\de5be83f\a9c1b370\App_Web_jt2y00hq.22.cs    行: 0

堆栈跟踪:


[MissingMethodException: 找不到方法:“Int32 Discuz.Config.GeneralConfigInfo.get_Htmltitle()”。]
  Discuz.ForumPage.klatch.ShowPage() +0
  Discuz.Web.UI.Pages.BasePage..ctor() +4006
  Discuz.ForumPage.klatch..ctor() +99
  ASP.aspx_1_klatch_aspx..ctor() in c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\de5be83f\a9c1b370\App_Web_jt2y00hq.22.cs:0
  __ASP.FastObjectFactory_app_web_jt2y00hq.Create_ASP_aspx_1_klatch_aspx() in c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\de5be83f\a9c1b370\App_Web_jt2y00hq.25.cs:0
  System.Web.Compilation.BuildResultCompiledType.CreateInstance() +49
  System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp, Boolean noAssert) +115
  System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +31
  System.Web.UI.PageHandlerFactory.System.Web.IHttpHandlerFactory2.GetHandler(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath) +40
  System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) +139
  System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +120
  System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155

http://www.nnfb.cn
yugu91 - 2008-1-27 14:14:00
搂住插件似乎没用DNT SQL运行类,自己写了一个,感觉那样不好,要是每个插件都那样,自己搞一串字符串,搞一个SQL运行类,那网站有多复杂,假如SQL运行出问题了,譬如又有了新得注入漏洞,咱论坛不是要改N次
xj728 - 2008-1-28 9:53:00
因为像这样的插件一般很简单,直接用.net自带的SqlClient类。

插件是以参数的方式运行Sql,所以不会有注入漏洞。
nellcome - 2008-1-28 11:37:00
已经安装成功,顺便提几个建议:
1、报名截止日期已到,会员应不能再报名
2、已报名会员是否可以自己退出
3、一个会员如果带几个其他非会员参加,是否可以增加同行人数
4、是否可以增加已参加聚会的会员的评分
5、超过活动日期,是否可以自动锁定贴子
xj728 - 2008-1-28 12:54:00
谢谢你的建议,这个插件只是一个简单的版本。

这个插件最后可能会扩展成一个强大的SNS系统,所以你提的功能最后肯定都会实现。:D
scei - 2008-1-28 14:54:00
建议楼主直接和Comsenz联系整合进下一个升级版本中吧:D
四林 - 2008-1-29 2:20:00
同意楼上的建议!请官方考虑一下!社区论坛太需要这样的功能了
xj728 - 2008-1-29 14:51:00
Comsenz是谁?呵呵,不好意思,我还不知道。

有朋友跟我说要扩展一下论坛的用户功能,增加一些人际交往方面的功能,相当于一个简单的SNS系统,我会慢慢向这方面发展。

这两天完善一下这个插件,把大家提的意见整合进去
九天英雄 - 2008-1-30 14:47:00
请问楼主的插件是.net 2.0的吗?
数字南充 - 2008-1-30 15:01:00
第 6 行: go 附近有语法错误。在关键字 if 附近有语法错误。第 35 行: go 附近有语法错误。第 50 行: ) 附近有语法错误。第 57 行: go 附近有语法错误。


什么意思
xj728 - 2008-1-31 0:18:00
不知道为什么,这个贴子不让我修了,请到http://nt.discuz.net/showtopic-41383.html 下载最新的版本。


更新:
1、增加了活动过期提示、并停止报名
2、增加了活动过期后,锁定贴子
3、修改了发布活动截止日期没有记录
3、修正了Sql语句只能在查询分析器里运行。现在可以论坛后台直接运行
4、修正了同一个用户重复报名参加的错误
xj728 - 2008-1-31 0:19:00
下载最新版的,Sql语句就没有GO了,请更新最新版本
12
查看完整版本: 发布一个招集聚会活动的插件