Register  |   Login
相册库
更多照片请查看相册库
关于本人
Baldwin's Status
Ramblings of a developer for dnn solution...
 Contact Me
随笔档案
Blog搜索
最新评论
哦 有可能 当初这个版本貌似不是修改很大 难免有些出入 现在准备把最新版本更新一下再提供下载 希望大家给予更多的支持 :)...
--baldwin
Source 包打包有些问题,安装出错。看了一下,是因为ZIP文件里多了一层目录,还是做成一个可以直接安装的source包吧。...
--land
针对这一问题我特意写了一篇随笔,请参考"暴力"解决DNN无法登陆的问题(http://www.dnnsun.com/Community/BaldwinsBlog/tabid/67/EntryID/59...
--baldwin
这样你只能去数据库里修改了,应该在Portals表里有一个字段LoginTabID,将其修改为空(Null),不过我觉得登录页面设置错误,也不至于打不开网站啊,也许是其他问题,你在仔细看看... 如果...
--baldwin
登录页面设置错误,现在打不开网站了...
--kelan
呵呵,不错,在考虑中,不过这需要本站点Blog模块支持这一功能,目前这一功能在实现中... :)...
--baldwin
不错,建议长期顶置!...
--land
Baldwin - is there an English version of this post?...
--Tom Kraak
Rss Feed
feedsky
抓虾
pageflakes
newsgator
哪吒
我们的服务
  • DotNetNuke 咨询
  • Web设计及其模块开发
  • 免费建站
  • 电子商务
  • 开拓市场
我们致力于开发定制的web 2.0 ,所服务的客户主要包括小中型企业,社区俱乐部及其非盈利机构组织。我们将利用开源的DNN作为我们核心的系统机制,更多相关信息...

DNN Skin旅程之琐碎杂想

Posted in [DNN使用及思考], [DNN核心代码], [优化DNN], [文章推荐]  By baldwin  

一直有人跟我提为何不做一些DNN皮肤教程什么的,本人甚为惭愧,当初曾夸下海口说没问题,可一拖再拖,倒不是自己没有时间,只是姑且不论自己设计能力的肤浅,光是那一系列教程制作就得花费不少心思,至少得简单易懂吧?至少得图文并茂吧?至少得符合CSS,W3C吧?我可不想随便拿出一样拷贝别人的皮肤来炫耀自己的水平。故折中的做法只能随时分享自己设计开发皮肤的一些经验或想法,希望能满足部分读者的口味。
正文:
其实在国内制作DNN皮肤(其中包括公司或个人)不在少数,业务范围也各不一样,其中主要有几类:
1)现有非DNN网站转化为DNN网站,也就是说已有固定的版式和布局,只需要转化成ascx皮肤。
2)已有design的psd,需要转化为ascx皮肤。
3)重新设计。
那专业的DNN皮肤设计到底需要哪些东西呢,本人可能不是专业的设计人员,列不出什么名名堂堂的东西,不过倒是看过一些观点,颇为赞同,故在此一起分享:

A MustHave List

借鉴一下本人的经验,如果你是DNN皮肤设计初学者,不妨尝试如下建议(仅供参考):
1) 不要一上来就想着从头自己设计html或ascx,尽量利用已有的皮肤(DNN默认的皮肤,比如DNN-Blue或DNN-Gray,你在站点根目录往下\Portals\_default\Skins可看到这两个皮肤文件夹)进行修改。比如你可以直接新建一个文件夹SimpleSkin在目录yourweb/Portals/_default/Skins,然后直接拷贝默认的DNN皮肤到该文件夹里,这样你的DNN站点就会自动添加一个皮肤主题SimpleSkin,接下来你应用该皮肤   即可。如此这般速度比较快,而且已有的皮肤在设计代码细节方面已经跟随DNN的升级而有所调整,浏览器兼容性很好,控制也比较好,这算是DNN核心提供的比较完整的皮肤范例。
2)步步修改策略,不妨一步步的修改,也就是说修改的时候大体的框架先不要动,先自己手动的修改一些样式或布局,刷新页面看看效果,如此反复可窥知皮肤设计之精髓。
3)尽管存在所见即所得的编辑器制作皮肤,但在细节方面仍然不太好控制,推荐做法仍为手工写代码,如此印象比较深刻,能力提升也极为显著。
一些在DNN皮肤设计过程中需要注意的地方:
1)  html tags一定要well formed,注意关闭tag,如
2)  合理利用SkinPath这一属性,增加灵活性,可扩展性,可移植性。由于所有皮肤控件都是继承于基类Skin,该基类存在属性SkinPath,其值也就是本皮肤包的根目录,故比如你如果需要添加某图象showMe.jpg(存在相对皮肤包的根目录下的images文件夹),则代码可类似如下:
 
  1. <img src="<%# SkinPath %>images/showMe.jpg" alt="Show" />  
