Register  |   Login
关于本人
Baldwin's Status
Ramblings of a developer for dnn solution...
 Contact Me
随笔档案
Blog搜索
相册库
更多照片请查看相册库
最新评论
Rss Feed
feedsky
抓虾
pageflakes
newsgator
哪吒
我们的服务
  • DotNetNuke 咨询
  • Web设计及其模块开发
  • 免费建站
  • 电子商务
  • 开拓市场
我们致力于开发定制的web 2.0 ,所服务的客户主要包括小中型企业,社区俱乐部及其非盈利机构组织。我们将利用开源的DNN作为我们核心的系统机制,更多相关信息...

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

Posted in [DNN使用及思考], [DNN最新资讯], [DNN皮肤设计], [优化DNN] By baldwin

自从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]Token>  
  3.   <Settings>  
  4.     <Setting>  
  5.       <Name>showWebName>  
  6.       <Value>TrueValue>  
  7.     Setting>  
  8.     <Setting>  
  9.       <Name>ShowSiteName>  
  10.       <Value>TrueValue>  
  11.     Setting>  
  12.   Settings>  
  13. Object>  
 这种方式是有缺点的,比如对皮肤设计人员来说xml格式是不友好的(not designer-friendly format),而且比较累赘,不清晰简洁.故此下一个版本将对此进行优化,全部转化为html格式,比如上边可转化为:
 
  1. <object id="SEARCH">  
  2.   <param name="ShowWeb" value="True" />  
  3.   <param name="ShowSite" value="True" />  
  4. 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" />
接下来我再分享一些皮肤资源:
1) Skinergy
 这是可以实现自由应用样式的皮肤对象控件,类似DNN官方网站右上角的控件,归属于Speerio网站所有,了解更多信息不妨访问:http://www.speerio.net
2) EngageCssSelector
类似于Skinergy,但似乎是作为模块开发出来,不妨试试,使用方法请查看http://www.engagesoftware.com/Blog/EntryID/145.aspx,
demo请查看:http://demo.engagemodules.com/, 在此我不提供下载,因为归属版权属于Engage,有兴趣者不妨去Engage站点下载(免费的).
3) Magic Toolbox
这是一家德国专门开发DNN的公司发布的免费皮肤控件,在此感谢小狼壮壮网友的共享,有兴趣请访问:http://www.portalfabrik.net/
4) 这里还有一个很好的视频讲解关于下一代版本的皮肤优化特性, 现场详细讲解本文上述提到的一些新概念:
DNN 5 "Cambrian" - Skinning Enhancements
This posting is provided "AS IS" with no warranties, and confers no rights.

Comments

Was it good for you, too?Join the discussion » ,but you need to login first before you make comments.