Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
6年前关闭。
Improve this question
我正在寻找有关为DotNetNuke 7创建皮肤的不错的教程。我无法找到最新版本的dnn的任何内容,尽管我在修改现有皮肤方面取得了一些成功,但这会很多更容易从头开始构建它们。
有什么建议?
现在,想象
但是如何设计皮肤?
需要注意的几件事是,使用
因此,在上面的图片中,您会看到一些关键元素,例如:
徽标 搜索 登录 菜单 横幅 将三个内容分组。 四个内容的分组。 另一个内容。 页脚也被四个分组。
因此,从本质上讲,我们有一个相当简单的数据结构。通常将包括一些相当基本的组织。但是我的问题是,您如何记帐或移动设备或不同的页面布局,例如:
现在您有一个稍微复杂的问题。好吧,
在每个
那些是什么?好吧,首先是定义我们的
因此,当我们引用核心位置而不是静态对象时。这允许
哇,您迷路了-如果这只是引用,我们如何指定位置?
将引用我们的对象。要指定我们站点内的位置,请执行以下操作:
因此,我们实质上是将 token 对象包装在
这从根本上消除了静态方法,并使其变为动态方法。
这些很重要,但是如何创建结构?
因此,以上是一个入门的示例。如您所见,您将使用您的基本知识来构建站点结构。您只需将
现在,下一个重要方面将是皮肤的基本包装。实际上,这将确保它在安装后即可正常工作。
您可以从http://www.dotnetnuclear.com和http://www.dnnchat.com获取更多信息
希望这提供了入门的基础。这样就离开了包装并留下 list 。
希望这会为您指明正确的方向并有所帮助。
随时提出问题或关注这些站点,以尝试获取有关该主题的更多信息。
想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。
6年前关闭。
Improve this question
我正在寻找有关为DotNetNuke 7创建皮肤的不错的教程。我无法找到最新版本的dnn的任何内容,尽管我在修改现有皮肤方面取得了一些成功,但这会很多更容易从头开始构建它们。
有什么建议?
最佳答案
我将不做过多介绍,但将定义有关DotNetNuke Skinning
的一些关键元素以及您可能会遇到的一些潜在问题。
可以用两种方式之一编写皮肤:html
或ascx
。最常见的方法是通过ascx
。
html
:当您使用此方法时,在DotNetNuke
解析皮肤之前,不会在皮肤上进行任何更改。 DotNetNuke
执行此解析时,它将引用您的 list 以正确解析所有值,以便显示。 ascx
:这种方式不需要解析,您所做的更改将立即生效。这使操作更加容易。但是,它仍将包含一个 list ,以定义您的内容。 现在,想象
DotNetNuke
结构的最简单方法是通过Panes
和Containers
。本质上,Pane
将始终包裹在Container
中。但是如何设计皮肤?
需要注意的几件事是,使用
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
具有可用的 token ,这些 token 将允许皮肤在其界面中反射(reflect)DotNetNuke
内所做的更改。因此,当我们引用核心位置而不是静态对象时。这允许
DotNetNuke
接口(interface)自动在该位置输入徽标。哇,您迷路了-如果这只是引用,我们如何指定位置?
<%@ Register TagPrefix="dnn" TagName="LOGO" Src="~/Admin/Skins/Logo.ascx" %>
将引用我们的对象。要指定我们站点内的位置,请执行以下操作:
<div class = "example_logo">
<dnn:LOGO runat="server" id="dnnLOGO" BorderWidth="0" />
</div>
因此,我们实质上是将 token 对象包装在
div
元素中。然后我们实际上在调用我们的 token 。这会将徽标从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
接口(interface)填充站点数据的位置在这些Panes
内。现在,下一个重要方面将是皮肤的基本包装。实际上,这将确保它在安装后即可正常工作。
您可以从http://www.dotnetnuclear.com和http://www.dnnchat.com获取更多信息
希望这提供了入门的基础。这样就离开了包装并留下 list 。
希望这会为您指明正确的方向并有所帮助。
随时提出问题或关注这些站点,以尝试获取有关该主题的更多信息。
关于c# - DotNetNuke 7换肤教程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16396350/
10-11 04:04