Документация ispmanager 6 business

/
/
/
Пример плагина. Смена директории домена

Пример плагина. Смена директории домена

 

На этой странице описан пример, как добавить на форму редактирования 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, на основе которой формируется форма. За поле "корневая директория" отвечает элемент . На этапе редактирования формы еще не определен в xml, поэтому необходимо его добавить средствами плагина в xml. Для редактирования xml в bash я использую утилиту xmlstarlet.

Установите права для обработчика следующими командами:

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