<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>FreeSource - AltLinux/Sisyphus/Alterator/module</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module</link>
<description>History/revisions of FreeSource/AltLinux/Sisyphus/Alterator/module</description>
<language>en-us</language>
<item>
<title>2008-06-23 14:08:09</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module/show?time=2008-06-23+14%3A08%3A09</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a name=".altlinux.sisyphus.alterator.module" href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;Alterator&amp;nbsp;/&amp;nbsp;module&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module?time=2008-06-23+14%3A08%3A09">2008-06-23 14:08:09&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module">2008-06-23 14:12:06&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;div class="action" style="float:right; width:250px">&lt;div class="action-content">Эта&amp;nbsp;страница была перенесена на&amp;nbsp;&lt;a href="http://altlinux.org/Alterator/module" target="_blank" title="" class="outerlink">altlinux.org&lt;/a>. Текст на&amp;nbsp;freesource.info заморожен.&lt;/div>&lt;/div>&lt;br />
&lt;!--notypo-->{{Include page="module/effects"}}&lt;!--/notypo-->&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-06-23 14:06:17</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module/show?time=2008-06-23+14%3A06%3A17</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;Alterator&amp;nbsp;/&amp;nbsp;module&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module?time=2008-06-23+14%3A06%3A17">2008-06-23 14:06:17&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module?time=2008-06-23+14%3A08%3A09">2008-06-23 14:08:09&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h8457-1">&lt;/a>&lt;h2>Локализация&lt;/h2>
Для&amp;nbsp;переводов стоит пользоваться единой базой переводов &lt;strong>alterator-l10n&lt;/strong>. Данный пакет содержит переводы для&amp;nbsp;всех модулей альтераторов. Тем&amp;nbsp;самым достигается единый стиль названий (например перевод &amp;#8220;Apply&amp;#8221; и&amp;nbsp;&amp;#8220;Reset&amp;#8221;). Чтобы подключить модуль к&amp;nbsp;единой базе необходимо выполнить следующие действия:&lt;br />
&lt;ol type="1">&lt;li> подключить стандартный набор правил &lt;em>/usr/share/alterator/build/po.mak&lt;/em>
&lt;/li>&lt;li> сказать make update-po и&amp;nbsp;получить файл-заготовку
&lt;/li>&lt;li> связаться с&amp;nbsp;мантейнером пакета alterator-l10n (inger@, cas@) и&amp;nbsp;переслать свой .pot файл.
&lt;/li>&lt;li> Дождитесь когда ваш&amp;nbsp;пакет будет включён в&amp;nbsp;alterator-l10n
&lt;/li>&lt;li> Добавить пакет alterator-l10n в&amp;nbsp;сборочные зависимости модуля (buildprereq)&lt;/li>&lt;/ol>
После этого при&amp;nbsp;каждой сборке пакета автоматически будут создаваться и&amp;nbsp;размещаться в&amp;nbsp;результирующем rpm-пакете) переводы для&amp;nbsp;всех поддерживаемых языков. Если в&amp;nbsp;вашем модуле уже&amp;nbsp;были свои варианты переводов (файлы po/&amp;lt;language&amp;gt;.po), то&amp;nbsp;их надо удалить.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-06-23 14:02:17</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module/show?time=2008-06-23+14%3A02%3A17</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;Alterator&amp;nbsp;/&amp;nbsp;module&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module?time=2008-06-23+14%3A02%3A17">2008-06-23 14:02:17&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module?time=2008-06-23+14%3A06%3A17">2008-06-23 14:06:17&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;!--notypo-->{{Include page="module/l10n"}}&lt;!--/notypo-->&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h8457-1">&lt;/a>&lt;h2>Структура модуля&lt;/h2>&lt;a name="h8457-2">&lt;/a>&lt;h3>Название модуля&lt;/h3>
Все&amp;nbsp;модули называются в&amp;nbsp;стиле &lt;tt>alterator-&amp;lt;имя&amp;gt;&lt;/tt>. Предпочтительно в&amp;nbsp;качестве &amp;lt;имя&amp;gt; использовать название конкретного сервиса, а&amp;nbsp;не решаемую задачу.  Например, &lt;em>alterator-postfix&lt;/em> лучше чем&amp;nbsp;&lt;em>alterator-mail&lt;/em>, потому что&amp;nbsp;может существовать ещё модуль &lt;em>alterator-sendmail&lt;/em>.&lt;a name="h8457-3">&lt;/a>&lt;h3>Расположение файлов и&amp;nbsp;каталогов&lt;/h3>
Стандартный модуль alterator может содержать следующие каталоги (их может инициализировать скрипт из&amp;nbsp;пакета &lt;tt>alterator-sdk&lt;/tt>):&lt;br />
&lt;ul>&lt;li> &lt;strong>help&lt;/strong> &amp;ndash; документация
&lt;/li>&lt;li> &lt;strong>backend2&lt;/strong> &amp;ndash; нативные бакенды
&lt;/li>&lt;li> &lt;strong>backend3&lt;/strong> &amp;ndash; внешние бакенды
&lt;/li>&lt;li> &lt;strong>ui&lt;/strong> &amp;ndash; описания интерфейсов (qt)
&lt;/li>&lt;li> &lt;strong>templates&lt;/strong> &amp;ndash; описания интерфейсов (html)
&lt;/li>&lt;li> &lt;strong>applications&lt;/strong> &amp;ndash; desktop-файлы с&amp;nbsp;описанием модуля (для отображения в&amp;nbsp;меню центра управления)
&lt;/li>&lt;li> &lt;strong>desktop-directories&lt;/strong> &amp;ndash; directory-файлы с&amp;nbsp;описанием групп модулей (для отображения в&amp;nbsp;меню центра управления)
&lt;/li>&lt;li> &lt;strong>design&lt;/strong> &amp;ndash; дополнительные к&amp;nbsp;стандартным файлы с&amp;nbsp;изображениями, стилями,  скриптами.&lt;/li>&lt;/ul>
Каталоги с&amp;nbsp;бакендами не&amp;nbsp;имеют никакой вложенной иерархии: бакенд, адресуемый как&amp;nbsp;&lt;strong>/foo&lt;/strong> должен находиться в&amp;nbsp;файле &lt;strong>backend3/foo&lt;/strong>, если это&amp;nbsp;внешний бакенд, и&amp;nbsp;&lt;strong>backend2/foo&lt;/strong>, если это&amp;nbsp;нативный бакенд.&lt;br />
Файлы описания интерфейсов раскладываются следующим образом: &lt;br />
&lt;ul>&lt;li> html-описание, адресуемое как&amp;nbsp;&lt;strong>/foo/bar&lt;/strong>, должно находиться в&amp;nbsp;файле &lt;strong>templates/foo/bar/index.html&lt;/strong>
&lt;/li>&lt;li> qt-описание, адресуемое как&amp;nbsp;&lt;strong>/foo/bar&lt;/strong>, должно находиться в&amp;nbsp;файле &lt;strong>ui/foo/bar/index.scm&lt;/strong>&lt;/li>&lt;/ul>
Документация пишется в&amp;nbsp;формате html и&amp;nbsp;раскладывается в&amp;nbsp;подкаталоги, соответствующие названию локали. Справка, по&amp;nbsp;теме &lt;strong>&amp;#8220;foo&amp;#8221;&lt;/strong> для&amp;nbsp;русского языка должна находиться в&amp;nbsp;файле &lt;strong>help/ru_RU/foo.html&lt;/strong>, а&amp;nbsp;для украинского  &amp;mdash; в&amp;nbsp;файле &lt;strong>help/uk_UA/foo.html&lt;/strong>&lt;br />
Файлы стилей размещаются в&amp;nbsp;директории &lt;strong>design&lt;/strong>, ссылка в&amp;nbsp;html-интерфейсе на&amp;nbsp;файл стилей &lt;strong>/design/my.css&lt;/strong>&lt;a name="h8457-4">&lt;/a>&lt;h3>Регистрация в&amp;nbsp;центре управления&lt;/h3>
Центр управления &amp;ndash; это&amp;nbsp;прежде всего способ объединить разрозненные модули alterator. &lt;br />
Каждый модуль содержит некоторое описание, на&amp;nbsp;основании которого вычисляется его&amp;nbsp;имя и&amp;nbsp;местоположение внутри&lt;br />
двухуровневого меню. Это&amp;nbsp;описание имеет традиционный формат desktop-файла и&amp;nbsp;располагается в&amp;nbsp;каталоге &lt;strong>applications&lt;/strong>.&lt;br />
Модули объединяются в&amp;nbsp;группы (первый уровень меню), каждая группа имеет описание в&amp;nbsp;виде directory-файла и&amp;nbsp;располагается в&amp;nbsp;каталоге &lt;strong>desktop-directories&lt;/strong>. Группы связаны с&amp;nbsp;модулями косвенно через так&amp;nbsp;называемые категории.&lt;a name="h8457-5">&lt;/a>&lt;h4>Описание группы&lt;/h4>
В&amp;nbsp;файле описания группы модулей используются следующие параметры:&lt;br />
&lt;ul>&lt;li> &lt;strong>Name&lt;/strong> &amp;ndash; имя&amp;nbsp;группы. Также возможна запись локализованных имён в&amp;nbsp;параметрах Name[locale], где&amp;nbsp;locale &amp;ndash; имя&amp;nbsp;локали (например ru). Для&amp;nbsp;локализованных имён  должна использоваться кодировка UTF-8.
&lt;/li>&lt;li> &lt;strong>Icon&lt;/strong> &amp;ndash; картинка для&amp;nbsp;группы, пока не&amp;nbsp;используется
&lt;/li>&lt;li> &lt;strong>Type&lt;/strong> &amp;ndash; всегда равно directory
&lt;/li>&lt;li> &lt;strong>X-Alterator-Category&lt;/strong> &amp;ndash; имя&amp;nbsp;категории, которую представляет данная группа.
&lt;/li>&lt;li> &lt;strong>X-Alterator-Weight&lt;/strong> &amp;ndash; вес&amp;nbsp;группы. В&amp;nbsp;меню группы сортируются согласно их&amp;nbsp;весу.&lt;/li>&lt;/ul>
 &lt;br />
