RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:30-18:00
你可能遇到了下面的问题
关闭右侧工具栏
有关CommunityStarterKit的架构文档(翻译)
  • 作者:zhaozj
  • 发表时间:2020-12-23 11:02
  • 来源:未知

这篇文档包含一个有关CSK的结构简介。文档的第一部分主要介绍CSK的两个特点:皮肤和由数据库生成页面和目录,你可以学到这两个特点是怎么实现的。这篇文档的第二部分讨论修改CSK的方法。第一,你将学习怎么建立一个新的主题,以之用来改变站点的外观。接下来学习的是怎么建立一个在CSK平台上工作的模型组件,例如像Jobs模型组件。

Part 1:CSK的特点

★  皮肤系统

CSK是建立在asp.net社区应用程序上的(www.asp.net)。就像ASP.NET社区应用程序一样,它也是利用皮肤系统从代码上决定用户接口。一共有四种类型的皮肤供CSK使用:Page Skins - Page Skin 决定所有层上的页面。例如,它可以决定栏目导航在页面上的位置。一般地,一个站点只选一种Page Skin。Content Skins - Content Skin被用来组织页面上的内容部分。例如,一个Login页面的外观就是由Content Skin决定的。一般地,Content Skin 和站点的页面是一对一的关系。Control Skins - Control Skin是用来定制一个控制的外观。例如,栏目导航控制的外观就是由Control Skin实现的。(还有好多种控制,如用户等)Template Skins - Template Skin决定了控制模板的外观,像在一个Repeater控制里的ItemTemplate and HeaderTemplate。与comment views的区别,例如threaded,embedded,nested,通过不同的模板皮肤来实现。

无论何时,当你打开一个CSK页面时,一组皮肤被调用以之决定页面外观。例如,你一旦为了站点选择了robotico主题,并请求了一个login页面,下面的皮肤被调用了(不是完整的列表):

Robotico Page Skin 位于:/Themes/Robotico/Skins/PageSkins/Default.ascxLogin Page Content Skin 位于:/Themes/Robotico/Skins/ContentSkins/User_login.ascxSection Menu Control Skin 位于:/Themes/Robotico/Skins/ControlSkins/Sections_SectionMenu.ascx

余下的部分是怎样完全生成的呢?事实上,皮肤支持继承。如果一个皮肤不能在特定的主题中被调用的话,系统就自动从缺省主题中调用。这是非常重要的一点,它意味着当你建立一个新的主题时,不需要建立每一个皮肤和控制。你只需要覆盖你想修改遥皮肤即可。皮肤是由HTML代码以及asp.net控制(不是代码)组成的。例如,Login页面的皮肤User_login.ascx可能是如下的一些内容:

<%@ Control %><p>Login</p>Please enter your username and password below.<br>If you are a new user, click <a href="Users_Register.aspx">here</a> to register.

<asp:Panel id="pnlInvalidUsername" Runat="Server"> The username you entered is invalid!</asp:Panel>