Ответ 1
Я не буду вдаваться в подробности, но я определю некоторые ключевые элементы DotNetNuke Skinning
и некоторые из потенциальных проблем, с которыми вы можете столкнуться.
Кожа может быть написана одним из двух способов: html
или ascx
. Наиболее распространенным способом является ascx
.
-
html
: когда вы используете этот метод, любые изменения, которые вы вносите в скин, не будут применяться до тех пор, покаDotNetNuke
не будет разбирать скин. КогдаDotNetNuke
выполняет этот синтаксический анализ, он будет ссылаться на ваш манифест, чтобы правильно разобрать все значения, чтобы он отображался. -
ascx
: этот способ не нуждается в анализе, изменения, которые вы сделаете, мгновенно перейдут вживую. Это облегчает манипуляции. Тем не менее, это все равно будет содержать манифест для определения вашего контента.
Теперь самый простой способ представить структуру 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
имеет доступные маркеры, эти жетоны позволят коже отражать изменения, сделанные внутри DotNetNuke
в нем.
Итак, когда мы ссылаемся на местоположение ядра, а не на статический объект. Это позволяет интерфейсу DotNetNuke
автоматически вводить логотип в местоположение.
Whoa, вы потеряли меня. Если это только ссылка, как мы укажем местоположение?
<%@ 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
Мы надеемся, что это поможет вам начать работу. Что оставляет упаковку и проявляется влево.
Надеюсь, это указывает на то, что вы в правильном направлении и помогаете.
Не стесняйтесь задавать вопросы или следовать этим сайтам, чтобы попытаться получить дополнительную информацию по этому вопросу.