DNT2.0交友信息插件制作全攻略(一)

这是我在2008年6月28日写的帖子,发在nt.discuz.net上的,现在转回来备份一下。原文地址:http://nt.discuz.net/showtopic-50906.html

说是做插件其实名不副实,其实是直接用DNT2.0的源代码进行改造,在用户信息部分添加一些需要的字段,技术含量不高,主要是介绍如何在别人系统中加入自己的东西,提供点思路。

 

源代码下载地址(792K)

交友插件主要功能是让会员填写更详细的个人信息和个性信息,并让其他人能够查看,通过这些信息,加深会员间的了解。

DNT2.0交友信息插件制作全攻略(一)_第1张图片一、需求:
1、允许注册1个字符长度的帐户

2、会员可以填写个人信息,可以修改自己的信息,可以查看别人的信息。

二、结果:
该插件通过修改源代码和模板,实现了与DNT2.0的无缝结合,外观表现和操作都非常自然。在用户中心添加了“编辑个人信息”页,允许用户自由修改资料;修改“查看用户信息”页,将会员资料展示在其中。

DNT2.0交友信息插件制作全攻略(一)_第2张图片三、修改前要准备和规划的:
a、得到DNT2.0源代码,并用vs2005打开解决方案sln。打开Discuz.Web项目中的\aspx\1目录,这里面是Discuz.ForumPage命名空间的逻辑层代码所在地,我们大部分页面逻辑要添加在里面。

b、打开\templates\default目录,这是原始模板的地址,页面表现需要对其中部分进行修改,并有新的模板文件要被创建。

c、规划一下,共要修改4个模板,新建1个模板;修改2个页面逻辑,新建1个页面逻辑;数据库要加1个表;采用单层来写这个表的对应DAL;使用XML实现数字字典来管理个人信息。

d、用管理后台将模板生成的页面会自动加上Inherits="Discuz.ForumPage.xxxxxx",就是说页面逻辑需要写在Discuz.Web项目中并进行编译才是最干净的做法,这样可以避免像“会员生日插件”那样需要在模板中添加命名空间的引用。


=============下面具体说明我是如何修改的===============

四、建立Discuz.Plugin.Friend插件项目,该项目主要功能是对Personinfo表进行增改查操作,对个人信息的勾选部分进行字典支持,是信息的底层。
1、建立数据库PersonInfo表,用于储存会员的个人信息,信息具体内容参考截图。

 
CODE:
--详见 附件中代码
Code


DNT2.0交友信息插件制作全攻略(一)_第3张图片2、编写数据库对象的操作类,利用SqlHelper:
CODE:
Code



3、编写获得字典的方法:

CODE:
Code


4、字典部分内容:
CODE:
Code



五、修改Discuz.Web项目中的文件register,以满足需求[1]。
1、添加Discuz.Plugin.Friend项目资源引用,并将item.config拷贝至web根目录中。

2、修改\aspx\1中的register.aspx.cs,将111行的字符数限制改为1。

 
CODE:
Code



3、修改\templates\default中的register.htm模板,将248行和255行分别修改字符数限制。

CODE:
Code



4、编译Discuz.Web项目,在后台生成register.htm模板,此时帐号注册字符数限制被修改为最少1个字符。


六、修改Discuz.Web项目中的文件userinfo,以满足需求[2]的第3点。
1、修改\aspx\1中的userinfo.aspx.cs,添加代码:

CODE:
Code



2、修改\templates\default中的userinfo.htm模板,将id="firestmessage"附近代码进行调整,增加person相关字段信息

CODE:
Code


3、编译Discuz.Web项目,在后台生成userinfo.htm模板,此时“查看用户信息”页已经如我所愿了。

(未完待续)

你可能感兴趣的:(插件)