Пример описания группы:&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="8" readonly="readonly">[Desktop Entry]
Type=Directory
Name=Statistics
Name[ru]=Статистика
Icon=system
X-Alterator-Category=X-Alterator-Statistics
X-Alterator-Weight=15&lt;/textarea>&lt;!--/notypo-->&lt;a name="h8457-6">&lt;/a>&lt;h4>Описание модуля&lt;/h4>
В&amp;nbsp;файле описания модуля используются следующие параметры:&lt;br />
&lt;ul>&lt;li> &lt;strong>Name&lt;/strong> &amp;ndash; имя&amp;nbsp;модуля. Также возможна запись локализованных имён в&amp;nbsp;параметрах Name[locale], где&amp;nbsp;locale &amp;ndash; имя&amp;nbsp;локали (например ru). Для&amp;nbsp;локализованных имён должна использоваться кодировка UTF-8.
&lt;/li>&lt;li> &lt;strong>Icon&lt;/strong> &amp;ndash; картинка для&amp;nbsp;модуля, пока не&amp;nbsp;используется
&lt;/li>&lt;li> &lt;strong>Categories&lt;/strong> &amp;ndash; категории, с&amp;nbsp;которыми связан данный модуль (пока допустимо перечислять только одну категорию) 
&lt;/li>&lt;li> &lt;strong>Type&lt;/strong> &amp;ndash; всегда равно application
&lt;/li>&lt;li> &lt;strong>Terminal&lt;/strong> &amp;ndash; всегда равно false.
&lt;/li>&lt;li> &lt;strong>X-Alterator-URI&lt;/strong> &amp;ndash; местоположение модуля (трактовка несколько отличается в&amp;nbsp;acc и&amp;nbsp;в fbi)
&lt;/li>&lt;li> &lt;strong>X-Alterator-Help&lt;/strong> &amp;ndash; название темы справки. Справка пишется в&amp;nbsp;формате html и&amp;nbsp;размещается по&amp;nbsp;адресу &lt;em>/usr/share/alterator/help/locale/name.html&lt;/em>, где&amp;nbsp;locale &amp;ndash; &lt;strong>полное&lt;/strong> имя&amp;nbsp;локали, а&amp;nbsp;name &amp;ndash; имя, указанное в&amp;nbsp;данном параметре.
&lt;/li>&lt;li> &lt;strong>X-Alterator-Weight&lt;/strong> &amp;ndash; вес&amp;nbsp;модуля. Внутри группы, элементы сортируются согласно их&amp;nbsp;весу.&lt;/li>&lt;/ul>
 &lt;br />
