DNN 皮肤 模块 开发流程及步骤

一、以下记录了开发DNN皮肤的实践:

1. 在路径Portals\_default\Skins下创建新文件夹,以皮肤名命名。 例如:TWSkin.

2. 在此文件夹中必须创建一个名为skin.css的文件。此文件主要用于写skin的样式表,此文件会被自动加载到DNN的皮肤中。

3. 创建皮肤文件, 例如: bootstrap.ascx , 这个文件是一个用户控件,必须以.ascx结尾(名字可以根据实际情况取)。

4. 打开DNN的默认皮肤文件,同样在路径Portals\_default\Skins下。可以根据如下界面来查看。

5523074

5. 拷贝默认皮肤的内容:大概如下:

<%@ Control Language="C#" AutoEventWireup="false" Inherits="DotNetNuke.UI.Skins.Skin" %>

<%@ Import Namespace="DotNetNuke.Application" %>

<%@ Register TagPrefix="dnn" TagName="LOGO" Src="~/Admin/Skins/logo.ascx" %>

<%@ Register TagPrefix="dnn" TagName="LOGIN" Src="~/Admin/Skins/login.ascx" %>

<%@ Register TagPrefix="dnn" TagName="USER" Src="SkinObject/CustomUser.ascx" %>

<%@ Register TagPrefix="dnn" TagName="BREADCRUMB" Src="~/Admin/Skins/breadcrumb.ascx" %>

<%@ Register TagPrefix="dnn" TagName="STYLES" Src="~/Admin/Skins/Styles.ascx" %>

<%@ Register TagPrefix="dnn" TagName="COPYRIGHT" Src="~/admin/Skins/copyright.ascx" %>

<%@ Register TagPrefix="dnn" TagName="TERMS" Src="~/admin/Skins/terms.ascx" %>

<%@ Register TagPrefix="dnn" TagName="PRIVACY" Src="~/admin/Skins/privacy.ascx" %>

<%@ Register TagPrefix="dnn" TagName="TEXT" Src="~/admin/Skins/Text.ascx" %>

<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.Web.DDRMenu.TemplateEngine" Assembly="DotNetNuke.Web.DDRMenu" %>

<%@ Register TagPrefix="dnn" TagName="MENU" Src="~/DesktopModules/DDRMenu/Menu.ascx" %>

<%@ Register TagPrefix="dnn" TagName="SEARCH" Src="~/Admin/Skins/search.ascx" %>

<%@ Register TagPrefix="dnn" TagName="language" Src="~/Admin/Skins/Language.ascx" %>

<%@ Register TagPrefix="dnn" Namespace="DotNetNuke.Web.Client.ClientResourceManagement" Assembly="DotNetNuke.Web.Client" %>

<%@ Register TagPrefix="dnn" TagName="CONTROLPANEL" Src="~/Admin/Skins/controlpanel.ascx" %>

<dnn:CONTROLPANEL runat="server" ID="cp" />

注意事项:

1. 皮肤中必须包括名为: ContentPane的区域,一般是一个div.

6.Menu的实现:如果DNN中默认没有DRRMenu,需要手动安装此组件。

1)需要在皮肤要目录下创建文件夹:Menu

2) 在此文件夹下创建一个Xml文件,命名为:Menu-menudef.xml 其内容如下所示

<?xml version="1.0" encoding="utf-8" ?>

<manifest>

<template>ULTokens.xslt</template>

</manifest>

3) 然后在此文件夹下创建文件:ULTokens.xslt。具体用法参考

http://www.dotnetnuke.com/Resources/Wiki/Page/DDRMenu-templates.aspx

http://www.w3school.com.cn/xsl/index.asp

7. 没有合适的SkinObject时,可调用API直接输出数据。

<%@ Import Namespace="DotNetNuke.Application" %>

然后用调用API,如下例所示:

<%= TabController.CurrentPage.Description%>

<%= String.IsNullOrEmpty(TabController.CurrentPage.Title)? TabController.CurrentPage.TabName: TabController.CurrentPage.Title%>

常用的变量有:

<%=SkinPath %>

8. 放置container区域的布局问题:

可对照默认皮肤的布局来处理, 也可以按照960Grid的布局格式来布局。

如果页面的布局不正规,则根据设计来布局。

二、Container的实现:

Container的实现比较简单,需要拷贝以下内容到新的Container中

<%@ Control Language="vb" AutoEventWireup="false" Explicit="True" Inherits="DotNetNuke.UI.Containers.Container" %>

<%@ Register TagPrefix="dnn" TagName="TITLE" Src="~/Admin/Containers/Title.ascx" %>

然后根据具体Container的要求来实现样式即可。

注: 必须要有一个id为ContentPane并且Runnet="server"的区域。

三、模块的实现:

http://dnntemplate.codeplex.com/releases/view/52147

从上面的链接中下载DNN CodeSmith Module template中下载模板,然后自动生成工程文件。在生成的时候要注意数据库前缀及模块前缀。

然后打开工程,删除不需要的文件。编译成功。

在DNN站点中配置此模块,然后在一个页面中添加此模块。

实现相应逻辑并调试成功。

在DNN站点中打包此模块。

可参考此文章:http://blog.csdn.net/ouyp0627/article/details/1656760

 

注:欢迎评论…

转载于:https://www.cnblogs.com/cxp9876/archive/2013/01/15/2860887.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值