XML вывод

В интерфейсе пользователя предусмотрено вывод информации не только в формате HTML, но и в формате XML. Вывод данных в XML предоставляет более широкие возможности для унификации интерфейса и работы с ним при помощи внешних програм (Клиентская программа AMON использует именно этот способ взаимодействия).

Для преобразования вывода страницы в формат XML нужно в запрос к странице включить следующий параметр xml=1.

Пример:

https://demo.abills.net.ua:9443/index.cgi?xml=1

При вводе данных используются стандартные GET/POST HTTP запросы.

Пример информационной странички

<?xml version="1.0"  encoding="windows-1251" ?>
<INFO name="">

<BODY>
  <INFO name="">
   <LOGIN>testuser</LOGIN>
   <DATE>2008-06-06</DATE>
   <TIME>10:57:43</TIME>
   <MENU>
     <SID>3JXHUvBP3SBS8b3T</SID>
     <MENU NAME="form_passwd" ID="17" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="Password" TYPE="MAIN"/>
     <MENU NAME="form_info" ID="30" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="User Information" TYPE="MAIN"/>
     <MENU NAME="dv_user_info" ID="31" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="Dialup / VPN" TYPE="MAIN"/>
     <MENU NAME="dv_user_stats" ID="32" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="Statistics" TYPE="SUB" PARENT="31"/>
     <MENU NAME="dv_user_chg_tp" ID="33" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="Tarif plan" TYPE="SUB" PARENT="31"/>
     <MENU NAME="voip_user_info" ID="34" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="VoIP" TYPE="MAIN"/>
   </MENU>
   <BODY>
<INFO name="">
       <TP_ID>1</TP_ID>
       <TP_NAME>one</TP_NAME>
       <TP_CHANGE>
       <BUTTON VALUE="index=33&sid=wi7kw6NsLmYCPgGj">Change</BUTTON>
       </TP_CHANGE>
       <SIMULTANEONSLY>0</SIMULTANEONSLY>
       <IP>0.0.0.0</IP>
       <NETMASK>255.255.255.255</NETMASK>
       <SPEED>0</SPEED>
       <CID/>
       <STATUS>ENABLE</STATUS>
       <ABON_DATE/>
     </INFO>
   </BODY>
</INFO>
</BODY>
</INFO>

Описание констант

<MENU> - Отображает список доступных функций
<MENU NAME=«form_passwd» ID=«17» EX_ARGS=«&sid=3JXHUvBP3SBS8b3T» DESCRIBE=«Password» TYPE=«MAIN»/> - Описание ссылки на меню

NAME Название доступной функции
ID Идентификатор меню. Используется в HTTP запросе в переменной index= для перехода на пункты меню
EX_ARGS Дополнительный аргумент. В большенстве случаев это только ИД сессии
TYPE Тип. Основная или зависимая
DESCRIBE Описание ссылки на языке интерфейса

<INFO name=«»>…</INFO> - Структура отображающая формы ввода/вывода информации

<MESSAGE TYPE=«err» CAPTION=«Ошибка»>Неправильный пароль</MESSAGE> - сообщение системы.

TYPE тип сообщения
CAPTION Заголовок

Пример атворизации пользователя

Для авторизации пользователя нужно передать следующие данные:

https://yuor.host:9443/index.cgi?user=username&passwd=user_password&xml=1

При успешной атворизации система выведет меню пользователя:

<?xml version="1.0"  encoding="windows-1251" ?>
<INFO name="">

<BODY>
  <INFO name="">
   <LOGIN>testuser</LOGIN>
   <DATE>2008-06-06</DATE>
   <TIME>10:57:43</TIME>
   <MENU>
     <SID>3JXHUvBP3SBS8b3T</SID>
     <MENU NAME="form_passwd" ID="17" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="Password" TYPE="MAIN"/>
     <MENU NAME="form_info" ID="30" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="User Information" TYPE="MAIN"/>
     <MENU NAME="dv_user_info" ID="31" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="Dialup / VPN" TYPE="MAIN"/>
     <MENU NAME="dv_user_stats" ID="32" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="Statistics" TYPE="SUB" PARENT="31"/>
     <MENU NAME="dv_user_chg_tp" ID="33" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="Tarif plan" TYPE="SUB" PARENT="31"/>
     <MENU NAME="voip_user_info" ID="34" EX_ARGS="&sid=3JXHUvBP3SBS8b3T" DESCRIBE="VoIP" TYPE="MAIN"/>
   </MENU>

Если авторизация прошла неудачно будет выведена сообщение об ошибке
Пример:

<?xml version="1.0"  encoding="windows-1251" ?>
<INFO name="">
  <BODY>
   <MESSAGE TYPE="err" CAPTION="Ошибка">Неправильный пароль</MESSAGE>
  <INFO name="">
    <SEL_LANGUAGE>
      <select name="language" onChange="selectLanguage()">
        <option value="french">French</option>
        <option value="russian-koi8-r">Russian KOI8-r</option>
        <option value="russian" selected="1">Русский</option>
        <option value="ukraine">Українська</option>
        <option value="bulgarian">Болгарска</option>
        <option value="english">English</option>
      </select>
    </SEL_LANGUAGE>
  </INFO>
 </BODY>
</INFO>