Пример описания модуля:&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="12" readonly="readonly">[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&lt;/textarea>&lt;!--/notypo-->&lt;br />
&lt;span class="cite">&lt;strong>Замечание про&amp;nbsp;разные интерфейсы&lt;/strong>:&lt;br />
Система меню и&amp;nbsp;справки едина и&amp;nbsp;для GUI&amp;nbsp;и&amp;nbsp;HTML интерфейса, однако до&amp;nbsp;сих пор&amp;nbsp;ещё встречаются модули, которые работают только в&amp;nbsp;одном типе интерфейса. Для&amp;nbsp;того чтобы они&amp;nbsp;не&amp;nbsp;появлялись в&amp;nbsp;меню того центра управления, где&amp;nbsp;они не&amp;nbsp;работают, существует параметр &lt;strong>X-Alterator-UI&lt;/strong>, позволяющий ограничить доступные интерфейсы. Допустимые значения данного параметра &amp;#8220;html&amp;#8221; и&amp;nbsp;&amp;#8220;qt&amp;#8221;.  В&amp;nbsp;будущем, при&amp;nbsp;окончательном переходе с&amp;nbsp;устаревшей системы с&amp;nbsp;template-*, данный параметр потеряет смысл, поскольку оценку возможностей модуля можно будет производить автоматически.&lt;/span>&lt;a name="h8457-7">&lt;/a>&lt;h4>Сборка модуля&lt;/h4>
Для&amp;nbsp;всех модулей alterator, предоставлена стандартная сборочная система в&amp;nbsp;виде стандартного набора правил make. &lt;br />
Вот&amp;nbsp;как выглядит типичный makefile для&amp;nbsp;модуля:&lt;br />
&lt;!--notypo-->&lt;textarea class="code" rows="6" readonly="readonly">NAME=users
INSTALL=/usr/bin/install
all:
install: install-module
include /usr/share/alterator/build/module.mak&lt;/textarea>&lt;!--/notypo-->&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-06-23 13:12:23</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module/show?time=2008-06-23+13%3A12%3A23</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;Alterator&amp;nbsp;/&amp;nbsp;module&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module?time=2008-06-23+13%3A12%3A23">2008-06-23 13:12:23&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module?time=2008-06-23+14%3A02%3A17">2008-06-23 14:02:17&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h8457-1">&lt;/a>&lt;h4>Сборка модуля&lt;/h4>
Для&amp;nbsp;всех модулей alterator, предоставлена стандартная сборочная система в&amp;nbsp;виде стандартного набора правил make. &lt;br />
install: install-module&lt;br />
include /usr/share/alterator/build/module.mak&lt;br />
&lt;!--notypo-->{{Include page="module/setup"}}&lt;!--/notypo-->&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h8457-1">&lt;/a>&lt;h2>Сборка модуля&lt;/h2>
Для&amp;nbsp;всех модулей alterator, предоставлена стандартная сборочная система в&amp;nbsp;виде стандартного набора правил make. Все&amp;nbsp;их&amp;nbsp;можно включать при&amp;nbsp;помощи директивы &lt;strong>include&lt;/strong>:&lt;br />
&lt;ul>&lt;li> &lt;strong>/usr/share/alterator/build/po.mak&lt;/strong> &amp;ndash; правила для&amp;nbsp;работы с&amp;nbsp;переводами
&lt;ul>&lt;li> &lt;strong>update-po&lt;/strong> &amp;ndash; синхронизация po-файлов с&amp;nbsp;бакендами и&amp;nbsp;описаниями интерфейсов.
&lt;/li>&lt;li> &lt;strong>install-po&lt;/strong> &amp;ndash; сборка и&amp;nbsp;инсталляция po-файлов в&amp;nbsp;систему.
&lt;/li>&lt;/ul>&lt;/li>&lt;li> &lt;strong>/usr/share/alterator/build/ui2.mak&lt;/strong>
&lt;ul>&lt;li> &lt;strong>install-ui&lt;/strong> &amp;ndash; инсталляция в&amp;nbsp;систему каталогов:   ui, layouts, applications, desktop-directories, help, templates, design.
&lt;/li>&lt;/ul>&lt;/li>&lt;li> &lt;strong>/usr/share/alterator/build/backend.mak&lt;/strong>
&lt;ul>&lt;li> &lt;strong>install-backend&lt;/strong> &amp;ndash; инсталляция в&amp;nbsp;систему каталогов: backend2, backend3.&lt;/li>&lt;/ul>&lt;/li>&lt;/ul>
Для&amp;nbsp;работы правил необходимо записать имя&amp;nbsp;модуля (без префикса alterator) в&amp;nbsp;переменную &lt;strong>NAME&lt;/strong>, а&amp;nbsp;также задать переменную &lt;strong>INSTALL&lt;/strong> (как правило /usr/bin/install).&lt;br />
clean: clean-po&lt;br />
install: install-backend install-ui install-po&lt;br />
include /usr/share/alterator/build/po.mak&lt;br />
include /usr/share/alterator/build/ui2.mak&lt;br />
include /usr/share/alterator/build/backend.mak&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-06-23 13:05:49</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module/show?time=2008-06-23+13%3A05%3A49</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;Alterator&amp;nbsp;/&amp;nbsp;module&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module?time=2008-06-23+13%3A05%3A49">2008-06-23 13:05:49&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module?time=2008-06-23+13%3A12%3A23">2008-06-23 13:12:23&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h8457-1">&lt;/a>&lt;h2>Бакенд&lt;/h2>
Бакенд может быть написан на&amp;nbsp;произвольном языке програмирования, при&amp;nbsp;этом &lt;strong>настоятельно рекомендуется&lt;/strong> использовать готовые библиотеки, предоставляющие API&amp;nbsp;для взаимодействия с&amp;nbsp;alterator. Все&amp;nbsp;библиотеки построены по&amp;nbsp;одному и&amp;nbsp;тому же&amp;nbsp;принципу &amp;ndash; есть главный цикл взаимодействующий с&amp;nbsp;alterator и&amp;nbsp;есть функция-обработчик пришедших сообщений. &lt;br />
В&amp;nbsp;функции обработчике:&lt;br />
&lt;ul>&lt;li> анализируется вид&amp;nbsp;запроса (параметр action)
&lt;/li>&lt;li> анализируется url&amp;nbsp;запроса, а&amp;nbsp;также значения входных параметров
&lt;/li>&lt;li> вычисляются и&amp;nbsp;выводятся значения выходных параметров.&lt;/li>&lt;/ul>
Пример простейшего бакенда на&amp;nbsp;shell:&lt;br />
#!/bin/sh -f&lt;br />
po_domain="alterator-foo"&lt;br />
api_version=1&lt;br />
. alterator-sh-functions&lt;br />
on_message()&lt;br />
{&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">case "$in_action" in&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent"> list)&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent"> write_enum_item &amp;#8220;item1&amp;#8221; &amp;#8220;label1&amp;#8221;&lt;br />
 write_enum_item &amp;#8220;item2&amp;#8221;  &amp;#8220;label2&amp;#8221;&lt;br />
 ;;&lt;br />
&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div> read)&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">case "$in__objects" in&lt;br />
&lt;div class="indent"> url1) write_string_param param1 &amp;#8220;value1&amp;#8221;;;&lt;br />
 url2) write_bool_param param2  &amp;#8220;yes&amp;#8221;;;&lt;br />
