Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
abills:docs:development:modules:ru [2016/09/26 12:49]
anton
abills:docs:development:modules:ru [2019/01/26 11:22] (текущий)
asmodeus [Структурная схема]
Строка 10: Строка 10:
   * **config** - Конфигурационный файл модуля   * **config** - Конфигурационный файл модуля
  
 +Включение модуля в конфигурационном файле: ​ **libexec/​config.pl**
 +
 +  @MODULES = (
 +    '​Modulename'​
 +  );
  
 =====config===== =====config=====
Строка 214: Строка 219:
   );   );
 =====HTML.pm===== =====HTML.pm=====
-Модуль для вывода HTML  контента 
  
-====Ссылка==== +[[abills:​docs:​development:​modules:​html:​ru|Модуль для вывода HTML контента]]
-  $html->​button('​NAME',​ '​LINK_PARAMS',​ { %PARAMS });+
  
- 
-^BUTTON ​ | В виде кнопки. По умолчанию выводится в виде линка | 
-^GLOBAL_URL| Указать произволный URL. По умолчанию система к параметру линка добавляет префикс биллинговой системе https://​yoursystem.com:​9443/​ | 
-^NEW_WINDOW| Открыть в новом окне | 
-^NEW_WINDOW_SIZE| Размер нового окна | 
-^IMG | Картинка вместо текста | 
-^MESSAGE | Вывести подтверждающее сообщение | 
-^ex_params= | Дополнительные параметры \\  |  
- 
-** Пример ** \\  
-  $html->​button('​NAME',​ '​LINK_PARAMS',​ { ex_params => "​class=new" ​ }); 
-Вывод  ​ 
-  <a href='​$SELF_URL?​LINK_PARAMS'​ class=new>​NAME</​a> ​ 
- 
- 
-====Сообщения (предупреждения)==== 
-Информация о выполненной операции или предупреждение об ошибке 
- 
-  $html->​message('​TYPE',​ '​CAPTION',​ '​MESSAGE',​ { PARAMS }); 
- 
-^TYPE | Тип сообщения \\ **info** - Информация \\ **err** - ошибка \\ **warn** - Предупреждение | 
-^CAPTION | Оглавление сообщения | 
-^MESSAGE | Текст сообщения. \\ Для переноса строк используется '​\n'​ | 
-^PARAMS ​ | Дополнительные параметры | 
-^  | ID | Вывести номер сообщения (см. [[abills:​docs:​development:​errors_list:​ru|Систематизация ошибок]]) |  
-====Формы==== 
-контейнер формы 
-   ​$html->​form_main({ %PARAMS }) 
- 
-Параметры:​ 
-^CONTENT | Тело контейнера форм ​ | 
-^HIDDEN ​ | Сыылка на массив скрытых полей ввода. HIDDEN => { index => $index } | 
-^NAME    | Название формы | 
- 
-Форма ввода 
-   ​$html->​form_input('​NAME',​ '​VALUE',​ { %PARAMS ​ }); 
- 
-Спадающее меню 
-   ​$html->​form_select("​NAME",​ { %PARAMS }); 
- 
-Параметры: ​   
-^SELECTED| активное значение | 
- 
-^SEL_OPTIONS| Дополнительные параметры,​ списка не указанные в главном значении.\\ Укажите {""​=>""​},​ чтобы добавить первое пустое значение ( и крестик для скидывания выбраной опции)| 
-^NO_ID| Не показывать идентификатор элемента списка только его ​     значение | 
- 
- 
-Много уровневый масив: ​ 
-^SEL_MULTI_ARRAY | ссылка на масив ​ | 
-^MULTI_ARRAY_KEY | Поле для ключа | 
-^MULTI_ARRAY_VALUE| поле значения. Можно указывать несколько полей через запятую | 
- 
-Много уровневый массив хешей удобный для приёма списков ​ 
- 
-^SEL_LIST | ссылка на масив ​ | 
-^SEL_KEY | Поле для ключа | 
-^SEL_VALUE| поле значения. Можно указывать несколько полей через запятую | 
- 
-**Пример** \\ 
- 
-Список тарифных планов ключ поле id  значение поле name  
- 
-  $html->​form_select( 
-    '​TP_ID',​ 
-    { 
-      SELECTED => $FORM{TP_ID} || q{}, 
-      SEL_LIST => $tariffs->​list({ MODULE => '​Dv',​ COLS_NAME => 1 }), 
-      SEL_KEY ​ => '​id',​ 
-      SEL_VALUE=>​ '​name'​ 
-    } 
-  ); 
- 
-Масив: 
-^SEL_ARRAY | ссылка на масив | 
-^ARRAY_NUM_ID | ид элементов в виде цифр. По умолчанию равно значниею ​ | 
- 
-Хеш: 
-^SEL_HASH | Ссылка на хеш | 
- 
- 
-====Таблицы==== ​   
-Создание элемента таблицы 
-  $table = $html->​table({ %PARAMS ​ }); 
-  ​ 
- 
-^width ​    | Ширина таблицы. Можно задавать как в пикселях так и в процентах | 
-^caption ​  | Названеи таблицы | 
-^border ​    | Отображать границу таблицы | 
-^title ​     | Масив значений для заголовков колонок | 
-^cols_align | Масив выравнивания колонок. Значения:​ left \\ right \\ center \\ center:​noprint - Не выводить при печати страницы ​ | 
-^pages ​     | Количество сстрок передаваемых таблице. Используется для формирования строки переходов страниц | 
-^qs         | Дополнительные URL параметры для элементов таблицы | 
-^ID         | ИД таблицы | 
-^COLS_NAME ​ | Возврат значений не массивом,​ а хешем | 
-^EXPORT ​    | кнопки экспорта содержимого таблицы | 
-^IMPORT ​    | форма импорта данных. Указывает на линк вызова функции \\ **Пример:​** \\ IMPORT => "​$SELF_URL?​get_index=form_users&​import=1&​header=2"​ | 
- 
-**Пример** 
- 
-  my $table = $html->​table( { width      => '​100%',​ 
-                              caption ​   => $_COMPANIES,​ 
-                              border ​    => 1, 
-                              title      => [$_NAME, $_DEPOSIT, $_REGISTRATION,​ $_USERS, $_STATUS, '​-',​ '​-'​],​ 
-                              cols_align => ['​left',​ '​right',​ '​right',​ '​right',​ '​center',​ '​center'​],​ 
-                              pages      => $company->​{TOTAL},​ 
-                              qs         => $pages_qs, 
-                              ID         => '​COMPANY_ID'​ 
-                            } ); 
-Заполнение строк таблицы 
- 
-**Пример** 
-  foreach my $line (@$list) { 
-    #​Добавление строк 
-    $table->​addrow($line->​[0],  ​ 
-      $line->​[1], ​ 
-      $line->​[2], ​ 
-      $html->​button($line->​[3],​ "​index=13&​COMPANY_ID=$line->​[5]"​), ​ 
-      "​$status[$line->​[4]]",​ 
-      $html->​button($_INFO,​ "​index=13&​COMPANY_ID=$line->​[5]",​ { BUTTON => 1 }),  
-      (defined($permissions{0}{5})) ? $html->​button($_DEL,​ "​index=13&​del=$line->​[5]",​ { MESSAGE => "$_DEL $line->​[0]?",​ BUTTON => 1 }) : ''​ 
-      ); 
-   } 
- 
- 
-Вывод содержимого таблицы 
- 
-  print $table->​show();​ 
- 
-**Формирование таблицы с заполненными строками**\\ 
-**Пример** 
-  $table = $html->​table( { width      => '​100%',​ 
-                           ​cols_align => ['​right',​ '​right'​],​ 
-                           ​rows ​      => [ [ "​$_TOTAL:",​ $html->​b($company->​{TOTAL}) ] ] 
-                       } ); 
-  print $table->​show();​ 
-  ​ 
-**Вывод таблицы используя вывод хешем** \\ 
-Список администраторов ​ 
- 
-  $list = $admin->​list({ %LIST_PARAMS, ​ 
-                         ​COLS_NAME => 1  
-                  }); 
-  ​ 
-  foreach my $line (@$list) { 
-    $table->​addrow( 
-      $line->​{aid}, ​ 
-      $line->​{login}, ​ 
-      $line->​{name}, ​ 
-      $line->​{raddate} 
-    ); 
-  } 
-  ​ 
-  print $table->​show();​ 
- 
- 
-**Добавление ячеек таблицы** 
- 
-  $table->​addtd( ​ 
-    $table->​td($value,​ { bgcolor => '​red',​ valign => '​top',​ align => '​center' ​ }), 
-    $table->​td($value) 
-  ); 
-  ​ 
 ====Шаблоны==== ====Шаблоны====
 Для визуализации используется система шаблонов Для визуализации используется система шаблонов
