Документация для разработчиков
Темная тема

AddGroupActionTable

Описание и формат входных параметров

void
CAdminList::AddGroupActionTable(
	array $arActions[,
	array $arParams = array()]
)

Метод служит для задания списка доступных групповых операций над элементами списка. Список возможных групповых операций задается в виде массива элементов вида "идентификатор_операции"=>"название_операции".

Формат входных параметров

Список действий

Список действий $arActions может задаваться двумя вариантами. Первый - упрощённый - в виде ассоциативного массива, содержащего пары "идентификатор_действия" => "название_пункта_меню". В этом случае пункт меню будет представлять собой ссылку на текущую страницу с дополнительным GET-параметром action=идентфикатор_действия, который должен обрабатываться на этапе сохранения изменений списка.

Во втором варианте - расширенном - каждый элемент массива $arActions представляет собой ассоциативный массив, содержащий следующие ключи:

Ключ Описание
action javascript-код, который будет выполнен при выборе пункта меню
type значение, описывающее внешний вид ссылки действия. Может принимать следующие значения:
  • button - действие будет отображаться в виде кнопки;
  • html - ссылка с текстом, определяемым в параметре value.
Если параметр содержит другое значение, или не определён, то действие будет выводиться в виде элемента выпадающего списка действий.
value значение определяет подпись действия ("название_пункта_меню" упрощённого варианта).

Оба типа задания списка действий можно использовать в одном массиве $arActions.

arParams

Настройка параметров действий представляет собой ассоциативный массив, который может содержать следующие ключи:

  • disable_action_target флаг, определяющий, будет ли появляться чекбокс "применить ко всем элементам";
  • select_onchange - javascript, который будет выполнен при выборе действия из выпадающего списка.

Пример (упрощённый вариант)

$lAdmin->AddGroupActionTable(Array(
	"delete"    => GetMessage("MAIN_ADMIN_LIST_DELETE"),
	"activate"  => GetMessage("MAIN_ADMIN_LIST_ACTIVATE"),
	"deactivate"=> GetMessage("MAIN_ADMIN_LIST_DEACTIVATE"),
));

Пример (расширенный вариант)

// показ формы с кнопками добавления, ...
$lAdmin->AddGroupActionTable(
	array(
		"delete" => GetMessage("MAIN_ADMIN_LIST_DELETE"),
		"access" => array(
			"action" => "setAccess('".str_replace("'", "\'", $site)."', '".str_replace("'", "\'", $path)."')",
			"value" => "access",
			"name" => GetMessage('FILEMAN_ADMIN_ACCESS_CMD')
		),
		"copy" => GetMessage("FILEMAN_ADM_COPY"),
		"move" => GetMessage("FILEMAN_ADM_MOVE"),
		"copy2" => array(
			"type" => "html",
			"value" => " ".GetMessage("FILEMAN_ADMIN_IN")." "
		),
		"copy1" => array(
			"type" => "html",
			"value" => $strHTML
		),
	),
	array("select_onchange"=>"this.form.copy_to_button.disabled=this.form.copy_to.disabled=!(this[this.selectedIndex].value == 'copy' || this[this.selectedIndex].value == 'move')")
);


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Константин Колясников
Сообщение не промодерировано, возможны ошибки и неточности.
Немного добавлю, т.к. документация оставляет желать лучшего.
Код
"generate" => array(
    "action" => "generateObject()",
    "name" => "Запустить генерацию",
    "value" => "generate",
    "type" => "button",
),
В generateObject() - кастомная JS функция, которая идет ниже по коду и выведена через <script>. Внутри функции с таблицей можно делать все что угодно согласно API грида: https://dev.1c-bitrix.ru/api_d7/bitrix/main/systemcomponents/gridandfilter/mainuig­rid/js_api.php. Однако, документация там тоже оставляет желать лучшего. Можно поискать в интернете функции API по экземпляру BX.Main.gridManager. Например,
Код
let grid = BX.Main.gridManager.getInstanceById("id вашей таблицы");
let selectedID = grid.getRows().getSelectedIds();
Этот код позволит получить выделенные ячейки таблицы.
0
Антон Штинов
Сообщение не промодерировано, возможны ошибки и неточности.
Код
"refund" => array(
    "action" => "doRefund();",
    "type" => 'button',
    "value" => 'refund',
    "name" => 'Возврат',
),

Для кнопки нужен еще параметр и названием, которое будет выводится на кнопке.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024
Наверх