Разработка собственного модуля для системы KooBoo CMS


21.02.2012 || Раздел: || Настройка KooBoo || Модули KooBoo


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

Перейдите на сайт http://kooboo.codeplex.com/ и скачайте файл "kooboo.cms.moduletemplate.vsi".

Двойным щелчком на файле запустите установку шаблона.

Install module 1.gif

Щелкните "Next" и затем "Finish" для завершения инсталляции. Если появится окно о конфликте файлов, пометьте параметр "Overwrite the file with the same name" (Перезаписывать файлы с одинаковыми именами).

Install module 2.gif

Инсталляция шаблона модуля завершена, теперь Вы можете запустить Visual Studio.NET и начать создавать собственный модуль для Kooboo CMS.

2. Разработка модуля Kooboo

В Visual Studio щелкните меню "File" и выберите пункт "New Project".

Kooboo module new project.gif

В открывшемся окне выберите Kooboo.CMS.ModuleTemplate, в поле "Name" задайте имя проекту и щелкните ОК.

Kooboo new module.gif

Таким образом Вы создали сайт ASP.NET MVC и можете свободно использовать все доступные библиотеки классов в ASP.NET framework и разрабатывать модуль. Разработка модуля аналогична разработке веб-сайта MVC.

Рассмотрим несколько важных моментов, прежде чем начать разрабатывать модуль.

Файлы Web.config и global.asax

Так как модуль Kooboo будет запускаться вместе с экземпляром Kooboo CMS, рекомендуется не использовать функционал файлов global.asax и web.config в Вашем модуле. 

Файл Routes.config

Многие разработчики определяют роутинг MVC в файле global.asax, но так как данный файл не используется в модулях Kooboo, был специально создан файл routes.config, где Вы можете задать необходимые настройки роутера MVC.

ScaffoldController и module.config

ScaffoldController используется для имитации рабочего окружения Kooboo CMS. Он также генерирует файл module.config в процессе выполнения. Файл Module.config содержит важную информацию о модуле, такую как опции страницы, инсталятор модуля и место установки. Вы можете модифицировать этот файл после его генерации.

Module frontsite entry URL.

Один модуль может несколько URL адресов для обращения к нему, которые задаются в файле module.config. При добавлении модуля на страницу Вы можете выбрать нужный адрес.

Module entry url.gif

Меню "Modules" на административной странице, menu.config

Модуль может содержать как адрес для страницы, где он размещен, так и адрес на административной странице.  Администрирование модуля может содержать собственное меню и операции по настройке модуля. После включения модуля на сайт Вы увидите его меню в раскрывающемся пункте "Modules".

Module menu.gif

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

Инстралляция и деинсталляция модуля

Вы можете задать действия контроллера инсталляции/деинсталляции, определив их в файле module.config или в ScaffoldController. Во время инсталляции/деинсталляции бутут выполнены заданные Вами действия. Вы можете использовать их, например, для создания таблиц базы данных или других необходимых процедур.

Параметры модуля

Очень часто в модуле необходимо определить некоторые настраиваемые параметры. Вы можете сохранять и модифицировать их при помощи функции ModuleContext.ModuleSettings.CustomSettings["key"]. Для того, чтобы пользователи могли настраивать параметры модуля, Вам необходимо самостоятельно разработать соответствующий интерфейс.

Тема модуля

Тема модуля по функциональности идентична теме сайта KooBoo. Тема модуля может располагаться в директории "Themes. Доступ к темеосуществляется с помощью функции ModuleContext.ModuleSettings.ThemeName

Newscontroller

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

3. Развертывание модуля

Упаковка модуля

После окончания разработки необхоидмо упаковать модуль для последующей инсталляции на сайт KooBoo. Для этого сделайте следующие шаги.

В Visual Studio.NET в контекстном меню на имени проекта щелкните "Publish" для публикации Вашего проекта в файл.

Module publish.gif

В директории, куда произведена публикация, удалите ненужные папки и файлы, например, следующие директории часто не нужны: - Cms_data - Views/Scaffold - Lib

После этого заархивировать все содержимое в zip-архив и дать ему соответствующее имя. Примечание: это обязательно должен быть zip файл, .rar и другие не поддерживаются.

Module package.gif

 

Инсталляция и использование модуля на сайте KooBoo

Войдите в систему как администратор, перейдите по ссылке "Modules" в верхнем меню и щелкните кнопку "Install" как показано на рисунке:

Module install.gif

На странице инсталляции укажите инсталляционный файл модуля и щелкните "Next". Щелкните "Next" еще раз для активации модуля, а затем "Finish", чтобы завершить установку.

Module install file.gif

Ваш модуль установлен в систему Kooboo CMS, теперь перейдите на сайт, в котором нужно использовать модуль, пометьте необходимый модуль и щелкните "Include".

Module include.gif

Теперь Вы можете добавлять модуль в заданное место на странице сайта.

Page add a module.gif

Page add a module2.gif

Автор перевода: ©Элла (Автор: Ella Sea)

Оригинал статьи на англ.языке: Module development guide

< Предыдущая статья

Обновление KooBoo с версии 3.02 до 3.03

Следующая статья >

Создание базы данных в MS SQL Server 2008 R2 для хранения контента CMS KooBoo