我正在寻找一个关于为 DotNetNuke 7 创建皮肤的不错的教程。我找不到任何最新版本的 dnn 并且虽然我在修改现有皮肤方面取得了一些成功,但它会很多更容易从头开始构建它们。
有什么建议么?
我正在寻找一个关于为 DotNetNuke 7 创建皮肤的不错的教程。我找不到任何最新版本的 dnn 并且虽然我在修改现有皮肤方面取得了一些成功,但它会很多更容易从头开始构建它们。
有什么建议么?
我不会详细介绍,但我将定义一些关键要素DotNetNuke Skinning
以及您可能遇到的一些潜在问题。
皮肤可以用两种方式中的一种来编写,html
或者ascx
. 最常见的方式是通过ascx
.
html
:当您使用此方法时,您在皮肤内所做的任何更改都不会应用,直到DotNetNuke
解析皮肤。何时DotNetNuke
解析,它将引用您的清单以正确解析所有值,以便显示。
ascx
:这种方式不需要解析,你所做的更改会立即生效。这使得操作更容易。但是,这仍将包含一个清单来定义您的内容。
现在,想象DotNetNuke
结构的最简单方法是通过Panes
和Containers
。本质上 aPane
将始终包裹在 aContainer
中。
但是我该如何设计皮肤呢?
需要注意的几件事,DotNetNuke
您往往不会为该页面设计一个站点 - 您创建可以在更一般意义上使用的更精细的结构。例如:
因此,通过上图,您可以看到一些关键元素,例如:
所以本质上我们有一个相当简单的数据结构。这通常包括一些相当基本的组织。但我的问题是,您如何记帐或移动设备或不同的页面布局,例如:
现在你有一个稍微复杂的问题。好吧,DotNetNuke
确实保留了一些注意事项-让开发人员作为开发人员,将设计师作为设计师。这允许大型团队在不破坏另一项工作的情况下与站点合作。
在每种DotNetNuke
皮肤中,您都会看到这些:
<%@ Control language="C#" AutoEventWireup="false" Explicit="True" Inherits="DotNetNuke.UI.Skins.Skin" %>
<%@ Register TagPrefix="dnn" TagName="LOGO" Src="~/Admin/Skins/Logo.ascx" %>
那些是什么?嗯,首先是定义我们的ascx
. 重要的是第二个。基本上DotNetNuke
有可用的标记,这些标记将允许皮肤反映DotNetNuke
在其界面中所做的更改。
因此,当我们引用核心位置时,而不是静态对象。这允许DotNetNuke
界面自动在该位置输入徽标。
哇,你把我弄丢了——如果这只是一个参考,我们如何指定位置?
<%@ Register TagPrefix="dnn" TagName="LOGO" Src="~/Admin/Skins/Logo.ascx" %>
将引用我们的对象。要指定我们网站内的位置,您可以这样做:
<div class = "example_logo">
<dnn:LOGO runat="server" id="dnnLOGO" BorderWidth="0" />
</div>
所以我们本质上是将我们的令牌对象包装在一个div
元素中。然后我们实际上是在调用我们的令牌。现在,这会将徽标从DotNetNuke
界面物理放置到您的站点中。
这基本上消除了静态方法,并使其变为动态方法。
所以这些很重要,但我该如何创建结构呢?
<div id="Origin">
<div class="Wrapper">
<div id="Origin-Header">
<div class="origin-header clearfix">
<!-- Header Elements -->
<div class=origin-logo>
<dnn:LOGO runat=server" id="dnnLOGO" BorderWidth="0" />
</div>
<div class="origin-login">
<dnn:LANGUAGE runat="server" id="dnnLANGUAGE" showMenu="false" showLinks="true" />
<dnn:LOGIN runat="server" id="dnnLOGIN" CssClass="login" /> | <dnn:USER runat="server" id="dnnUSER" CssClass="user" />
<dnn:SEARCH runat="server" id="dnnSEARCH" UseDropDownList="true" ShowSite="false" ShowWeb="false" />
</div>
</div>
</div>
!-- Banner -->
<div id = "Origin-Banner">
<div class = "origin-banner-pane" id="origin-banner-pane" runat="server" />
</div>
所以上面是一个让你开始的例子。正如您所看到的,您使用自己的基本知识来构建站点结构。你只是在DotNetNuke Tokens
你的设计中填写。然后,您希望DotNetNuke
模块从DotNetNuke
界面填充您的站点数据的位置在那些Panes
.
现在下一个重要方面将是您皮肤的基本包装。这实际上将确保它在安装后正常工作。
您可以从http://www.dotnetnuclear.com和http://www.dnnchat.com获得更多信息
希望这为您提供了入门的基础知识。这留下了包装和清单。
希望这会为您指明正确的方向并有所帮助。
随时提出问题或关注这些网站以尝试获取有关该主题的更多信息。
您最好的选择可能是先查看随 DotNetNuke 提供的现有皮肤。要创建新皮肤,只需转到 /Portals/_default/skins 区域并复制其中一个目录粘贴并将其重命名为独特的名称。这现在应该显示在您的皮肤选择器中。90% 的 .ascx 皮肤文件只是 HTML/CSS。然后,您可以根据需要修改 skin.css 文件和 ASCX 文件以获得所需的外观。要制作新的皮肤选项,只需创建一个新的 .ascx 文件。
您还可以购买一两个皮肤,看看它们是如何开发的。
正如 Chris Hammond 在第一条评论中指出的那样,这些教程很难获得。@Chris - 感谢您编写模块模板。社区和我对此表示赞赏。
我一直在尝试自己学习 DNN 皮肤,并且偶然发现了 DNN Hero 网站,该网站有一个很好的基本视频教程,介绍了如何为网站创建皮肤。
我不认为这个系列在免费的视频集中,所以你可能需要订阅才能得到它。我是订户,并没有失望。如果您需要介绍皮肤或其他任何 DNN,该站点确实提供了丰富的信息。