我的.Subtext二次开发之路系列:无限层次分类
08-14 9:58 修改说明:哈!我说明了会全部放出我的所有修改啊!只是目前完成的量还不多,再加上昨晚(应该说是今天早上)没有及时清理完成整个项目包,所以就为配合文章的内容,先放出web部分了。 同时,书写本系列也是纯粹为了和所有关注.subtext项目的爱好者共同探讨和交流,大家互相鼓励才是前进的动力!
请见谅:):
首先非常诚恳的向所有回复前两文的群友致歉,没有及时将目前修改版本的下载地址发送到所有人的邮箱,在这里统一提供下载链接地址:修改版下载。
这些天一直在赶CategoryList的修改,也就是对随笔、文章等的分类进行修改,目前的.subtext,包括博客园所采用的版本,一直都只能对随笔或文章等设置一级分类,我想这也许能够满足大部分人群的需求了,但是根据我个人的分析,在很多场景里,多层次的分类,可以更好的组织信息。
因为需要考虑到始终保持和.Subtext官方版本的同步,所以在修改的时候特别谨慎,尤其是对数据库的修改,尽可能的避免产生数据字段迂余。通过细致的分析,决定对subtext_LinkCategories表增加ParentID,SortOrder,以及ImageFile:
ParentID:这个字段的作用我想大家都会非常明了;
SortOrder:目前的分类,还没有提供排序的功能,所以增加这个字段用来实现指定顺序;
ImageFile:现在很多的网站,都能够针对分类设置特定的图片,作为这个分类的标识,所以增加了这个功能。
在具体实现的时候,原来以为应该比较简单,结果真正开工后,却发现需要修改的地方还真多,原来后台Add,以及Edit分类的地方基本上都挪动到另外新的页面中去了,尤其是在如何表现分类层次结构的问题上,费了不少心思,要求就是怎样既减少对数据库的访问,又能够最高效的体现分类层次,最后采取的方式是:一次性将某种形式(如随笔)的分类全部提取出来(不分层次),然后通过循环根据ParentID进行层次重组,每迭代进入更深一个层级的分类,就在分类标题前增加空格和“-”符合,从视觉上形成分类层次关系,但是实际上在html结构上,所有的分类列表都是属于<ul>标签下的同级<li>标签,呵呵呵,个人感觉后台只需要让大家看出各分类的层次关系就可以了,所以采取了这样的处理方式。
但是前台页面中对分类的表现,就不能采取这样的呈现方式了,因为前台可能还需要对分类进行popupmenu等效果的处理,所以子分类和父分类在html结构上就必须要有明确的分离,而且还需要考虑到无限子级。
哈哈哈,如此表述也许有些模糊,只能怪偶嘴拙了,那么有兴趣的下载最前面链接提供的目前修改版本(呵呵呵,似乎连Demo版都不算哦),看看页面效果就知道大概意思了。
注:压缩包中包括Web项目文件夹和数据库文件,我本地数据库采用的SQLServer2008,直接附加就可以了,注意设置权限,IIS设置web访问端口为2733,这样就可以通过Http://localhost:2733/venjoy/default.aspx 访问了。对了,目前唯一Blog的用户名和密码分别是:venjoy ,123456。
对了,同时随手将目前.subtext中的FCKEditor升级成最新的2.6.3版本了。:):