Руководство по созданию сайта для системы управления сайтами Atilekt. Cms 0 Описание файловой структуры сайта

Вид материалаРуководство

Содержание


2. Процесс создания нового сайта
Шаг 1. Выбор или создание шаблонной сетки
Административная часть
Клиентская часть
Шаг 2. Создание дизайн-макета
Шаг 3. Создание шаблона страницы
Шаг 4. Создание новых модулей для системы управления.
Подобный материал:




Руководство по созданию сайта

для системы управления сайтами Atilekt.CMS 7.0

1. Описание файловой структуры сайта


Файловая структура сайта представлена в следующем виде:




Рис. 1


Ниже представлено описание директорий, которые используются при разработке:
  1. files – в этой директории содержатся все файлы (картинки, документы, видео) загруженные через веб-интерфейс системы управления, используя текстовый редактор или другие модули системы.
  2. Moduls – директория, в которой содержатся все модули сайта
  3. Templates – директория, в которой хранятся шаблонные сетки и дизайн-макеты.
  4. UserControl – директория содержит все дополнительные элементы управления, созданные программистами, например обратный след, блок поиска, пейджер и т.д.


Папка Moduls имеет следующий вид:


Список ресурсов модуля (картинки, скрипты, стили, флеш)





Список языковых ресурсов модуля для административной и клиентской части модуля







Реализация модуля для клиентской и административной части, а также вспомогательные элементы управления. Для клиентской части должен быть реализован интерфейс IsiteClientModule.

Для административной части должен быть реализован интерфейс IsiteAdminModule.

Если оба эти интерфейса реализованы в файлах client.ascx и admin.ascx, то модуль будет автоматически распознан системой управления и появится возможность его установки.









Рис. 2

Папка Templates имеет следующий вид:



Ресурсы данной шаблонной сетки или дизайн-макета (картинки, скрипты, стили, флэш).

Языковые ресурсы данной шаблонной сетки для административной и клиентской части

Admin.ascx используется в административной части для вставки модулей в области контента. Должен реализовывать интерфейс IsiteAdminTemplate.

Client_page.master — разметка, полученная от верстальщика.

Client.ascx использует файл client_page.master.


Имена файлов должны соответствовать шаблонным.

Название шаблонной сетки, может быть произвольным, но не должно оканчиваться на _Design, иначе система распознает данную директорию как дизайн-макет и не добавит ее в список шаблонных сеток.



Рис. 3

2. Процесс создания нового сайта


По стандартам ASP.NET на каждой странице должна быть одна форма:








content








В целом верстка обычная. Следует верстать так, чтобы удаление или добавление модулей проходило без нарушения целостности вида.

Шаг 1. Выбор или создание шаблонной сетки


При создании сайта первоочередной задачей является создание дизайн-макета на основе верстки.


Создание дизайн-макета производится с помощью веб-интерфейса системы управления. Для этого нужно:
  • Зайти в УправлениеМакеты дизайна, далее





  • Выбрать имеющуюся шаблонную сетку из зарегистрированных в системе, и создать новый макет на ее основе:





  • Если в списке нет нужной шаблонной сетки, то проще всего скопировать уже существующий макет в папке Templates.

Все шаблонные сетки автоматически распознаются системой при соответствии структуре, приведенной выше на рис. 3.


Для примера рассмотрим административную часть шаблонной сетки с одной колонкой:



EnableEmbeddedSkins="false" runat="server">














MinHeight="300">









public partial class Templates_TwoColumnLeft_admin : UserControl, ISiteAdminTemplate

