最近自从DNN5.0 正式版发布后接连接到客户的询问:怎样把DNN5 以下版本的skin 用到DNN5 中去?
我的解决方法如下:
DNN5中把skin当做了一个扩展(extension,可能有点参考joomla了)对待,和module 一样的对待,都有了数据库的数据记载。如果skin 就想使用而言,也是可以像以前那样把DNN解析后生成的文件夹及文件拷到某个portal文件夹的Skins/Containers文件夹下面(拷到_default文件夹的Skins/Containers文件夹下面),像以前DNN5以下版本一样。但没有数据记录。。
1.解压zip skin包文件(我的例子是NightClub-2.zip,如果只是单个的skins包或是containers 包就不用解压)到一个目录,一般标准的DNN skin包里面有两个小的zip包(一个是skins.zip ,一个是containers.zip),最好是把这两个子zip包的名字改一下,因为DNN 5中不允许同一个扩展类中有同名的数据库标识,DNN5中对这些DNN 5以下版本的skins包以zip包文件名为唯一数据库标识,这样做是为了方便你的skin有个明确的标识(我不改他们的名字)。
2. 用host 权限到登入站点,到Host菜单的Extensions 子页面中去,点页面最下面的 Install Extension Wizard 按钮。进入扩展安装向导页面。
3.选中我才解压出来的skins.zip 文件。 点Next 按钮。
不用担心红色的警告,DNN5对skin包有了像module包一样的要有个设置文件的要求,它是说你上传的包没有设置文件,老的skins和containers 都没有设置文件。如果你上传的是老的skins或containers 的话就要先选下面的选项再上传一次。
像我这样:
再点击Next就可以了 (一路Next下去就行)。同理上传containers.zip 也是一样的,在前一张图中选container就行。
下面顺便讲讲怎样把一个DNN5 以下版本的skins包变成一个标准的DNN5的可再上传的zip包。
1.到Host菜单的Extensions 子页面中去,找到我们才上传成功的skins包。
大家看到那个“skins” 就是才上传的DNN5 的skins,点它旁边的笔。
2.在接下来的页面中可以看到所有的关于这个skins包的信息,你可以填写版权,所有人,描述,邮箱等信息(最好不要改Skin Package Name ,它是要打包的skins文件夹目录,除非你知道要在后面打包的文件夹目录在那里)。点Create Package 按钮(建议先点Update Extension 保存)。页面太大不好截屏,我就不截了。
3.在接下来的页面中。保持和我下图一样的选项。
因为我们没有设置文件,要DNN5给我们生成一个出来。并且我们希望在打包前能检查一下将要生成设置文件的内容。继续点Next按钮。
4.在接下来的页面中我们可以查看一下是不是我们要的文件都在了。可以自己改它的内容的。
如果你在前面中改了Skin Package Name,这里你就要指定文件所在的文件夹,再点Refresh File List 按钮了。继续点Next按钮到Create Manifest 页面 .
5.你可以看看你的配置文件的内容对不对 ,也可以改的。继续点Next按钮.
6.最后一步,为这个DNN5的skins zip包和它里面的配置文件起个名字(skins zip包的名字要以.zip结尾,它里面的配置文件要以.dnn 结尾)
再点Next 按钮,DNN 5 就将在\Portals\_default 文件夹中生成一个标准的skins包出来(我的是teach-skins.zip)。
总结:以上的过程不仅适用于skin 还适用于DNN系统中其他扩展的打包(如模块和部分DNN核心组件)。