hostinfo.ru | 05.02.2008

080119opencms_head2.gifOpenCMS – профессиональная система управления содержимым веб-сайтов и интранет-систем любой сложности от сайтов-презентаций до новостных порталов и корпоративных решений. Система написана на Java и может работать на различных серверах приложений Java (в частности, Tomcat), для хранения данных могут использоваться СУБД MySQL, Oracle, PostgreSQL или Microsoft SQL Server (начиная с версии 7.0.3 – также DB2 и HSQL).

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

Структура проекта в OpenCMS

Для начала нужно определить понятия шаблона, модуля и сайта.

Шаблон в контексте OpenCMS представляет собой обыкновенную JSP-страницу, которая содержит специальные теги для включения содержимого других страниц.

Вот простейший пример кода шаблона:

<%@ taglib prefix=»cms» uri=»http://www.opencms.org/taglib/cms» %>

<!doctype html public «-//W3C//DTD HTML 4.01 Transitional//EN»>
<html>
<head>
<title><cms:property name=»Title» escapeHtml=»true» /></title>

<meta HTTP-EQUIV=»CONTENT-TYPE» CONTENT=»text/html; CHARSET=<cms:property name=»content-encoding» default=»ISO-8859-1″ />»>

<link type= «text/css» href=»<cms:link>../resources/mystyle.css</cms:link>»>
</head>
<body>

<h2>My first template head</h2>

<!— Main pagebody starts here —>

<cms:include element= «body»/>

<!—Main pagebody ends here —>

<h2>My first template foot</h2>

</body>
</html>

За исключением тегов <cms:…>, это обыкновенный HTML-код. На основе шаблонов строится веб-контент. Шаблоны входят в состав модулей.

080119opencms_admin.gif
Управление модулями

Модуль – набор файлов, реализующих определенный функционал. Модуль может реализовывать как целый сайт, так и отдельный элемент сайта (например, форум). Модули OpenCMS находятся в каталоге /system/modules.

Каждый модуль может содержать файлы следующих типов:

  • Шаблоны (подкаталог templates), о которых мы говорили выше.
  • XML-шаблоны с HTML-вставками для реализации тега <cms:body> (подкаталог default_bodies).
  • Классы (подкаталог classes) – бинарные файлы .class, к которым можно обращаться непосредственно из шаблонов; при добавлении файла класса для него автоматически создается иерархия каталогов по имени пакета (/system/modules/org.opencms.mymodule/classes/com/opencms/mymodule/). Когда модуль публикуется, то все содержимое этого каталога экспортируется в каталог WEB-INF/classes/ сервера приложений.
  • Библиотеки (подкаталог libs) – дополнительные библиотеки в виде архивов .jar; когда модуль публикуется, то все содержимое этого каталога экспортируется в каталог WEB-INF/lib/ сервера приложений.
  • Ресурсы (подкаталог resources) – изображения, скрипты JavaScript, таблицы стилей CSS и другой статический контент.
  • Элементы шаблонов (подкаталог elements) – элементы JSP-шаблонов: меню навигации, формы и т. д.

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

Для каждого проекта создается собственный модуль

Сайт – веб-содержимое проекта – html-страницы, построенные на основе шаблонов. Веб-содержимое находится в каталоге /sites/default.Таким образом, каждый проект строится на основе модуля или нескольких модулей, расположенных в каталоге /system/modules/modulename, и веб-содержимого, расположенного в каталоге /sites/default/projectname.

080119opencms_newmodule.gif
Создание нового модуля

Проиллюстрируем это на простом примере. Начнем с создания модуля org.opencms.test. Для этого зайдем в раздел администратора и выберем пункт меню Module Actions («Управление модулями») и затем New module («Новый модуль»). В поле Package Name («Имя пакета») нужно указать пакет модуля (в данном случае org.opencms.test), в поле Module Name («Название модуля») – произвольное название. В поле Module Version («Версия модуля») можно указать версию модуля (в OpenCMS версия модуля состоит из четырех цифр, например 1.2.3.4, и последняя из них увеличивается каждый раз, когда модуль изменяется или экспортируется). В секции Module Folders («Каталоги модуля») можно выбрать необходимые подкаталоги модуля, которые будут созданы автоматически.

В дальнейшем для редактирования параметров модуля нужно щелкнуть левой кнопкой мыши на иконке слева от названия модуля и выбрать пункт Edit Module («Редактировать модуль») контекстного меню.

Пара слов о том, что такое экспорт модуля и зачем он нужен. Экспорт модуля – это запись в соответствующие каталоги сервера приложений файлов бинарных модулей (подкаталог classes) и библиотек (подкаталог lib). Для выбора файлов, которые нужно экспортировать, используется пункт меню Module exportpoints («Точки экспорта модуля»). После выбора файлов нажмите на кнопку Export Module («Экспортировать модуль»).Итак, модуль создан. Откройте каталог модуля (/system/modules/org.opencms.test) и создайте подкаталог templates, если его еще нет. Добавим в этот каталог новый шаблон. Для этого нажмите на кнопку New («Создать») и выберите тип файла JSP. Укажите имя нового файла (например, index.jsp) и имя шаблона (например, TestTemplate). После этого откройте исходный код шаблона, выбрав пункт меню (Edit source code) в контекстном меню шаблона, и вставьте в редактор приведенный выше код. Сохраните файл.

080119opencms_editor.gif
Визуальный редактор

Мы создали файл шаблона для нашего проекта. Теперь нужно создать на его основе html-файл. Для этого в дереве каталогов выберите каталог /sites/default и создайте в нем подкаталог для нового проекта (например, test). Добавьте в этот каталог файл index.html. В следующем окошке выберите созданный ранее шаблон TestTemplate. Готово. Для просмотра страницы щелкните левой кнопкой на имени файла. Должна открыться страничка со стандартным шаблоном OpenCMS. Справа сверху от него расположена кнопка редактирования страницы (см. рисунок). Если щелкнуть на этой кнопке, откроется визуальный редактор, в котором страницу можно отредактировать.

Заключение

Итак, как мы могли убедиться, OpenCMS позволяет быстро, эффективно и с минимальными затратами разрабатывать и поддерживать интернет-ресурсы любой сложности. Ее преимущества — высокая продуктивность, удобство потребителя, независимость от платформы, повышенная надежность и гибкость решений, открытый исходный код и бесплатная лицензия – делают эту систему прекрасным решением для самых разных категорий пользователей.

 Ссылки по теме

Понравился или оказался полезным этот пост?


Подпишитесь на обновления блога по RSS или читайте его в своей френдленте ЖЖ

Читайте также


3 комментария на запись “Обзор OpenCMS. Часть вторая”

  1. Глобатор пишет:

    Спасибо за классную статью! Много слышал про эту цмску, пойду тестить.

  2. admin пишет:

    Пожалуйста)

  3. Абсурдный Людь пишет:

    оО, то, что я искал))
    думаю покатит под сателлиты :ЫЫ

Оставить комментарий

Вы можете использовать теги <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>