&lt;/div>esac&lt;br />
;;&lt;br />
&lt;/div>&lt;/div>&lt;/div>write)&lt;br />
&lt;div class="indent">&lt;div class="indent">[ -n "$in_param1" ] &amp;&amp; echo "$in_param1" &amp;gt;/tmp/file1&lt;br />
test_bool "$in_param2" &amp;&amp; echo &amp;#8220;yes&amp;#8221;&amp;gt;/tmp/file2&lt;br />
;;&lt;br />
&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>esac&lt;/div>&lt;/div>&lt;/div>&lt;/div>
}&lt;br />
message_loop&lt;br />
В&amp;nbsp;данном примере: &lt;tt>message_loop&lt;/tt> &amp;mdash; запуск цикла обработки событий, &lt;tt>on_message&lt;/tt> &amp;mdash; обработчик входящих сообщний. Входные переменные выглядят как&amp;nbsp;переменные &lt;tt>$in_&amp;lt;имя&amp;gt;&lt;/tt>. Выходные печатаются при&amp;nbsp;помощи функций write_* . &lt;tt>alterator_api_version&lt;/tt> &amp;ndash; текущая версия API&amp;nbsp;для взаимодействия с&amp;nbsp;alterator. Если к&amp;nbsp;к бакенду &amp;lt;name&amp;gt; обращались из&amp;nbsp;интерфейса по&amp;nbsp;адресу &lt;em>/&amp;lt;name&amp;gt;/foo/bar&lt;/em>, то&amp;nbsp;переменная &lt;tt>$in__objects&lt;/tt> будет равна &amp;laquo;foo/bar&amp;raquo; (то есть &amp;laquo;хвост&amp;raquo; адреса), если обращались по&amp;nbsp;адресу &lt;em>/&amp;lt;name&amp;gt;&lt;/em>, то&amp;nbsp;&lt;tt>$in__objects&lt;/tt> будет равна &amp;laquo;/&amp;raquo;.&lt;br />
Пример аналогичного бакенда на&amp;nbsp;perl (см. также &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/perl" target="_blank" title="" class="outerlink">здесь&lt;/a>):&lt;br />
#!/usr/bin/perl -w&lt;br />
use&amp;nbsp;strict;&lt;br />
use&amp;nbsp;Alterator::Backend3;&lt;br />
$TEXTDOMAIN='alterator-foo';&lt;br />
$DEBUG = 1;&lt;br />
sub&amp;nbsp;on_message{&lt;br />
&lt;div class="indent">my message=shift;&lt;br />
if&amp;nbsp;($message-&amp;gt;{action} eq&amp;nbsp;'list'){&lt;br />
&lt;div class="indent">write_named_auto_list('item1', 'label', 'label1');&lt;br />
write_named_auto_list('item2', 'label', 'label2');&lt;br />
&lt;/div>}&lt;br />
elsif ($message-&amp;gt;{action} eq&amp;nbsp;'read'){&lt;br />
&lt;div class="indent"> write_string_param('param1', 'value1');&lt;br />
 write_bool_param('param2',  'yes');&lt;br />
&lt;/div>}&lt;br />
elsif ($message-&amp;gt;{action} eq&amp;nbsp;'write'){&lt;br />
&lt;div class="indent">print F1 $message-&amp;gt;{param1} if&amp;nbsp;(exists($message-&amp;gt;{param1}));&lt;br />
print F2 ($message-&amp;gt;{param2} eq&amp;nbsp;'#t')? 'yes':'no' if&amp;nbsp;(exists($message-&amp;gt;{param2}));&lt;br />
&lt;/div>}&lt;/div>
}&lt;br />
message_loop(\&amp;on_message);&lt;a name="h8457-2">&lt;/a>&lt;h2>Интерфейс&lt;/h2>
Основу интерфейса модуля составляют формы &amp;ndash; графическое отображение параметров того или&amp;nbsp;иного объекта системы. При&amp;nbsp;создании интерфейсов следует придерживаться определённых правил, чтобы интерфейс был&amp;nbsp;единообразен и&amp;nbsp;понятен для&amp;nbsp;пользователя.&lt;a name="h8457-3">&lt;/a>&lt;h3>Формы&lt;/h3>
Названия полей формы не&amp;nbsp;должны быть &amp;laquo;оторваны&amp;raquo; от&amp;nbsp;самих полей.&lt;br />
Пример правильного описания для&amp;nbsp;qt:&lt;br />
(gridbox columns &amp;#8220;0;100&amp;#8221;&lt;br />
&lt;div class="indent"> (label &amp;#8220;Label:&amp;raquo; align &amp;#8220;right&amp;#8221;)&lt;br />
 (field)&lt;br />
 (label &amp;#8220;Label:&amp;raquo; align &amp;#8220;right&amp;#8221;)&lt;br />
 (field))&lt;/div>
Обратите внимание на&amp;nbsp;&amp;#8220;0&amp;#8221; для&amp;nbsp;колонки с&amp;nbsp;метками &amp;ndash; это&amp;nbsp;необходимо, чтобы колонка заняла в&amp;nbsp;ширину ровно столько сколько необходимо для&amp;nbsp;самой длинной метки.&lt;br />
Пример правильного описания для&amp;nbsp;html:&lt;br />
&amp;lt;table class="form-table"&amp;gt;&lt;br />
&lt;div class="indent">&amp;lt;tr&amp;gt;&lt;br />
&lt;div class="indent">&amp;lt;td&amp;gt;Label:&amp;lt;/td&amp;gt;&lt;br />
&amp;lt;td&amp;gt;Field&amp;lt;/td&amp;gt;&lt;br />
&lt;/div>&amp;lt;/tr&amp;gt;&lt;br />
&amp;lt;tr&amp;gt;&lt;br />
&lt;div class="indent">&amp;lt;td&amp;gt;Label:&amp;lt;/td&amp;gt;&lt;br />
&amp;lt;td&amp;gt;Field&amp;lt;/td&amp;gt;&lt;br />
&lt;/div>&amp;lt;/tr&amp;gt;&lt;/div>
&amp;lt;/table&amp;gt;&lt;br />
CSS-класс &amp;#8220;form-table&amp;#8221; не&amp;nbsp;будет корректно работать для&amp;nbsp;старых браузеров (Internet Explorer 6.0), для&amp;nbsp;них необходимо во&amp;nbsp;всех td, содержащих метки использовать CSS-класс &amp;#8220;form-table-label&amp;#8221;.&lt;a name="h8457-4">&lt;/a>&lt;h3>Группировка элементов формы&lt;/h3>
&lt;strong>Группировка при&amp;nbsp;помощи пустых строк&lt;/strong>&lt;br />
Пример для&amp;nbsp;html:&lt;br />
&amp;lt;td colspan="2"&amp;gt;&amp;nbsp;&amp;lt;/td&amp;gt;&lt;br />
Пример для&amp;nbsp;qt:&lt;br />
(label colspan &amp;#8220;2&amp;#8221;)&lt;br />
&lt;strong>Группировка при&amp;nbsp;помощи горизонтальной черты&lt;/strong>&lt;br />
Пример для&amp;nbsp;html:&lt;br />
&amp;lt;td colspan="2"&amp;gt;&amp;lt;hr/&amp;gt;&amp;lt;/td&amp;gt;&lt;br />
Пример для&amp;nbsp;qt:&lt;br />
(separator colspan="2")&lt;br />
В&amp;nbsp;этом способе группировки возможно задание названия группы. Название группы делается полужирным шрифтом и&amp;nbsp;выравнено по&amp;nbsp;левому краю формы. &lt;br />
Пример для&amp;nbsp;html:&lt;br />
&amp;lt;td&amp;gt;&amp;lt;strong&amp;gt;Group title&amp;lt;/strong&amp;gt;&amp;lt;/td&amp;gt;&lt;br />
Пример для&amp;nbsp;qt:&lt;br />
(label text (bold &amp;#8220;Group title&amp;#8221;) align &amp;#8220;right&amp;#8221;)&lt;a name="h8457-5">&lt;/a>&lt;h3>Элементы формы&lt;/h3>
&lt;ul>&lt;li> Метки полей и&amp;nbsp;заголовки должны начинаться с&amp;nbsp;заглавной буквы.
&lt;/li>&lt;li> Если метка и&amp;nbsp;поле находятся в&amp;nbsp;одной строке, то&amp;nbsp;метка &lt;strong>должна&lt;/strong> заканчиваться символом двоеточия &amp;#8220;:".
&lt;/li>&lt;li> Заголовки групп, включая заголовки groupbox &lt;strong>не должны&lt;/strong> содержать символа двоеточия &amp;#8220;:".&lt;/li>&lt;/ul>&lt;a name="h8457-6">&lt;/a>&lt;h4>сheckbox&lt;/h4>
Данный элемент предназначен для&amp;nbsp;представления атрибута логического типа.&lt;br />
Метка к&amp;nbsp;checkbox должна идти после галочки и&amp;nbsp;начинаться с&amp;nbsp;заглавной буквы. &lt;br />
Пример для&amp;nbsp;qt:&lt;br />
(checkbox text &amp;#8220;Label for&amp;nbsp;checkbox&amp;#8221;)&lt;br />
Для&amp;nbsp;получения/изменения значения пользуйтесь атрибутом &lt;tt>value&lt;/tt>.&lt;br />
Пример для&amp;nbsp;html:&lt;br />
&amp;lt;input type="checkbox"/&amp;gt;Label for&amp;nbsp;checkbox&lt;br />
Обратите внимание на&amp;nbsp;написание тега в&amp;nbsp;стиле xml, а&amp;nbsp;не html.&lt;br />
Пример работы в&amp;nbsp;бакенде на&amp;nbsp;shell:&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">read)&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">...&lt;br />
write_bool_param"item1" &amp;#8220;Yes&amp;#8221;&lt;br />
&lt;/div>&lt;/div>&lt;/div>write)&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">if test_bool "$in_item1"; then ...  else ... fi&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>&lt;/div>
Функция &lt;tt>write_bool_param&lt;/tt> принимает два&amp;nbsp;параметра &amp;ndash; имя&amp;nbsp;и&amp;nbsp;значение. В&amp;nbsp;качестве значения допустимы любые варианты: y, yes, on, true (в любом регистре). Функция &lt;tt>test_bool&lt;/tt> применяется для&amp;nbsp;&amp;laquo;считывания&amp;raquo; значения параметра, независимым от&amp;nbsp;представления в&amp;nbsp;протоколе виде.&lt;a name="h8457-7">&lt;/a>&lt;h4>button&lt;/h4>
Данный элемент предназначен для&amp;nbsp;представления активных действий с&amp;nbsp;формой.&lt;br />
&lt;ul>&lt;li> Текст кнопок должен начинаться с&amp;nbsp;заглавной буквы
&lt;/li>&lt;li> Если кнопка открывает дополнительное диалоговое окно, то&amp;nbsp;текст кнопки должен заканчиватья многоточием &amp;#8220;...&amp;raquo;
&lt;/li>&lt;li> Ни&amp;nbsp;один диалог модуля не&amp;nbsp;должен содержать кнопки &amp;laquo;Выход&amp;raquo;&lt;/li>&lt;/ul>
Пример для&amp;nbsp;qt:&lt;br />
(button text &amp;#8220;Button name&amp;#8221;)&lt;br />
Пример для&amp;nbsp;html:&lt;br />
&amp;lt;input type="submit" class="btn" name="somename" value="Button name"/&amp;gt;&lt;br />
Обратите внимание на&amp;nbsp;использование класса btn&amp;nbsp;и&amp;nbsp;на написание тега в&amp;nbsp;стиле xml, а&amp;nbsp;не html.&lt;a name="h8457-8">&lt;/a>&lt;h4>combobox/listbox/select&lt;/h4>
В&amp;nbsp;самом простом случае данные элементы представляют атрибут типа перечисление (enum), то&amp;nbsp;есть обеспечивают выбор одного варианта&lt;br />
из&amp;nbsp;числа возможных. Сombobox &amp;ndash; более компактное представление чем&amp;nbsp;Listbox, но&amp;nbsp;одновременно выдно только один вариант, чтобы просмотреть остальные &amp;ndash; надо вызвать выпадающий список. &lt;br />
Список вариантов предоставляет бакенд (вызываемый с&amp;nbsp;action list). Параметр &lt;tt>enumref&lt;/tt> &amp;ndash; адрес к&amp;nbsp;которому надо обращаться к&amp;nbsp;бакенду за&amp;nbsp;списком.&lt;br />
Пример для&amp;nbsp;qt:&lt;br />
(combobox enumref &amp;laquo;/x11/avail_resolution&amp;raquo;) ;;компактное представление списка&lt;br />
(listbox enumref &amp;laquo;/x11/avail_driver&amp;raquo;) ;; развёрнутое представление списка&lt;br />
Текущий выбранный вариант &amp;ndash; параметр &lt;tt>value&lt;/tt>.&lt;br />
Пример для&amp;nbsp;html:&lt;br />
&amp;lt;select name="item1" enumref="/x11/avail_resolution"/&amp;gt; &amp;lt;!-- компактное представление списка &lt;s>&amp;gt;&lt;br />
&amp;lt;select name="item1" size="10" enumref="/x11/avail_driver"/&amp;gt; &amp;lt;!&lt;/s> развёрнутое представление списка --&amp;gt;&lt;br />
Размер списка в&amp;nbsp;строках &amp;ndash; параметр &lt;tt>size&lt;/tt>. Обратите внимание на&amp;nbsp;написание тега в&amp;nbsp;стиле xml, а&amp;nbsp;не html. &lt;br />
Пример бакенда на&amp;nbsp;shell:&lt;br />
...&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">list)&lt;br />
&lt;div class="indent">write_enum_item &amp;#8220;item1&amp;#8221; &amp;#8220;label1&amp;#8221;&lt;br />
write_enum_item &amp;#8220;item2&amp;#8221; &amp;#8220;label2&amp;#8221;&lt;br />
;;&lt;br />
&lt;/div>read)&lt;br />
&lt;div class="indent">write_string_param &amp;#8220;name&amp;#8221; &amp;#8220;item1&amp;#8221;&lt;br />
;;&lt;br />
&lt;/div>write)&lt;br />
&lt;div class="indent">echo "$in_name"&amp;gt;zzz&lt;br />
;;&lt;/div>&lt;/div>&lt;/div>&lt;/div>
...&lt;br />
Функция write_enum_item принимает два&amp;nbsp;параметра:&lt;br />
&lt;ul>&lt;li> вариант &amp;ndash; то&amp;nbsp;ключевое имя, которым пользуется бакенд
&lt;/li>&lt;li> название варианта (необязательно) &amp;ndash; то&amp;nbsp;описание, которое будет выведено пользователю (возможно с&amp;nbsp;переводом)&lt;/li>&lt;/ul>
Если функция вызвана без&amp;nbsp;параметра, то&amp;nbsp;она начинает со&amp;nbsp;стандартного ввода строки с&amp;nbsp;одним или&amp;nbsp;более значениями, разделённых стандартным разделителем (переменная IFS). Первое и&amp;nbsp;второе значение интерпретируются также: вариант и&amp;nbsp;его название.&lt;a name="h8457-9">&lt;/a>&lt;h4>checklistbox&lt;/h4>
Также как&amp;nbsp;и&amp;nbsp;listbox представляет атрибут перечислимого типа, но&amp;nbsp;уже с&amp;nbsp;возможностью множественного выбора. Для&amp;nbsp;заполнения списка используется тот&amp;nbsp;же&amp;nbsp;параметр &lt;tt>enumref&lt;/tt>. Для&amp;nbsp;&amp;laquo;массового&amp;raquo; выделения бакенд должен выводить список имён, в&amp;nbsp;бакенд результат возвращается также в&amp;nbsp;виде списка.  Список представляется в&amp;nbsp;виде строки с&amp;nbsp;разделителем &amp;#8220;;", например &amp;#8220;a;b;c;d&amp;#8221;.&lt;br />
Пример для&amp;nbsp;qt:&lt;br />
(checklistbox enumref &amp;laquo;/dovecot/avail_mechanisms&amp;raquo;)&lt;br />
Текущий набор выделенных элементов &amp;ndash; параметр &lt;tt>value&lt;/tt>.&lt;br />
Пример для&amp;nbsp;html:&lt;br />
&amp;lt;table class="alterator-checklistbox" enumref="/dovecot/avail_mechanisms" name="mechanisms" /&amp;gt;&lt;a name="h8457-10">&lt;/a>&lt;h4>edit&lt;/h4>
Представляет атрибут строкового типа.&lt;br />
Пример для&amp;nbsp;qt:&lt;br />
(edit)&lt;br />
Для&amp;nbsp;изменения и&amp;nbsp;получения значения служит атрибут &lt;tt>value&lt;/tt>.&lt;br />
Пример для&amp;nbsp;html:&lt;br />
&amp;lt;input type="text" class="text" name="name1"/&amp;gt;&lt;br />
Пример бакенда на&amp;nbsp;shell:&lt;br />
...&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">read)&lt;br />
&lt;div class="indent">write_string_param name1 &amp;#8220;value1&amp;#8221;&lt;br />
;;&lt;br />
&lt;/div>write)&lt;br />
&lt;div class="indent"> echo $in_name1" &amp;gt;zzz&lt;br />
&lt;/div> ;;&lt;/div>&lt;/div>&lt;/div>
..&lt;br />
Функция write_string_param принимает два&amp;nbsp;атрибута: имя&amp;nbsp;и&amp;nbsp;значение.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-06-23 13:03:36</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module/show?time=2008-06-23+13%3A03%3A36</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;Alterator&amp;nbsp;/&amp;nbsp;module&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module?time=2008-06-23+13%3A03%3A36">2008-06-23 13:03:36&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module?time=2008-06-23+13%3A05%3A49">2008-06-23 13:05:49&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;!--notypo-->{{Include page="module/backend"}}&lt;!--/notypo-->&lt;br />
&lt;!--notypo-->{{Include page="module/interface"}}&lt;!--/notypo-->&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-06-23 13:02:53</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module/show?time=2008-06-23+13%3A02%3A53</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;Alterator&amp;nbsp;/&amp;nbsp;module&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module?time=2008-06-23+13%3A02%3A53">2008-06-23 13:02:53&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module?time=2008-06-23+13%3A03%3A36">2008-06-23 13:03:36&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">&lt;a name="h8457-1">&lt;/a>&lt;h2>Отладка модулей&lt;/h2>&lt;a name="h8457-2">&lt;/a>&lt;h3>Работа с&amp;nbsp;модулем без&amp;nbsp;установки в&amp;nbsp;систему&lt;/h3>
Все&amp;nbsp;компоненты alterator используют особые переменные среды для&amp;nbsp;определения местоположения основных рабочих каталогов:&lt;br />
&lt;ul>&lt;li> &lt;strong>ALTERATOR_LIBDIR&lt;/strong> &amp;mdash; бакенды и&amp;nbsp;иные архитектурно-зависимые компоненты. Значение по&amp;nbsp;умолчанию &amp;ndash; &lt;em>/usr/lib/alterator&lt;/em>
&lt;/li>&lt;li> &lt;strong>ALTERATOR_DATADIR&lt;/strong> &amp;mdash; описания интерфейсов и&amp;nbsp;иные архитектурно-независимые компоненты. Значение по&amp;nbsp;умолчанию &amp;ndash; &lt;em>/usr/share/alterator&lt;/em>.&lt;/li>&lt;/ul>
Для&amp;nbsp;обоих переменных допустимо перечисление нескольких каталогов через двоеточие &amp;ndash; в&amp;nbsp;этом случае поиск производится последовательно в&amp;nbsp;порядке указания имён. Например, если &lt;strong>ALTERATOR_DATADIR="/a:/b"&lt;/strong>, то&amp;nbsp;файл &lt;em>ui.scm&lt;/em> будет искаться сначала по&amp;nbsp;адресу &lt;em>/a/ui.scm&lt;/em>, а&amp;nbsp;потом &lt;em>/b/ui.scm&lt;/em>.&lt;br />
Для&amp;nbsp;удобства использования у&amp;nbsp;утилит командной строки alterator существует ключ '-l', который добавляет текущий каталог в&amp;nbsp;начало списка каталогов в&amp;nbsp;ALTERATOR_LIBDIR и&amp;nbsp;ALTERATOR_DATADIR.&lt;br />
Таким образом, находясь в&amp;nbsp;модуле, можно отлаживать и&amp;nbsp;запускать его&amp;nbsp;не&amp;nbsp;устанавливая в&amp;nbsp;систему.&lt;br />
&lt;ul>&lt;li> &lt;strong>командная строка&lt;/strong>: &lt;em>alterator-cmdline -l &amp;lt;запрос&amp;gt;&lt;/em> 
&lt;/li>&lt;li> &lt;strong>GUI интерфейс&lt;/strong>: &lt;em>/usr/sbin/alterator-standalone -l &amp;lt;имя&amp;gt;.desktop&lt;/em>
&lt;/li>&lt;li> &lt;strong>HTML интерфейс&lt;/strong>: &lt;em>/usr/sbin/configd -l&lt;/em>&lt;/li>&lt;/ul>
Во&amp;nbsp;последнем варианте сервер configd не&amp;nbsp;будет отцепляться от&amp;nbsp;терминала и&amp;nbsp;будет работать с&amp;nbsp;локальными бакендами и&amp;nbsp;файлами шаблонов. Для&amp;nbsp;старой системы шаблонов (template-*), дополнительно существует переменная &lt;strong>ALTERATOR_HTMLDIR&lt;/strong>, которая модифицируется при&amp;nbsp;использовании '-l' аналогично остальным переменным.&lt;br />
alterator-standalone лучше всего запускать с&amp;nbsp;указанием /usr/sbin, поскольку утилита consolehelper (/usr/bin/alterator-standalone ссылается на&amp;nbsp;неё) может менять состав переменных окружения.&lt;br />
Обратите также внимание на&amp;nbsp;то, что&amp;nbsp;с&amp;nbsp;локальными desktop-файлами будет работать только alterator-standalone. Поэтому при&amp;nbsp;создании нового модуля вы&amp;nbsp;не увидите его&amp;nbsp;в&amp;nbsp;общем меню центра управления.&lt;a name="h8457-3">&lt;/a>&lt;h3>Интерфейс командной строки&lt;/h3>
Утилита alterator-cmdline служит для&amp;nbsp;выполнения запросов к&amp;nbsp;бакендам из&amp;nbsp;интерфейса командой строки и&amp;nbsp;может с&amp;nbsp;успехом использоваться для&amp;nbsp;написания скриптов. Параметр -l позволяет работать с&amp;nbsp;локальными бакендами, а&amp;nbsp;параметр -k указывает выводить значения конкретного параметра.&lt;br />
Пример:&lt;br />
# alterator-cmdline /users/stas action read&lt;br />
gecos:Stanislav I. Ievlev&lt;br />
home:/home/stas&lt;br />
shell:/bin/bash&lt;br />
allow_su:#t&lt;br />
# alterator-cmdline /users/stas action read -k home&lt;br />
/home/stas&lt;br />
#alterator-cmdline /net-eth action list &lt;br />
name:eth0&lt;br />
label:eth0&lt;br />
name:eth1&lt;br />
label:eth1&lt;br />
# alterator-cmdline /net-eth action list -k name&lt;br />
eth0&lt;br />
eth1&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-06-23 12:59:34</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module/show?time=2008-06-23+12%3A59%3A34</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;Alterator&amp;nbsp;/&amp;nbsp;module&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module?time=2008-06-23+12%3A59%3A34">2008-06-23 12:59:34&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module?time=2008-06-23+13%3A02%3A53">2008-06-23 13:02:53&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;!--notypo-->{{Include page="module/debug"}}&lt;!--/notypo-->&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2008-06-17 19:07:22</title>
<link>http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module/show?time=2008-06-17+19%3A07%3A22</link>
<description>&lt;div class="pageBefore">&lt;img src="http://freesource.info/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module&amp;" class="">/Alt&amp;nbsp;Linux&amp;nbsp;/&amp;nbsp;Sisyphus&amp;nbsp;/&amp;nbsp;Alterator&amp;nbsp;/&amp;nbsp;module&lt;/a> за &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module?time=2008-06-17+19%3A07%3A22">2008-06-17 19:07:22&lt;/a> и &lt;a href="http://freesource.info/wiki/AltLinux/Sisyphus/Alterator/module?time=2008-06-23+12%3A59%3A34">2008-06-23 12:59:34&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h8457-1">&lt;/a>&lt;h3>Работа с&amp;nbsp;модулем без&amp;nbsp;установки в&amp;nbsp;систему&lt;/h3>
Все&amp;nbsp;компоненты alterator используют особые переменные среды для&amp;nbsp;определения местоположения основных рабочих каталогов:&lt;br />
&lt;ul>&lt;li> &lt;strong>ALTERATOR_LIBDIR&lt;/strong> &amp;mdash; бакенды и&amp;nbsp;иные архитектурно-зависимые компоненты. Значение по&amp;nbsp;умолчанию &amp;ndash; &lt;em>/usr/lib/alterator&lt;/em>
&lt;/li>&lt;li> &lt;strong>ALTERATOR_DATADIR&lt;/strong> &amp;mdash; описания интерфейсов и&amp;nbsp;иные архитектурно-независимые компоненты. Значение по&amp;nbsp;умолчанию &amp;ndash; &lt;em>/usr/share/alterator&lt;/em>.&lt;/li>&lt;/ul>
Для&amp;nbsp;обоих переменных допустимо перечисление нескольких каталогов через двоеточие &amp;ndash; в&amp;nbsp;этом случае поиск производится последовательно в&amp;nbsp;порядке указания имён. Например, если &lt;strong>ALTERATOR_DATADIR="/a:/b"&lt;/strong>, то&amp;nbsp;файл &lt;em>ui.scm&lt;/em> будет искаться сначала по&amp;nbsp;адресу &lt;em>/a/ui.scm&lt;/em>, а&amp;nbsp;потом &lt;em>/b/ui.scm&lt;/em>.&lt;br />
Для&amp;nbsp;удобства использования у&amp;nbsp;утилит командной строки alterator существует ключ '-l', который добавляет текущий каталог в&amp;nbsp;начало списка каталогов в&amp;nbsp;ALTERATOR_LIBDIR и&amp;nbsp;ALTERATOR_DATADIR.&lt;br />
Таким образом, находясь в&amp;nbsp;модуле, можно отлаживать и&amp;nbsp;запускать его&amp;nbsp;не&amp;nbsp;устанавливая в&amp;nbsp;систему.&lt;br />
&lt;ul>&lt;li> &lt;strong>командная строка&lt;/strong>: &lt;em>alterator-cmdline -l &amp;lt;запрос&amp;gt;&lt;/em> 
&lt;/li>&lt;li> &lt;strong>GUI интерфейс&lt;/strong>: &lt;em>/usr/sbin/alterator-standalone -l &amp;lt;имя&amp;gt;.desktop&lt;/em>
&lt;/li>&lt;li> &lt;strong>HTML интерфейс&lt;/strong>: &lt;em>/usr/sbin/configd -l&lt;/em>&lt;/li>&lt;/ul>
Во&amp;nbsp;последнем варианте сервер configd не&amp;nbsp;будет отцепляться от&amp;nbsp;терминала и&amp;nbsp;будет работать с&amp;nbsp;локальными бакендами и&amp;nbsp;файлами шаблонов. Для&amp;nbsp;старой системы шаблонов (template-*), дополнительно существует переменная &lt;strong>ALTERATOR_HTMLDIR&lt;/strong>, которая модифицируется при&amp;nbsp;использовании '-l' аналогично остальным переменным.&lt;br />
alterator-standalone лучше всего запускать с&amp;nbsp;указанием /usr/sbin, поскольку утилита consolehelper (/usr/bin/alterator-standalone ссылается на&amp;nbsp;неё) может менять состав переменных окружения.&lt;br />
Обратите также внимание на&amp;nbsp;то, что&amp;nbsp;с&amp;nbsp;локальными desktop-файлами будет работать только alterator-standalone. Поэтому при&amp;nbsp;создании нового модуля вы&amp;nbsp;не увидите его&amp;nbsp;в&amp;nbsp;общем меню центра управления.&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
