我的.Subtext二次开发之路系列:兵马未动,粮草先行
《引言》得到众多群友的关注,让我感觉压力甚大,不知是否能够回报给大家尽可能高质量的完整系列。同时从反馈获知希望能够共同交流.subtext研究心得的群友不少。所以,我干脆架设了一个相关站点,用以专门发布我个人二次开发的相关版本,同时也作为大家交流的场所:http://subtext.8001861.com。只是非常可惜的是,目前网站所在的服务器带宽非常小,访问速度会很慢,哈哈哈,锻炼大家耐心的机会(如果哪位群友可以提供共享空间,非常感谢! ),同时,以后所有的二次开发版本都将通过此站提供下载,就不一一回复各位的邮件了。
本来刚才还在考虑,今天如何切入主题的,正好看到一未注册用户Eve的留言,其中提到mtime,提到myspace.cn,尤其是提到blog页面布局的不足,于是临时确定就从.subtext的页面加载说起。
.subtext对于页面重定向,同样是在httpHandlers中进行处理的(请注意web.config中的相关配置节),httpHandlers节中定义对各种类型的文件或某个目录,或某一具体路径访问的处理HandlerFactory(关于IHttpHandlerFactory的运行机制,请各位查阅MSDN,我这里不做详细讲述),需要特别注意的是,对于所有不需要特殊处理和重定向处理的页面或目录,或者需要特殊处理和不需要重定向的页面和目录,需要在这里添加配置,特别需要注意的是这一句:
<add verb="*" path="*" type="Subtext.Framework.UrlManager.UrlReWriteHandlerFactory, Subtext.Framework"/>
这一句需要放置在httpHandlers配置节点的最后(呵呵呵,大家应该能够理解为什么需要这样处理)。
到此处,重定向处理已经进入预定的轨道了,后面还涉及到实质性的Code,但是如果各位梳理到了这个地方,后面的详细处理应该可以弄明白,暂时先点到此处,意犹未尽最是喜人:):。
再回到Eve朋友的留言,提到如果Blog的各个功能页面能够有不同的布局就好了,现在请大家再看web.config的HandlerConfiguration节点下的HttpHandlers配置节,比如:
<HttpHandler pattern="(?:/archive/\d{4}/\d{2}/\d{2}/\d+\.aspx)$" controls="viewpost.ascx,Comments.ascx,PostComment.ascx"/>
此节点,对应的就是重定向时对blog文章阅读页面的url构成规则,和阅读页需要加载的控件(控件如何加载到页面中,后文会有专文讲述),那么既然这里可以定义加载的控件列表,那么我们就可以定义一个页面专门用来布局(theme.ascx),然后再在此页面加载实际的功能模块控件,不就实现了最终显示的效果差异化了么?
呵呵呵,思路如此,各有不同,不明之处,请留言共同讨论。
注:明天会实现一个具体的实例,放置在http://subtext.8001861.com站点供大家体验。欢迎群友访问。
另:项目包待实现此文提到的页面布局个性定义后一并提供下载,预计周六下午(明天迎接奥运,放假半天:):)。
本来刚才还在考虑,今天如何切入主题的,正好看到一未注册用户Eve的留言,其中提到mtime,提到myspace.cn,尤其是提到blog页面布局的不足,于是临时确定就从.subtext的页面加载说起。
.subtext对于页面重定向,同样是在httpHandlers中进行处理的(请注意web.config中的相关配置节),httpHandlers节中定义对各种类型的文件或某个目录,或某一具体路径访问的处理HandlerFactory(关于IHttpHandlerFactory的运行机制,请各位查阅MSDN,我这里不做详细讲述),需要特别注意的是,对于所有不需要特殊处理和重定向处理的页面或目录,或者需要特殊处理和不需要重定向的页面和目录,需要在这里添加配置,特别需要注意的是这一句:
<add verb="*" path="*" type="Subtext.Framework.UrlManager.UrlReWriteHandlerFactory, Subtext.Framework"/>
这一句需要放置在httpHandlers配置节点的最后(呵呵呵,大家应该能够理解为什么需要这样处理)。
到此处,重定向处理已经进入预定的轨道了,后面还涉及到实质性的Code,但是如果各位梳理到了这个地方,后面的详细处理应该可以弄明白,暂时先点到此处,意犹未尽最是喜人:):。
再回到Eve朋友的留言,提到如果Blog的各个功能页面能够有不同的布局就好了,现在请大家再看web.config的HandlerConfiguration节点下的HttpHandlers配置节,比如:
<HttpHandler pattern="(?:/archive/\d{4}/\d{2}/\d{2}/\d+\.aspx)$" controls="viewpost.ascx,Comments.ascx,PostComment.ascx"/>
此节点,对应的就是重定向时对blog文章阅读页面的url构成规则,和阅读页需要加载的控件(控件如何加载到页面中,后文会有专文讲述),那么既然这里可以定义加载的控件列表,那么我们就可以定义一个页面专门用来布局(theme.ascx),然后再在此页面加载实际的功能模块控件,不就实现了最终显示的效果差异化了么?
呵呵呵,思路如此,各有不同,不明之处,请留言共同讨论。
注:明天会实现一个具体的实例,放置在http://subtext.8001861.com站点供大家体验。欢迎群友访问。
另:项目包待实现此文提到的页面布局个性定义后一并提供下载,预计周六下午(明天迎接奥运,放假半天:):)。