zoukankan      html  css  js  c++  java
  • DNN Skin文档

          Skins 可以应用到hostportaltab级,也可以用到模块级,这是我们称它为containers。所有皮肤文件被组织在Portals文件夹,特殊的_default目录被使用来设计host的目录树。每个portal有自己的目录树,根据他们在数据库中的portalID命名。所有关系根据文档结构来判断,所以在数据库中不存在表明portalskin关系的数据。

    一个皮肤包,包括以下文件类型:

    1、 htmhtml,抽象皮肤的定义文件,将被皮肤上传组件处理来创建一个ascx文件

    2、 ascx,预先编译好的符合皮肤引擎要求得用户控件

    3、 css文件

    4、 图片文件

    5、 其他一些资源文件,可以是任意后缀(注意设置主机允许的上传文件类型)

        皮肤定义有两种不同的模式,HTML或者ASCX,两种方式的不同是文件扩展名以及实际的用户控制标签组(见表A)。最好是HTML定义公共portalASCX定义管理区域。

          DNN图片引擎有两种方式导入图片,一种是门户模式,一种是本地模式,选择门户模式,皮肤上传程序将为每个资源前加上<%=skinpath%>标签,这样会消耗一部分资源,但是集成度更高,以致性更方便。本地模式下,上传程序会在相关资源上插入详细的路径,上传程序会管理这些路径。

          Content panes是内容模版的容器。它是定义了一些属性的HTML标签,包括<td><div><span><p>。一个皮肤对象至少需要一个content pane并且命名为“ContentPane”,也可以使用多个content pane。皮肤对象支持同一名称的多个实例,比如:[contentpane:1], [contentpane:2]

    皮肤对象包含一个特性,属性。属性允许自定义皮肤对象在你的皮肤上的表现形式。每一个皮肤对杨有它自己支持的对象在表B中。如果你创建ASCX皮肤,你需要在你的皮肤文件中直接描述特别的属性,比如<dnn:Login runat=”server” id=”dnnLogin” Text=”Signin” />。如果你创建HTML皮肤你必须在一个特殊文件中包含你的属性的定义,如果你不定义那就使用系统默认的值。在一个皮肤包中全局的定义放在“skin.xml”,对所有皮肤文件生效。你也可以覆盖全局定义,通过在“skinfilename.xml”文件中重新定义。这是举例代码:

    <Objects>

    <Object>

    <Token>[LOGIN]</Token>

    <Settings>

    <Setting>

    <Name>Text</Name>

    <Value>Signin</Value>

    </Setting>

    </Settings>

    </Object>

    </Objects>

    注意:皮肤文件中皮肤对象的宣告与XML文件中的属性定义是一一对应的关系,即如果在皮肤文件中存在[MENU:1] [MENU:2],那么你需要在XML文件中为每个定义属性。

        在创建HTML皮肤和定义多个Content Panes中,你将需要定义“ID”属性。

    样式表(style sheets

        在DNN中存在多种样式表,有CSS,也有自定义的样式表,优先级如下(越往下越优先):

         o Modules – 用户模块样式定义在PortalModuleControl.StyleSheet

         o Default –默认主机样式表– default.css

         o Skin – 皮肤样式 – skin.css or skinfilename.css

         o Container – 容器样式– container.css or containerfilename.css

         o Portal – 门户管理员自定义样式表– portal.css

        皮肤包可以包含一个全局的“skin.css”(对容器来说是“container.css”)可以对包所有皮肤文件有效。另外你也能用“skinfilename.css”为单个皮肤文件定义层叠样式表。默认的DNN层叠样式表(/Portals/_default/default.css)包含许多默认的样式类,portal依靠他们来维持用户体验。你可以自由定义你的格式,但你可能需要最小限度的修改默认的样式来适应你的设计。

        皮肤的缩略图使用jpg作为后缀,名字与皮肤名相同。所有皮肤文件要被压缩成一个zip压缩包,如果想生成互补的皮肤包和容器包,你可以把容器文件压缩并命名为“containers.zip”,把皮肤文件压缩并命名为“skins.zip”,然后将两个文件打包成一个单个的zip文件,以皮肤的名字命名。这将创建全的皮肤包(包括皮肤和容器),通过上传一个单个文件。你也可以在皮肤包(大的)中包含一个About.htm,在皮肤相册预览时这个页面的连接可见。

    创建容器皮肤

        容器皮肤和皮肤的唯一不同是需要在容器皮肤中包括动作控制。动作控制是DNN的新特性,作为内容模板功能和portal框架。动作控制是控制内容模板功能的必要的用户界面。默认的动作控制是SolPartActions control,就是你在默认容器皮肤的左上角的三角及弹出菜单。这个控件得到比较好的支持,另外DropDownActions control可用在低版本浏览器上。

    皮肤的部署

        可以通过web页面上传你的皮肤包,也可将皮肤包复制到DNN安装目录中的install/skin目录下,程序会自动识别并解压安装。

    皮肤的管理

        每个portal的管理员可以看到他们自己的皮肤包和主机上传的的皮肤包。五种水平的皮肤:

    Host level

    Portal level

    Tab level    现在没找到,在哪儿(页面级的,DNN把设计的页面叫Tab

    Pane level     在设计皮肤时定义,不能在用户界面下更改,怀疑只是一个概念

    Module level

    数据库中的Mapping表存储皮肤相关的数据。

  • 相关阅读:
    aodquery,clientdataset数据控件之间的速度区别
    centos防火墙相关
    centos安装jdk,精简
    delphi 操作excel复制区域功能呢
    centos安装redis,最靠谱的教程
    图像识别,借助百度云,上传图片实现逻辑
    LinkedHashmap和HashMap对比以及说明
    Windows环境下Zookeeper安装和使用
    你不知道的JavaScript--Item1 严格模式
    jQuery学习之旅 Item2 选择器【二】
  • 原文地址:https://www.cnblogs.com/outofthink/p/1274370.html
Copyright © 2011-2022 走看看