Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
abills:docs:development:modules:html:ru [2017/01/26 15:19] anton [Фильтры result_former] |
abills:docs:development:modules:html:ru [2017/06/28 23:53] (текущий) anton [Ссылка] |
||
---|---|---|---|
Строка 6: | Строка 6: | ||
^BUTTON | В виде кнопки. По умолчанию выводится в виде линка | | ^BUTTON | В виде кнопки. По умолчанию выводится в виде линка | | ||
- | ^GLOBAL_URL| Указать произволный URL. По умолчанию система к параметру линка добавляет префикс биллинговой системе https://yoursystem.com:9443/ | | + | ^GLOBAL_URL| Указать произвольный URL. По умолчанию система к параметру линка добавляет префикс биллинговой системе https://yoursystem.com:9443/ | |
^NEW_WINDOW| Открыть в новом окне | | ^NEW_WINDOW| Открыть в новом окне | | ||
^NEW_WINDOW_SIZE| Размер нового окна | | ^NEW_WINDOW_SIZE| Размер нового окна | | ||
^IMG | Картинка вместо текста | | ^IMG | Картинка вместо текста | | ||
- | ^MESSAGE | Вывести подтверждающее сообщение | | + | ^MESSAGE | строка, Вывести модальное окно для комментария и сообщением и перейти по ссылке только после ввода и подтверждения | |
+ | ^CONFIRM | строка, Вывести модальное окно с сообщением и кнопкой подтверждения перехода | | ||
^ex_params= | Дополнительные параметры \\ | | ^ex_params= | Дополнительные параметры \\ | | ||
Строка 17: | Строка 18: | ||
Вывод | Вывод | ||
<a href='$SELF_URL?LINK_PARAMS' class=new>NAME</a> | <a href='$SELF_URL?LINK_PARAMS' class=new>NAME</a> | ||
+ | \\ | ||
+ | ** Кнопка с иконкой ** | ||
+ | $html->button($lang{ADD}, "index=$index&form_add=1", { ADD_ICON => 'glyphicon glyphicon-plus', BUTTON => 1 }) | ||
+ | <a href='?index=245&form_add=1' class=new><span class='glyphicon glyphicon-plus'></span>Добавить</a> | ||
+ | \\ | ||
+ | ** Пример кнопки для копирования текста в буфер обмена ** | ||
+ | $html->button('COPY TEXT', '', { COPY => 'text for copy' }) | ||
====Сообщения (предупреждения)==== | ====Сообщения (предупреждения)==== | ||
Строка 201: | Строка 209: | ||
==== Фильтры result_former ==== | ==== Фильтры result_former ==== | ||
+ | |||
+ | === FILTER_VALUES === | ||
+ | Задаются ссылкой на функцию, передаются 2 параметра ($value - значение строки, $line - вся строка ссылкой на хеш)\\ | ||
+ | \\ | ||
+ | **Пример :** | ||
+ | <code perl> | ||
+ | { | ||
+ | ..., | ||
+ | FILTER_VALUES => { | ||
+ | name => sub { my ($name, $line) = @_; $html->button($name, "get_index=foo_main&full=1&chg=$line->{id}") }, | ||
+ | url => sub { my $link = shift; $html->button($link, $link) }, | ||
+ | comments => sub { my $comments = shift; $html->element('abbr', $lang{COMMENTS}, { title => $comments }) } | ||
+ | }, | ||
+ | ... | ||
+ | } | ||
+ | </code> | ||
+ | === FILTER_COLS === | ||
Задаются в виде хеша | Задаются в виде хеша | ||
- | <code> | + | <code perl> |
{ | { | ||
..., | ..., | ||
Строка 224: | Строка 249: | ||
В LINK_NAME передаются значения из SELECT_VALUE, если они заданы. | В LINK_NAME передаются значения из SELECT_VALUE, если они заданы. | ||
+ | |||
+ | === Пример FILTER_COLS === | ||
+ | Отобразить ссылку на функцию типа обьекта. \\ | ||
+ | |||
+ | Для формирования ссылки необходимо знать **Имя типа** (для текст в ссылке), **Название/Индекс функции** для перехода на функцию, **ID** (для перехода на редактирование/просмотр именно этого типа). | ||
+ | |||
+ | Если прописан фильтр для ''type_name'', то название типа у нас уже есть в первом аргументе ($line->{column}). \\ | ||
+ | \\ | ||
+ | Название равны для всех строк таблицы, поэтому можно передать через предзаданный аргумент VALUES ''FUNCTION_NAME=module_types'' \\ | ||
+ | \\ | ||
+ | Остаётся получить ID типа. Предположим, он отдаётся из list в поле ''$line->{type_id}''. Добавляем в HIDDEN_FIELDS ''TYPE_ID'', и добавляем в строку фильтра ''TYPE_ID''; | ||
+ | |||
+ | Получается, что в аргументах result_former должны присутствовать: | ||
+ | <code perl> | ||
+ | { | ||
+ | ... | ||
+ | DEFAULT_FIELDS => '...,TYPE_NAME,...', | ||
+ | HIDDEN_FIELDS => '...,TYPE_ID,...', | ||
+ | FILTER_COLS => { | ||
+ | type_name => 'make_chg_button::FUNCTION_NAME=module_types,TYPE_ID' | ||
+ | } | ||
+ | ... | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Пример реализации фильтра: | ||
+ | <code perl> | ||
+ | sub make_chg_button { | ||
+ | my ($name, $attr) = @_; | ||
+ | return '' unless ($name); | ||
+ | | ||
+ | my $fn_name = $attr->{VALUES}{FUNCTION_NAME}; | ||
+ | my $id = $attr->{VALUES}{TYPE_ID}; | ||
+ | | ||
+ | my $fn_index = get_function_index($fn_name); | ||
+ | | ||
+ | return $html->button($name, '?index=' . $fn_index . '&chg=' . $id); | ||
+ | } | ||
+ | </code> |