Написание пакета для PFSense: Элементы управления

imageВ предыдущей статье был рассмотрен процесс создания простого GUI пакета для pfSense. Пакет содержал одно единственное поле с элементом управления типа checkbox, описанное в разделе fields XML файла пакета.

Перед продолжением необходимо дать некоторые пояснения по структуре раздела fields. В этом разделе содержится описание полей формы текущей страницы GUI. Каждое поле описывается в узле field и содержит элементы:

fielddescr — название поля, выводится в левой части формы перед элементом управления; fieldname — имя поля, под которым оно будет доступно в системе при обработке введенных данных; description — комментарий, описывающий данное поле, выводится под элементом управления; type — тип элемента управления, используемого в данном поле. На рисунке ниже показано соответствие элементов XML структуры пакета и элементов графического интерфейса.image

Элементы управленияРассмотрим простые элементы управления графического интерфейса пакетов pfSense: сheckbox input password textarea select interfaces_selection Элемент CHECKBOXПредставляет собой обычный «флажок», позволяющий пользователю возможность сделать выбор да/нет. Enable enable Check this for enable package. checkbox Элемент INPUTПредставляет собой простое текстовое поле для ввода однострочной текстовой информации. Параметр size позволяет задать ширину окна этого элемента.

Login pkglogin Enter package login. input 30 Элемент PASSWORDЯвляется разновидностью элемента input и служит для ввода пароля в WEB форме пакета. Но введенные данные здесь отображаются в виде звёздочек.

Password pkgpass Enter package password. password 30 Элемент TEXTAREAПредставляет собой многострочное текстовое поле. Кроме стандартных опций XML стуктуры поля содержит в описании параметры cols и rows, задающие размеры элемента в колоноках и строках соответственно. Имеется также параметр encoding, указывающий в какой кодировке сохранять введенные пользователем данные. Обычно это кодировка Base64.

Comments pkgcomments Enter you coments here. textarea 60 3 base64 Элемент SELECTПредставляет собой выпадающий список значений в виде combo box, задаваемых в секции options. Модификатор multiple превращает обычный combo box в элемент list box, позволяющий выбирать несколько значений одновременно (нажатием Control + Лев. клик). Параметр default_value задает значение по умолчанию из списка в секции options.

Age pkgage Choose your age. select adl Элемент INTERFACES_SELECTIONЯвляется специальной разновидностью элемента select. В этот список выводятся все основные сетевые интерфейсы pfSense. Также как и в элементе select здесь доступны дополнительные опции multiple и default_value.

Interface pkginterface Select interface (s) for using in the package. Use 'Ctrl' + L_click for multiple selection. interfaces_selection lan Собрав приведенные выше описания элементов управления в один XML файл получим следующую форму Web интерфейса: image

Для того, чтобы эта форма выполняла какие-либо действия, необходимо задать обработчики событий и написать соответствующий PHP код. Об этом речь пойдет в следующей статье.

Исходный код XML файла к статье. mypkg My First Package Test 0.1 /usr/local/pkg/mypkg.inc My Package /pkg_edit.php? xml=mypkg.xml Enable enable Check this for enable package. checkbox Interface pkginterface Select interface (s) for using in the package. Use 'Ctrl' + L_click for multiple selection. interfaces_selection lan Login pkglogin Enter package login. input 30 Password pkgpass Enter package password. password 30 Comments pkgcomments Enter you coments here. textarea 60 3 base64 Age pkgage Choose your age. select adl PS: Прошу прощения у коллег за такое дробление материала, но не хочется делать длинные статьи.

© Habrahabr.ru