Child pages
  • Модули системы
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 26 Next »


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

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


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

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

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

Название модуля модуля не должно быть длинее 14 символов


В каталоге модуля обязательно должны находится 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 - Профиль


Пример заполнения меню в админ. кабинете
%FUNCTIONS_LIST = (
  "01:0:Главное меню модуля:null:"                                 => 5,
  "02:1:Главная функция:main_function:"                            => 5,
  "10:1:Вторая функция:null"                                       => 5,
  "11:10:1 вложенная во вторую функцию:second_main_function:"      => 5,
  "12:10:2 вложенная во вторую функцию:second_second_function:UID" => 5,
);

%USER_FUNCTION_LISTСписок функций личного кабинета пользователя. Функции формируются за тем же правилом что и функции интерфейса администратора.

Пример заполнения меню в клиентском кабинете
%USER_FUNCTION_LIST = (
  "01:0:Главное меню в клиентском кабинете:null:"  => 0,
  "02:1:Главная функция в меню:client_main_function:"  => 1,
);

%PERIODIC - Список функций которые используются в периодических процессах системы. Они вызываются из программы /usr/abills/libexec/periodic.


В системе доступно несколько видов функций:

ТипОписание
dailyДневные периодические функции.
montlyМесячные периодические функции.
reportsФункции составления дневные отчётов.


Периодические функции
%PERIODIC = (
daily   => [ 'daily_periodic_function' ],
montly  => [ 'monthly_periodic_function' ],
reports => [ 'reports_function' ],
);

Пример работы с файлом webinterface

В данном файле должны располагаться функции модуля, которые вы прописали в файле config.

Пример webinterface для config-а который создали выше
use strict;
use warnings;



#**********************************************************
=head2 main_function() - Описание функции

=cut
#**********************************************************
sub main_function {
  my ($attr) = @_;
  return 1;
}

#**********************************************************
=head2 second_main_function() - Описание функции

=cut
#**********************************************************
sub second_main_function {
  my ($attr) = @_;
  return 1;
}

#**********************************************************
=head2 second_second_function() - Описание функции

=cut
#**********************************************************
sub second_second_function {
  my ($attr) = @_;
  return 1;
}

#**********************************************************
=head2 client_main_function() - Описание функции

=cut
#**********************************************************
sub client_main_function {
  my ($attr) = @_;
  return 1;
}

#**********************************************************
=head2 daily_periodic_function() - Описание функции

=cut
#**********************************************************
sub daily_periodic_function {
  my ($attr) = @_;
  return 1;
}

#**********************************************************
=head2 monthly_periodic_function() - Описание функции

=cut
#**********************************************************
sub monthly_periodic_function {
  my ($attr) = @_;
  return 1;
}

#**********************************************************
=head2 reports_function() - Описание функции

=cut
#**********************************************************
sub reports_function {
  my ($attr) = @_;
  return 1;
}

1;

Работа с языковыми файлами.

  • No labels