展望DNN皮肤前景及其推荐一些皮肤资源

 
自从DNN发布以来,用户对DNN皮肤机制一直以来都是褒贬不一,我对此也曾写过一些文章分析其中道理,有兴趣者不妨看看我之前的文章,目前DNN即将升级到5.0版本(代号为 Cambrian),这将是一个具有里程碑意义的版本发布,时间大概是今年秋天,估计应该是在 DotNetNuke OpenForce '08 大会之前吧,让我们拭目以待吧. 关心DNN皮肤的朋友们, 现在让我们先来看看皮肤机制将发生哪些变化呢:
1)皮肤设计打包及其发布优化
  我想这是dnn新手的弱项吧,刚开始学习dnn,都觉得DNN的皮肤功能很眩,可是想制作一个比较理想的皮肤还是比较难,可又苦于没啥好的教程,我想下一个版本的DNN应该对此优化了,主要包括几个方面:
  <1>皮肤对象格式简单化,易于上手
  <2>可同时打包Skin和Containers在同一个zip包中直接上传,便于管理
  <3>引入版本控制,也就是类似于模块,将新增一个manifest文件定义皮肤的相关属性及其版本信息,便于升级.
  <4>可添加皮肤包的相关信息,比如产品协议条款(a license agreement),升级说明(release notes)等等
2)皮肤对象及其属性设置优化
往常我们定义皮肤属性时一般推荐新建一个对应的xml文件,然后在此定义属性,类似:
 
  1. <Object>  
  2.   <Token>[SEARCH]< SPAN>Token>  
  3.   <Settings>  
  4.     <Setting>  
  5.       <Name>showWeb< SPAN>Name>  
  6.       <Value>True< SPAN>Value>  
  7.     < SPAN>Setting>  
  8.     <Setting>  
  9.       <Name>ShowSite< SPAN>Name>  
  10.       <Value>True< SPAN>Value>  
  11.     < SPAN>Setting>  
  12.   < SPAN>Settings>  
  13. < SPAN>Object>  
 这种方式是有缺点的,比如对皮肤设计人员来说xml格式是不友好的(not designer-friendly format),而且比较累赘,不清晰简洁.故此下一个版本将对此进行优化,全部转化为html格式,比如上边可转化为:
 
  1. <object id="SEARCH">  
  2.   <param name="ShowWeb" value="True" />  
  3.   <param name="ShowSite" value="True" />  
  4. < SPAN>object>  
如此一来,你的设计工作会比较简单化了,而且也优化了皮肤解析引擎.最终的效果如下:
 
  1. <dnn:SEARCH runat="server" id="dnnSEARCH" showWeb="True" showSite="True" />  
3)[TEXT]皮肤对象(新)及皮肤对象的本地化支持
如果你看过我前边的文章,你会比较熟悉这个皮肤控件,这也就是下一代DNN皮肤即将引进的一个新宠儿,功能及其强大,它将基本实现DNN皮肤级别的本地化支持,其中还将包括DNN Token机制. 实现原理类似我开发的WindyText皮肤控件(请参看文章" 你需要么,dnn多语言解决方案?"),但要比它强大的多,比如你可以利用DNN核心Token机制实现皮肤级别的Page Title,Module Title的本地化支持,还有你可以添加第三方服务脚本在你的皮肤里边,例如Google广告或必须的脚本等等.
4)页面解析优化
  如果你熟悉皮肤设计,也许你会碰到这样的问题,就是你可能想在皮肤里边添加同一个皮肤控件的好几个实例,比如Containers下的ActionButton,你必须如此声明:
Your Container Skin
@ Register TagPrefix="dnn" TagName="ACTIONBUTTON1" Src="~/Admin/Containers/ActionButton.ascx" %>
@ Register TagPrefix="dnn" TagName="ACTIONBUTTON2" Src="~/Admin/Containers/ActionButton.ascx" %>
< dnn : ACTIONBUTTON1 runat="server" id="dnnACTIONBUTTON1" CommandName="AddContent.Action" DisplayIcon="True" DisplayLink="True" />
< dnn : ACTIONBUTTON2 runat="server" id="dnnACTIONBUTTON2" CommandName="SyndicateModule.Action" DisplayIcon="True" DisplayLink="True" />
  可是在DNN 5下的皮肤将对此优化,你只要注册一个声明即可,带来的是简洁和性能提升:
Your Container Skin
@ Register TagPrefix="dnn" TagName="ACTIONBUTTON" Src="~/Admin/Containers/ActionButton.ascx" %>
< dnn : ACTIONBUTTON runat="server" id="dnnACTIONBUTTON1" CommandName="AddContent.Action" DisplayIcon="True" DisplayLink="True" />
< dnn : ACTIONBUTTON runat="server" id="dnnACTIONBUTTON2" CommandName="SyndicateModule.Action" DisplayIcon="True" DisplayLink="True" />

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15040802/viewspace-422960/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15040802/viewspace-422960/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值