CommunityServer2.0改造的一些心得[粗糙版]
1,关于选型
如果打算快速实现BBS,BLOG,相册,下载等系统的通用社区型网站,CS2还是很好的选择来的.
不过如果希望它作为一网站的一个产品独立发展,则CS2不是最好选择,如果让我选择,我觉得
ANF(bbs.hidotnet.com) + 博客园的blog会更好一些,因为CS2整合的东西太多,内部复杂度很大
每个APP的改造幅度过大.都很可能对其他的APP产生影响.为了不影响,要考虑的东西比较多.
对于大型应用.发展到最后还是要分离的.迟早要分,还不如早分.而且各个功能点独立发展
自由度会更高.特别适合团队开发方式.当然,分离了就要考虑用户信息的SSO等等,但那不是重点.
置于相册和下载等系统.目前未发现有好的东西.
下载部分,DNN的文件上传和管理非常强大,可以拿来借鉴和改造.
2,CS2的个性化是基于皮肤的,但换皮肤的成本很高.需要重新做很多的UserControl.
现在有很多的论坛系统是基于风格的.换风格只是换颜色和图片,相对来说成本比较低.
但不能改变布局,所以各有千秋.其实CS2只要处理得当,是可以同时兼顾两种方式的.
3,关于html的DOCTYPE的问题
如果你为CS2改造而设计新的界面,最后在设计阶段的页面观看效果的时候,一定要加上(不同的DTD可参考其他资料)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
因为有和没有这个JS和CSS的行为和效果很不相同,而CS2的很效果的JS是需要有这个才正常运行的
所以设计时要考虑这个.
4, 同一个页面不同的文本框回车响应不同的事件
这个文章(http://www.dezai.cn/index/Article_Show.asp?ArticleID=7694)提了两个方式。
有一个需要改form的onkeydown event,这样不好。我综合了一下,不用改form.
function SearchShortCut(evt)
{
if(evt.keyCode == 13)
{
OpenSearchWin() ; //这个为一JS方法
evt.keyCode = 9 ; //转移为tab事件
}
}
然后设置搜索框的onkeydown="SearchShortCut(event);",这样输入关键字按回车就可以提交搜索了。
5,图片大小可按鼠标滚轮滚动自动缩放的JS 。
function bbimg(o)
{
var zoom=parseInt(o.style.zoom, 10)||100;zoom+=event.wheelDelta/12;if (zoom>0) o.style.zoom=zoom+'%';
return false;
}
然后在img标签上加上onmousewheel="return bbimg(this);"
6,CS2.x freetextbox的问题。以及初步解决方案
在CS2.x出现下面的两个FTB问题:
1)
FreeTextBox has not been correctly installed. To install FreeTextBox either:
(1) add a reference to FtbWebResource.axd in web.config:
<system.web>
<httpHandlers>
<add verb="GET"
path="FtbWebResource.axd"
type="FreeTextBoxControls.AssemblyResourceHandler, FreeTextBox" />
</httpHandlers>
</system.web>
(2) Save the FreeTextBox image and javascript files to a location on your website and set up FreeTextBox as follows
<FTB:FreeTextBox id="FreeTextBox1" SupportFolder="ftbfileslocation" JavaScriptLocation="ExternalFile" ButtonImagesLocation="ExternalFile" ToolbarImagesLocation="ExternalFile" ButtonImagesLocation="ExternalFile" runat="server" />
分析,方案:按照上面的提示加上(观察中,未能确定是否有问题)。不过奇怪的是不加也没问题,只不过不知道什么时候又出现上面的提示。
2)出现异常,提示如下:
The path \ITDBClub\FreeTextBox3\Languages\ cannot be found (D:\BBS\ITDBBBS\Web\FreeTextBox3\Languages\).
分析,方案:这个问题比较难跟踪。因为所提示的路径确实是存在的,后来我把Languages下的所有语言问题去掉。只保留zh-cn。到目前为止还未发现这个异常了。估计和缓存有一定关系
7,打开窗口最大化
一般看帖都喜欢最大化
window.moveTo(0,0);
window.resizeTo(screen.width,screen.height);
8,提交的html文本,自动修正html格式(比如,开头闭和不完整的去除)
参见:CommunityServer.Components.HtmlNestingCorrectionModule类
================17:04 2006-8-17===================
1,发帖恢复上次提交功能
参考资料:
http://blog.csdn.net/asthlon/archive/2004/11/11/177291.aspx
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/persistence/overview.asp
2,在线用户信息
参考资料:
http://hesicong.cnblogs.com/archive/2005/08/17/216956.aspx
http://www.cnblogs.com/rexsp/archive/2004/12/27/82740.html
http://lumaqq.linuxsir.org/article/qqwry_format_detail.html
3,图片上传功能
主要的一点是CS2的安全性控制的很严格和灵活。所有没有在CommunityServer.config的MarkUp的HTML,JS标签等会被过滤掉。
如果需要出现类似<img src='url' onmousewheel='return bbimg(this)' onload='if(this.width>550)this.width=550' border='0'>
这样的标签的话,那就需要在MarkUp里定义一下,否则,会被过滤掉一部分标签。