Столкнулся с задачей, где нужно добавить некий пункт в выпадающее контекстное меню в списке элементов инфоблока. Я говорю не о групповых действиях, а о тех, что выпадают при клике правой кнопкой мыши по элементу или соответствующей кнопке в таблице. Нашел, видимо, не самое лучшее решение, сделать это через событие "OnAdminListDisplay".
Получилось следующее:
Код
AddEventHandler("main", "OnAdminListDisplay", "OnAdminListDisplayHandler");
function OnAdminListDisplayHandler(&$list){
if($_REQUEST['IBLOCK_ID'] != SHIPMENTS_IBLOCK_ID) return $list;
$count = $list->aFooter[0]["value"]; //подсчитываем сколько всего элементов
$i = 0;
while ($i <= $count) {
$id = $list -> aRows[$i] -> arRes['ID'];
$arAction = array(
'TEXT' => '<a target="_blank" style="text-decoration:none;color:#2a2a2a !important;" href="/bitrix/admin/operationCenter.php?ID='.$id.'">Obtener Transportistas</a>'
);
$list->aRows[$i]->aActions[] = $arAction;
$i++;
}
}
Но, проблема в том, что в таком случае успевает обработаться лишь 14 элементов, после чего появляется ошибка 500. На странице списка это заметно тем, что во-первых, не все элементы вывелись, а во-вторых, под таблицей больше нет пагинации и футера. А также, при попытке это сортировать или фильтровать, улетает аякс и возвращается с ошибкой 500.
Подскажите, пожалуйста, способ, как туда все-таки добавить необходимый пункт, возможно, есть какое-то специальное событие? Обыскал, наверное, всю документацию и гугл, не нашел ничего подобного.
Да, вопрос конечно сложный, тоже интересует меня, если кто-то знает что-либо по этому поводу, отпишите, пожалуйста
Программы для социальных сетей — http://nonsoc.ru. Только здесь хранится огромный набор популярных программ, которые вы сможете скачать совершенно бесплатно!