{

protected string _innerTemplateName;

protected SiteTemplate baseTemplate;

protected void Page_Load(object sender, EventArgs e)

{


}


public string TemplatePreview

{

get { return "/Templates/" + InnerTemplateName + "/img/preview.png"; }

}


public string TemplateName

{

get

{

return (new SiteXml()).GetTemplateXmlResource(InnerTemplateName, "main", "Name");

}

}


public string InnerTemplateName

{

get

{

if (string.IsNullOrEmpty(_innerTemplateName))

{

throw new Exception("Не инициализировано имя шаблона");

}

return _innerTemplateName;

}

set

{

_innerTemplateName = value;

}

}


public bool InitTemplateWithContainers(bool showErrors)

{

SiteDisplayInfo info = new SiteDisplayInfo(Page);

SiteTemplate template = new SiteTemplate(InnerTemplateName);

int TemplateID = 0;

Exception ee = template.SaveTemplate(ref TemplateID);

baseTemplate = template;

if (ee.Source != null && showErrors) info.DisplayError(ee.Message);

if (ee.Source != null && TemplateID == 0)

return false;


int ContainerID = 0;

ee = template.SaveContainer("ContentMain", ref ContainerID);

if (ee.Source != null && showErrors) info.DisplayError(ee.Message);

if (ee.Source != null && ContainerID == 0)

return false;


RDZ1.Attributes.Add("cid", ContainerID.ToString());


return true;

}


public List DockZones

{

get

{

return new List() { RDZ1 };

}

}


public Control DockLayout

{

get { return dockLayout; }

}


public SiteTemplate BaseTemplate

{

get

{

if (baseTemplate == null)

InitTemplateWithContainers(false);

return baseTemplate;

}

}


public string ClientCSS

{

get { return string.Format("/Templates/{0}/img/style.css", InnerTemplateName); }

}

}


Административная часть (файл admin.ascx) шаблона состоит из таблицы, в ячейках которой содержатся модули. Для реализации этого функционала используются элементы библиотеки Telerik (RadDockLayout и RadDockZone). Реализация едина для всех шаблонных сеток и отличается только количеством ячеек в таблице. Высота ячеек задается в параметре MinHeight у элементов RadDockZone. В атрибуте cname="ContentMain" задается текстовое название контейнера, которое должно совпадать с названием, используемым в клиентской части сетки.


Административная часть шаблонной сетки должна реализовывать интерфейс ISiteAdminTemplate. Реализация также стандартна для всех сеток и по сути отличается только количеством ячеек. Подробное описание функций, определяемых интерефейсом, есть в технической документации.


Разметку административной части желательно примерно соотнести с конфигурацией контейнеров в макете, чтобы в админке было понятно, в какую часть страницы попадет модуль, если его поместить в соответствующий контейнер.


Клиентская часть (файл client.ascx) может быть любой c единственным условием — все идентификаторы контейнеров asp:ContentPlaceHolder должны совпадать с атрибутами cname ячеек административной части.

Шаг 2. Создание дизайн-макета


После создания шаблонной сетки следует сделать дизайн-макет на ее основе. Физически создание дизайн-макета — это копирование всех файлов шаблонной сетки в отдельную директорию и присвоение ей уникального имени. Все эти действия выполняются системой управления.


После этого появится возможность изменить новосозданный макет через систему управления. Все макеты, по сути, клоны выбранной шаблонной сетки, и различаются только в клиентской части.

Шаг 3. Создание шаблона страницы


После создания дизайн-макета следует создать шаблон страницы. Шаблон страницы — это данные о том, в каких областях дизайн-макета расположены модули.


Для создания шаблона нужно:
  • Зайти в УправлениеШаблоны, затем нажать

и выбрать дизайн -макет.
  • Задать название и перетащить модули в желаемую область сетки:





Эти модули теперь подставляются в каждую страницу, созданную на основе этого шаблона.

Шаг 4. Создание новых модулей для системы управления.


В системе управления предусмотрен базовый набор модулей, которые предоставляются с открытыми исходными кодами и могут быть настроены. Если вы захотите сделать свой модуль — никаких препятствий нет.


Для этого нужно в папке Moduls создать новую папку со структурой, описанной выше на рис 2.

В папке должны присутствовать файлы, реализующие интерфейсы ISiteClientModule и ISiteAdminModule. Только тогда система распознает модуль и добавит его в список доступных для установки модулей.


Подробное описание функций, которые должны быть реализованы в этих интерфейсах, можно найти в технической документации. Также можно посмотреть примеры модулей в составе Atilekt.CMS.

Подключение форума и блогов


Для того чтобы форум и блоги правильно заработали, нужно:
  • В IIS их развернуть как веб-приложения внутри основного сайта.
  • У форума, в файле конфигурации db.config указать строки подключения к базе данных.