Alterator/module/structure: различия между версиями
(Import from freesource.info) |
м («Alterator/module/setup» переименована в «Alterator/module/structure») |
(нет различий)
|
Версия от 17:44, 30 июля 2008
Структура модуля
Название модуля
Все модули называются в стиле alterator-<имя>. Предпочтительно в качестве <имя> использовать название конкретного сервиса, а не решаемую задачу . Например, alterator-postfix лучше чем alterator-mail, потому что может существовать ещё модуль alterator-sendmail.
Расположение файлов и каталогов
Стандартный модуль alterator может содержать следующие каталоги (их может инициализировать скрипт из пакета alterator-sdk):
- help - документация
- backend2 - нативные бакенды
- backend3 - внешние бакенды
- ui - описания интерфейсов (qt)
- templates - описания интерфейсов (html)
- applications - desktop-файлы с описанием модуля (для отображения в меню центра управления)
- desktop-directories - directory-файлы с описанием групп модулей (для отображения в меню центра управления)
- design - дополнительные к стандартным файлы с изображениями, стилями, скриптами.
Каталоги с бакендами не имеют никакой вложенной иерархии: бакенд, адресуемый как /foo должен находиться в файле backend3/foo, если это внешний бакенд, и backend2/foo, если это нативный бакенд.
Файлы описания интерфейсов раскладываются следующим образом:
- html-описание, адресуемое как /foo/bar, должно находиться в файле templates/foo/bar/index.html
- qt-описание, адресуемое как /foo/bar, должно находиться в файле ui/foo/bar/index.scm
Документация пишется в формате html и раскладывается в подкаталоги, соответствующие названию локали. Справка, по теме "foo" для русского языка должна находиться в файле help/ru_RU/foo.html, а для украинского -- в файле help/uk_UA/foo.html
Файлы стилей размещаются в директории design, ссылка в html-интерфейсе на файл стилей /design/my.css
Регистрация в центре управления
Центр управления - это прежде всего способ объединить разрозненные модули alterator. Каждый модуль содержит некоторое описание, на основании которого вычисляется его имя и местоположение внутри двухуровневого меню. Это описание имеет традиционный формат desktop-файла и располагается в каталоге applications. Модули объединяются в группы (первый уровень меню), каждая группа имеет описание в виде directory-файла и располагается в каталоге desktop-directories. Группы связаны с модулями косвенно через так называемые категории.
Описание группы
В файле описания группы модулей используются следующие параметры:
- Name - имя группы. Также возможна запись локализованных имён в параметрах Name[locale], где locale - имя локали (например ru). Для локализованных имён должна использоваться кодировка UTF-8.
- Icon - картинка для группы, пока не используется
- Type - всегда равно directory
- X-Alterator-Category - имя категории, которую представляет данная группа.
- X-Alterator-Weight - вес группы. В меню группы сортируются согласно их весу.
Пример описания группы:
[Desktop Entry] Type=Directory Name=Statistics Name[ru]=Статистика Icon=system X-Alterator-Category=X-Alterator-Statistics X-Alterator-Weight=15
Описание модуля
В файле описания модуля используются следующие параметры:
- Name - имя модуля. Также возможна запись локализованных имён в параметрах Name[locale], где locale - имя локали (например ru). Для локализованных имён должна использоваться кодировка UTF-8.
- Icon - картинка для модуля, пока не используется
- Categories - категории, с которыми связан данный модуль (пока допустимо перечислять только одну категорию)
- Type - всегда равно application
- Terminal - всегда равно false.
- X-Alterator-URI - местоположение модуля (трактовка несколько отличается в acc и в fbi)
- X-Alterator-Help - название темы справки. Справка пишется в формате html и размещается по адресу /usr/share/alterator/help/locale/name.html, где locale - полное имя локали, а name - имя, указанное в данном параметре.
- X-Alterator-Weight - вес модуля. Внутри группы, элементы сортируются согласно их весу.
Пример описания модуля:
[Desktop Entry] Type=Application Categories=X-Alterator-System Icon=control Terminal=false Name=System objects Name[ru]=Системные объекты Name[uk]=Системні об'єкти X-Alterator-URI=/control X-Alterator-Weight=10 X-Alterator-Help=control
Замечание про разные интерфейсы: Система меню и справки едина и для GUI и HTML интерфейса, однако до сих пор ещё встречаются модули, которые работают только в одном типе интерфейса. Для того чтобы они не появлялись в меню того центра управления, где они не работают, существует параметр X-Alterator-UI, позволяющий ограничить доступные интерфейсы. Допустимые значения данного параметра "html" и "qt" . В будущем, при окончательном переходе с устаревшей системы с template-*, данный параметр потеряет смысл, поскольку оценку возможностей модуля можно будет производить автоматически.
Сборка модуля
Для всех модулей alterator, предоставлена стандартная сборочная система в виде стандартного набора правил make. Вот как выглядит типичный makefile для модуля:
NAME=users INSTALL=/usr/bin/install all: install: install-module include /usr/share/alterator/build/module.mak