Разработка шаблонов оформления (skins) для DNN
Публикация шаблона оформления
Для того чтобы шаблон оформления можно было просмотреть в Галерее шаблонов оформления (Skin Gallery), необходимо создать его высококачественную экранную копию, которая должна храниться в формате JPEG с расширением .jpg и иметь то же имя файла, что и шаблон оформления (например, если шаблон оформления называется skin.htm, то экранная копия должна называться skin.jpg ).
Упаковка шаблона оформления
Все файлы, относящиеся к шаблону оформления, упаковываются в ZIP -архив skin.zip, а файлы контейнера - в архив container.zip. Далее оба архива упаковываются в общий архив с требуемым названием. Это позволит установить шаблон оформления и соответствующие ему контейнеры при помощи единственного файла, используя инструмент Skin Uploader.
Создание контейнеров
Контейнеры являются определениями шаблонов оформления, которые применяются к модулям. Контейнер создается точно так же, как и шаблон оформления, за исключением используемого набора токенов. Единственным ограничением является то, что в контейнере должен содержаться элемент управления Actions. Этот элемент управления необходим для реализации функциональности модуля. Общие функции этого элемента заключаются в возможности редактировать настройки модуля и управления размещением модуля на панелях контента. Могут также реализовываться пользовательские функции, относящиеся например, к редактированию контента модуля. В DNN включен набор элементов управления типа Actions. Элемент управления по умолчанию - SolPartActions отвечает за всплывающее меню, которое появляется при наведении мыши на иконку в левом верхнем углу модуля. Этот элемент управления предназначен для современных браузеров. Для устаревших браузеров используется элемент управления DropDownActions, реализованный в виде раскрывающегося списка.
Несмотря на то, что шаблоны оформления и контейнеры создаются, упаковываются и распространяются независимо, дизайнер обычно создает их комбинацию, которая предназначена для совместной работы. Это реализовывается путем совместной закачки шаблона оформления и контейнера на сайт и применения их к пользовательскому интерфейсу. Чтобы упростить эту операцию и обеспечить высокий уровень модульности, используется концепция применения шаблонов оформления на уровне панелей контента. Использование шаблонов оформления для панелей может быть сконфигурировано только на этапе дизайна, при создании шаблона. Реализуется это путем использования пользовательских атрибутов, которые могут быть включены в разметку панели. Используются атрибуты ContainerType, ContainerName и ContainerSrc для идентификации контейнера, который будет использоваться для всех модулей, добавляемых на панель. В том случае, если указанный контейнер отсутствует, используется контейнер по умолчанию.
Пример определения контейнера для панели:
<Objects> <Object> <Token>[CONTENTPANE:1]</Token> <Settings> <Setting> <Name>ID</Name> <Value>LeftPane</Value> </Setting> <Setting> <Name>ContainerType</Name> <Value>G</Value> </Setting> <Setting> <Name>ContainerName</Name> <Value>DNN</Value> </Setting> <Setting> <Name>ContainerSrc</Name> <Value>standard.ascx</Value> </Setting> </Settings> </Object> </Objects>
Загрузка шаблонов оформления
Поскольку шаблоны оформления основываются на ASCX-файлах, которые, будучи добавленными на ASPX-страницу, становятся исполняемыми, существует определенный риск, связанный с возможностью включения в них вредоносного кода. По этой причине существует возможность настройки права загрузки шаблонов оформления. Это право может быть предоставлено администраторам порталов, или же зарезервировано только за пользователем host.
Объекты шаблонов оформления
Объекты шаблонов оформления приведены в табл. 14.1.
Атрибуты шаблонов оформления
Атрибуты шаблонов оформления, которые могут использоваться в файле skin.xml, приведены в табл.7.2