Строка 400: Строка 241:
 ==== Дополнительные возможности ==== ==== Дополнительные возможности ====
 === Проверка значения input на соответствие шаблону === === Проверка значения input на соответствие шаблону ===
-Если указать атрибут ''​check_for_pattern="​RegExp"'',​ где RegExp - JavaScript шаблон,​ то при вводе значение будет проверяться на соответствие патерну.\\+Если указать атрибут ''​data-check-for-pattern="​RegExp"'',​ где RegExp - JavaScript шаблон,​ то при вводе значение будет проверяться на соответствие патерну.\\
 Если значение не соответствует патерну,​ родительскому элементу добавляется класс ''​has-error''​. Текст label и рамка input меняют цвет на красный.\\ Если значение не соответствует патерну,​ родительскому элементу добавляется класс ''​has-error''​. Текст label и рамка input меняют цвет на красный.\\
  
Строка 409: Строка 250:
  
 === Ввод значения в один input при доступных нескольких === === Ввод значения в один input при доступных нескольких ===
-Добавить атрибут ''​input-disables=%ID%''​ в <​input>​ \\+Добавить атрибут ''​data-input-disables=%ID%''​ в <​input> ​(<​select>,​ <input type='​checkbox'>​) ​\\
 При вводе значения,​ удаляет значение в <input id='​%ID%'>​ и добавляет свойство ''​disabled''​. \\ При вводе значения,​ удаляет значение в <input id='​%ID%'>​ и добавляет свойство ''​disabled''​. \\
 \\ \\
