Пример плагина. Смена директории домена
На этой странице описан пример, как добавить на форму редактирования web домена checkbox, при активации которого будет меняться автоматически домашняя директория домена с www/domain.name на www/pub.
XML описание плагина
# cat /usr/local/mgr5/etc/xml/ispmgr_mod_example.xml
<?xml version="1.0" encoding="UTF-8"?>
<mgrdata>
<handler name="*dir*" type="*xml*"> // dir — имя обработчика, который будет вызываться. Тип указываем xml
<event name="*webdomain.edit*" *after="yes"* />
// так как нам нужен плагин на редактирование веб домена, соответственно в event name указываем функцию webdomain.edit
// для того, чтобы плагин отрабатывал после изменения формы, ставим тип after, а не before
</handler>
<metadata name="webdomain.edit" type="form">
<form>
<page name="features">
<field name="cms" experience="expert">
<input type="checkbox" name="cms" *setvalues="yes"*> // для checkbox ставим setvalues="yes" для того, чтобы плагин срабатывал сразу при изменении значения checkbox'a
</input>
</field>
</page>
</form>
</metadata>
<lang name="ru">
<messages name="webdomain.edit">
<msg name="cms">Example</msg> // Указываем название checkbox'a
<msg name="hint_cms">This is an example</msg> // Подсказка
</messages>
</lang>
</mgrdata>
XML-файл должен иметь права на чтение и запись для пользователя root.
Обработчик
# cat /usr/local/mgr5/addon/dir
#!/bin/bash
if [ "$PARAM_cms" = "on" ]
then
echo $(cat | sed 's/<\/doc>/<home>www\/pub<\/home><\/doc>/g')
else
cat
fi
Чтобы при редактировании формы изменить значения поля "корневая директория", необходимо изменить xml, на основе которой формируется форма. За поле "корневая директория" отвечает элемент
Установите права для обработчика следующими командами:
chmod 750 /usr/local/mgr5/addon/<имя_файла_обработчика>
chown 0:0 /usr/local/mgr5/addon/<имя_файла_обработчика>
После того, как создан xml файл с описанием плагина и создан файл обработчика, необходимо перезапустить панель командой
/usr/local/mgr5/sbin/mgrctl -m ispmgr exit
Результат
На форме редактирования web домена присутствует дополнительный checkbox
При изменении значения checkbox'a, домашняя директория домена меняется на www/pub