Child pages
  • Модули системы

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


В данном разделе будет описано как создавать собственные модули для системы Abills.


Структурная схема системы.


Начало создания модуля.

Все модули системы находятся в папке /usr/abills/Abills/modules/

Название модуля лучше всего делать с заглавной буквы.

В каталоге модуля обязательно должны находится 2 файла: webinterface и config.

webinterface - Библиотека функций модуля

config            Конфигурационный файл модуля


Файл config

В данном файле можно объявлять следующие переменные которые влияют на работу и отображение модуля в системе.

  • %FUNCTIONS_LIST  Список  список доступных функций в интерфейсе администратора. Каждая функция объявляется отдельной переменной хеш масива и имеет следующую структуру. Рассмотрим на примере: 


Рассмотрим пример 

"12:10:2 вложенная во вторую функцию:second_second_function:UID" => 5,


ПараметрОписание
12Номер функции в меню в данном модуле
10Номер родительской функции. Если 0 (ноль) функция является корневой. Если значение больше нуля то функция располагается в меню под родительской функцией
2 вложенная во вторую функцию
Название функции в меню панели управления. Можно использовать %lang переменные для локализации.
second_second_function
Название фукции которая выполняется при нажатии соответственного меню
UIDДополнительные параметры. Они могут быть и не объявлены. Если объявляются тогда меню показывается только если данные доп параметры присутствуют HTTP запросе. 
Например ели объявлен параметр UID то данная функция будет отображаться только если в запросе он присутствует. Пример запроса: http://your.host:9443/index.cgi?UID=15
5Номер корневого каталога в котором разместить меню. Номера корневых меню: 
1 - Клиенты 
2 - Оплаты 
3 - Снятие денег 
4 - Отчёт 
5 - Настройка 
6 - Мониторинг 
7 - Поиск 
8 - Обслуживание 
9 - Профиль



Code Block
languageperl
titleПример файла config
#Iner_ID : Main or Sub or if -1 user menu func list
%FUNCTIONS_LIST = (
  "01:0:$_ICARDS:cards_mainГлавное меню модуля:null:"           => 5,
                 "04:1:BRUTE FORCE:cards_bruteforce:"   => 5,
                 "05"02:1:$_ICARDS:cards_mainГлавная функция:main_function:"            =>  5,
              => 5,
  "0610:1:$_DILLERS $_TARIF_PLANS:cards_dillers_tp:Вторая функция:null"     => 5,
                 "06:5:$_ADD:cards_add:"                => 5,
                 "08:0:$_ICARDS:cards_user_payment:UID" => 2,
                 "09:0:$_ICARDS:cards_report"11:10:1 вложенная во вторую функцию:second_main_function:"          => 45,
                 "11:8:$_DILLERS:cards_report_dillers:" => 4,
                 "12:0:$_DILLERS:cards_dillers_list:"   => 1,
                 "13:0:$_DILLERS:cards_diller:UID"      => 15,
                 12:10:2 вложенная во вторую функцию:second_second_function:UID" => 5,
);

%USER_FUNCTION_LIST = ("01:0:$_ICARDS:cards_user_payment:"  => 0,
                     );

%RESELLER_FUNCTION_LIST  = ("01:0:$_ICARDS:cards_reseller_face:defaultindex"  => 0,
                          "02:1:$_REPORTS:cards_diller_stats:"              => 1 
                          );

%PERIODIC = (daily   => [ 'cards_bruteforce_clean' ] );