Строка 415: Строка 256:
 \\ \\
 Можно указать несколько Id через запятую (**без пробелов**).\\ Можно указать несколько Id через запятую (**без пробелов**).\\
 +\\
 +Обратное поведение ( включить поле ввода по значению ), можно используя атрибут ''​data-input-enables=%ID%''​
 +\\
  
 === Всплывающая подсказка при наведении мыши === === Всплывающая подсказка при наведении мыши ===
Строка 460: Строка 304:
  ​Любое значение интерпретируемое в JS как ''​false''​ добавит **display : none**\\  ​Любое значение интерпретируемое в JS как ''​false''​ добавит **display : none**\\
  ​Любое значение интерпретируемое в JS как ''​true''​ добавит **display : block**\\  ​Любое значение интерпретируемое в JS как ''​true''​ добавит **display : block**\\
 +
 +=== Отображение даты в человекочитаемом формате ===
 +Отобразить время от/до наступления даты (''​3 часа назад'',​ ''​5 дней назад'',​ ''​Через 3 дня''​)
 +<​code>​
 +<span class='​moment-insert'​ data-value='​YYYY-MM-DD hh:​mm:​ss'></​span>​
 +</​code> ​
 +
 +Отобразить временной интервал (''​3 часа'',​ ''​5 дней''​)
 +<​code>​
 +<span class='​moment-range'​ data-value='​ss'></​span>​
 +</​code>​
 +
 +=== Подтверждение действий в кабинете пользователя ===
 +Есть возможность добавить в кабинете пользователя подтверждение действий паролем. Для этого необходимо добавить форме класс ''​pswd-confirm''​. При попытке сабмита формы с этим классом,​ откроется модальное окно для ввода пароля. Введенный пароль добавится к данным формы.
 +(работает при включенной опции $conf{user_confirm_changes}=1;​)
 ====result_former==== ====result_former====
  
 Функция формирование результирующей таблицы используя SQL, XML JSON или HASH данные Функция формирование результирующей таблицы используя SQL, XML JSON или HASH данные
  
-<​code>​+<​code ​perl>
   my ($table, $list) = result_former({   my ($table, $list) = result_former({
      ​INPUT_DATA ​     => $Dv,      ​INPUT_DATA ​     => $Dv,
Строка 593: Строка 452:
 **$val** -  список значений для отображения \\ **$val** -  список значений для отображения \\
  
-Если задана ​переменная chartPeriod, то в зависимости от значения,​ формируются категории (X_TEXT) и корректируется длина массива.+Если задана ​$attr->​{PERIOD}, то в зависимости от значения,​ формируются категории (X_TEXT) и корректируется длина массива ​(отрезается 0-ой индекс).
 | '​week_stats'​ | ['​Mon',​ '​Tue',​ '​Wed',​ '​Thu',​ '​Fri',​ '​Sat',​ '​Sun'​] | 7 | | '​week_stats'​ | ['​Mon',​ '​Tue',​ '​Wed',​ '​Thu',​ '​Fri',​ '​Sat',​ '​Sun'​] | 7 |
 | '​month_stats'​ | [1,​2,​3,​4,​5,​6,​7,​8,​9,​...,​31] | 31 | | '​month_stats'​ | [1,​2,​3,​4,​5,​6,​7,​8,​9,​...,​31] | 31 |
Строка 620: Строка 479:
   * 100001 - msgs_register_push_client   * 100001 - msgs_register_push_client
   * 100002 - form_events (Клиентский интерфейс)   * 100002 - form_events (Клиентский интерфейс)
 +
 +
 +===== Подсказки к шаблонам =====
 +Начиная с версии 0.77.66 можно заполнять дополнительные подсказки для полей шаблона. \\ 
 +При использовании новой схемы отображения шаблона
 +<code perl>
 +$html->​tpl_show('',​ {
 +  VAR1 => '​VAL1',​
 +},
 +{
 +  TPL    => '​module_entity',​
 +  MODULE => '​Module',​
 +  HELP   => 1
 +});
 +</​code>​
 +
 +Если задан ключ ''​HELP => 1'',​ к шаблону добавится контент файла ''​module_entity_help.tpl'',​ который будет обработан на странице.\\
 +Формат файла шаблона подсказок:​ ID:​комментарий.\\
 +Пример:​
 +<​code>​
 +MODULE:​Имя модуля
 +EXTRA:​Ссылка для получения доп. информации
 +COMMENTS_id:​Коментарии (текст уведомления)
 +</​code>​
 +