Изменение интерфейса
Материал из ISPWiki
Рассмотрим пример скрытия различных элементов интерфейса от пользователя.
Постановка задачи
- Имеем панель управления BILLmanager
- Мы хотим убрать из меню пункт про договоры (например, потому что услуги предоставляются на основе публичной оферты)
- Убрать из настроек плательщика страницу с данными для заключения договора
- Убрать в списке тикетов колонки "Создано" и "Задержка", например, потому что вы считаете их бесполезными и загромождающими интерфейс.
Действия
1) Создаем файл описания плагина /usr/local/ispmgr/etc/billmgr_mod_hidecontractandtunesupport.xml со следующим содержимым
<?xml version="1.0" encoding="UTF-8"?> <mgrdata> <mainmenu level="5"> <node name="customer"> <node name="contract" if="myhide"/> </node> </mainmenu> <metadata name="profile.edit"> <form> <page name="contract" if="myhide"/> </form> </metadata> <metadata name="clienttickets"> <coldata> <col name="delay" if="myhide"/> <col name="user" if="myhide"/> </coldata> </metadata> </mgrdata>
Пояснения
В данном примере везде используется возможность указать элементам интерфейса при каких условиях их следует отображать, атрибут if. Прочитать о нем подробнее можно в статье XML, рассказывающей о правилах xml-описаний интерфейсов.
Мы задали невыполнимое условие "myhide", что привело к скрытию элементов. Чтобы указать на какой именно элемент нужно добавить атрибут if, необходимо знать структуру XML-описания интерфейса (можно посмотреть в файле /usr/local/ispmgr/etc/billmgr.xml), а так же правила слияния XML
В конце мы перезапустили панель управления, для того чтобы созданный нами файл billmgr_mod_hidecontractandtunesupport.xml начал обрабатываться.
Смотрите также дополнительный пример
