跟大家一起学习,一起进步 2005 坚强 努力 整洁

导航

DNN中皮肤,容器,皮肤对象简介

在DNN中,站点的外观、总局全靠皮肤,容器,皮肤对象来改变。而制作皮肤,容器,皮肤对象非常的容易,本文就简单介绍一下这三者的有关知识。
皮肤
皮肤是整个站点的外观布局,它的文件夹位于Portals/_default/skin(这是主机皮肤)中或Portals/0/skin(这是站点皮肤,0为站点标识,如果有多个站点,就会出现1,2...)中,主机皮肤在各个站点中共享,而站点皮肤只能在指定的站点中使用。
皮肤文件夹中包含的内容有图片、式样表及.aspx文件,在一个皮肤文件夹中可以包含多个.aspx文件,每个.aspx都会在站点设置/主机设置中的站点皮肤/主机皮肤中显示为一个皮肤。只要选择这个皮肤,点更新,就会应用这个皮肤。
在DNN中皮肤的安装是自动的,在文件管理中点添加新文件,选择皮肤包,点浏览,选择本机上的一个皮肤zip包,点添加,点上传文件就会自动安装皮肤包(可参考模块的安装)。在自动安装中,它主要执行如下工作:

  • 在相应的位置新建一文件夹。站点管理(Admin)中的文件管理会在站点皮肤文件夹中新建一文件夹,主机管理(host)中的文件管理会在主机皮肤文件夹中新建一文件夹。文件夹的名字等同于该压缩包的文件名
  • 把压缩包的文件解压至该文件夹中。
  • 查找皮肤文件夹中是否在.html文件,如果有就把它转换为.ascx文件。
  • 替换.ascx中的图片和式样表的链接地址。
  • 处理皮肤对象标记
  • 在.ascx中查找是否有名为(id=)leftpane,contentpane,rightpane的命名容器(NamingContainer)。
  • 在.ascx头中添加<%@ Control language="vb" CodeBehind="~/admin/Skins/skin.vb" AutoEventWireup="false" Explicit="True" Inherits="DotNetNuke.Skin" %>语句

    安装完皮肤之后,在站点皮肤/主机皮肤中就会显示"(文件夹名)-(.ascx文件名)"的皮肤。


    皮肤对象
    皮肤对象是可以在皮肤和容器中使用的控件,比如菜单、用户、登录等都是皮肤对象,你在站点中可以使用的皮肤对象可以在模块定义中的皮肤对象下查看。
    只要你要在皮肤包中使用上个皮肤对象,只要在html文件的某个位置使用[皮肤对象名称]格式的标记,在皮肤与容器安装中,应用程序会自动替换这些标记。
    皮肤对象的安装同模块的安装。在安装中它自动执行了如下工作:
  • 在DesktopModules中新建一个等同于皮肤对象压缩文件名的文件夹。
  • 解压皮肤对象压缩包。
  • 读取.dnn文件,将.dnn中指定的文件复制到相应的文件夹中。(将.dll文件复制到bin文件夹中,其余指定的文件复制到该皮肤对象文件夹中,忽略没有指定的文件)
  • 执行数据库脚本的安装,将.sqldataprovider文件在SQL中执行以安装SQL数据库,将.accessdataprovider文件在access中执行以安装access数据库。

    容器
    容器即模块显示的式样。你可以在一个站点中只使用一个容器,也可以为每个模块指定不同的容器。
    容器的安装参考以上,只要在文件上传中选中容器,其余的相同。它在安装过程中自动执行如下工作:
  • 在相应的位置新建一文件夹。站点管理(Admin)中的文件管理会在站点容器文件夹(如Portals/0/Containers)中新建一文件夹,主机管理(host)中的文件管理会在主机容器文件夹(Portals/_default/Containers)中新建一文件夹。文件夹的名字等同于该压缩包的文件名
  • 把压缩包的文件解压至该文件夹中。
  • 查找容器文件夹中是否在.html文件,如果有就把它转换为.ascx文件。
  • 替换.ascx中的图片和式样表的链接地址。
  • 处理皮肤对象标记
  • 在.ascx文件头中添加如下语句:<%@ Control language="vb" CodeBehind="~/admin/Containers/container.vb" AutoEventWireup="false" Explicit="True" Inherits="DotNetNuke.Container" %>
    在.ascx中至少应包含一个名为contentpane的命名容器
    安装完容器之后,在站点容器/主机容器中就会显示"(文件夹名)-(.ascx文件名)"的容器。


    由此可见,正是基于这样的设计,要想制作一个皮肤、容器是非常容易的,只要你稍有网页设计技术就可以,制作皮肤对象有如此多的示例作参考,只要你有.net编程技术,也不是太难。如果你理解了以上内容,你就可以制作出千变万化的网站来,这也正是DotNetNuke如此受欢迎的原因。


  • posted on 2005-01-11 23:44  icfarmer  阅读(767)  评论(0)    收藏  举报