3)  每一皮肤必须包含至少一个ContentPane,这是DNN默认的模块容器占位符。
4)  DNN CSS继承关系,也就是所谓的"层次优先关系",Modules css > Default.css > Skin css >Container css > Portal.css, 更多相关信息可参看我之前的文章:
进阶应用,这里再列举一些在DNN皮肤设计过程中的技巧,推荐比较熟悉DNN皮肤设计者可以尝试:
1) 可以直接使用默认的样式定义文件 skin.css,但还有一种替代的方式,那就是定义为 skinname.css,skinname对应你的需要关联的皮肤控件名称。如此的好处是你可以共享一些基本的样式在skin.css,而一些不一致的样式可定义在skinname.css,从而达到分离耦合的效果。在"加速DNN的新举措"你可参看到详细的分析。
2) 考虑到上述提到的DNN CSS继承关系,其中Default.css主要汇集一些基本的,全站式的样式定义,比如SkinObject等等,但是唯一的副作用是文件比较大(将近18K),而其实大部分样式在皮肤设计中都会被重写或覆盖,故Default.css对想重新设计的皮肤意义不是很大(它原本的意义无非就是防止某一样式在skin.css没有被重写而导致的界面一塌糊涂)。总之,如果你很有把握,不妨把Default.css置空(删除该文件的样式定义,只留空白,建议不要直接删除该文件,以后也许还需要),当然一些没有被重新活覆盖的样式需要拷贝到skin.css。参考文章:The Demise of the Default.css
3)重置皮肤,有时难免出现错误,可能导致站点无法运行,这时就需要重置皮肤这一技巧,不妨看看这一篇文章:
推荐系列:Scheduler,Reset skin等(2008年第2期)
4)如果有你能力,你可以扩展或开发符合自己需求的皮肤控件,其参考例子如:
你需要么,dnn多语言解决方案? (WindyText皮肤控件)
DNN登陆注册链接小变身(Skin Object定制开发)
This posting is provided "AS IS" with no warranties, and confers no rights.

Comments

Was it good for you, too? Join the discussion »
# 1
Posted @ 2008/7/14 8:42 By Kang
我在公司做了很多DNN的SKIN, 还有module的开发, 一般我做skin和container时都是像您说的一样, 拿DNN-blue里的复制出来要用的直接改ascx,先把DNN默认的表格布局改成div布局, 然后再开始改css.比较麻烦点儿的就是不同浏览器的兼容, 一般客户都要求兼容ie6/7, ff2/3 还有safari, ff2/3 和safari很好办, 他们解析css都很标准, 就是ie6/7比较烦, 微软自己有一套微软标准, 在其它浏览里正常的网站经常到ie6/7就不对了, 尤其ie 6, 最无敌, 总写hack写得我都头大了...
# 2 [Author]
Posted @ 2008/7/14 8:47 By baldwin
没错,IE的确让web design极为难受,你必须为此设计不同hack or tricks,可那也不是你愿意去做,也不好调整,CSS兼容性也许永远是一个头疼的事,我已访问你的站点,其中提到的Multiple IE - 使多版本IE共存也就是我经常使用的工具,希望我们可以多交流交流....
Leave your Comment!
Your NickName(required)
Email(required)
Website(Blog)
Comment: