Alterator/module/types

Материал из ALT Linux Wiki

(Различия между версиями)
Перейти к: навигация, поиск
(Изменения в интерфейсе)
(Типы параметров)
Строка 1: Строка 1:
-
=== Типы параметров ===
+
=== Автоматическая проверка данных ===
-
Иногда необходимо производить валидацию введённых пользователем данных. Можно это делать в бакенде, но гораздо удобнее назначить параметрам типы. В этом случае проверка будет происходить автоматически до передачи данных в бакенд.
+
Иногда необходимо производить валидацию введённых пользователем данных. Можно это делать вручную в бакенде, но гораздо удобнее воспользоваться автоматической проверкой типов, выполняемой альтератором при передаче данных в бакенд.
==== Изменения в бакенде ====
==== Изменения в бакенде ====
-
Делается это следующим образом. В бакенде добавляется ответ на запрос типа "type". В ответе перечисляются параметры, с которыми работает бакенд, и их типы. Для формирования правильного ответа стоит воспользоваться стандартной библиотекой, например для бакенда на shell объявление типов будет выглядить следующим образом.
+
Делается это следующим образом. В бакенде добавляется ответ на запрос "type". В нем перечисляются параметры, с которыми работает бакенд, и их типы. Для формирования правильного ответа стоит воспользоваться стандартной библиотекой, например для бакенда на shell объявление типов будет выглядить следующим образом.
<pre>
<pre>
Строка 57: Строка 57:
...
...
</pre>
</pre>
 +
 +
==== Список типов ====
 +
{| class="tiles"
 +
|-
 +
!название типа || комментарии
 +
|-
 +
|boolean||
 +
|-
 +
|date||
 +
|-
 +
|hostname-list||
 +
|-
 +
|hostname||
 +
|-
 +
|ipv4-address-list||
 +
|-
 +
|ipv4-address||
 +
|-
 +
|ipv4-network||
 +
|-
 +
|iso-3166-alpha-2||
 +
|-
 +
|system-account-name||
 +
|-
 +
|tcp-port||
 +
|-
 +
|time||
 +
|}

Версия 17:54, 24 октября 2008

Содержание

Автоматическая проверка данных

Иногда необходимо производить валидацию введённых пользователем данных. Можно это делать вручную в бакенде, но гораздо удобнее воспользоваться автоматической проверкой типов, выполняемой альтератором при передаче данных в бакенд.


Изменения в бакенде

Делается это следующим образом. В бакенде добавляется ответ на запрос "type". В нем перечисляются параметры, с которыми работает бакенд, и их типы. Для формирования правильного ответа стоит воспользоваться стандартной библиотекой, например для бакенда на shell объявление типов будет выглядить следующим образом.

. alterator-sh-functions

on_message()
{
 case "$in_action" in
   type)
     write_type_item a ipv4-address
     write_type_item b tcp-port
     ;;
   read)
   ...
 esac
}

В примере выше объявлено что параметр 'a' будет иметь тип 'IP адрес', 'b' - 'TCP порт' и теперь пользователь не сможет передать в бакенд в качестве 'a' что-либо отличное IP адреса и в качестве 'b' что-либо отличное от целого числа находящегося в определённом диапазоне.

Изменения в интерфейсе

На этом возможности системы типов не исчерпываются. Предположим, что пользователь ввёл-таки неправильное значение в поле, соотвествующее параметру 'a'. Он увидит следующее сообщение об ошибке:

a: недопустимый IP-адрес

Однако никакого 'a' на его экране не наблюдается. В каком именно поле случилась ошибка?

Система типов alterator в состоянии справиться с этим. Для этого всего-лишь необходимо, чтобы у названия поля был задан атрибут 'name' содержащий имя параметра бакенда, которому соответвует это поле.

Пример для qt:

...
  (label text "Field" name "a")
  (edit name "a")
...

Теперь в случае ошибки, пользователь увидит следующее сообщение:

 Field: недопустимый IP-адрес

Аналогичный пример для html:

....
   <span name="a" translate="_">Field:</span>
   <input type="text" name="a"/>
...

Список типов

название типа комментарии
boolean
date
hostname-list
hostname
ipv4-address-list
ipv4-address
ipv4-network
iso-3166-alpha-2
system-account-name
tcp-port
time
 
Личные инструменты