Седат Игдеджи, Sedat Igdeci, Cedat Igdeci, Bekir Igdeci, Lidiya Igdeci, Elizaveta Igdeci

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

На этой странице описан пример, как добавить на форму редактирования 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>

Обработчик

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

После того, как создан xml файл с описанием плагина и создан файл обработчика, необходимо перезапустить панель командой

/usr/local/mgr5/sbin/mgrctl -m ispmgr exit

Результат

На форме редактирвоания web домена присутствует дополнительный checkbox

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

При изменении значения checkbox’a, домашняя директория домена меняется на www/pub

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

info@mustanhost.by
8.00-20.00
Седат Игдеджи, Sedat Igdeci, Cedat Igdeci, Bekir Igdeci, Lidiya Igdeci, Elizaveta Igdeci