Мне нужно добавить свою колонку в список элементов определенного инфоблока в админке (версия 11.5.4). Нашел вот такую функцию, https://gist.github.com/mesilov/3441084 - однако непонятно, как её применить.
Как можно добавить свою колонку в список в админке?
Присоеднияюсь к вопросу, как добавить свою колонку?
Например есть инфоблоки "Книги" и "Авторы". У книги есть связанное поле "Автор". При просмотре элементов инфоблока "Книги" я могу видеть сразу автора. А теперь я хотел бы реализовать обратную задачу, при просмотре списка авторов добавить колонку "Книги" и выводить туда список книг его авторства.
Смотри, допустим у тебя тип инфоблока 'city_objects', а идентификатор инфоблока - 5. Ты хочешь вывести поле, в примере оно называется 'CONNECTED'.
Идешь в /bitrix/php_interface/init.php, если такого файла нет, то создай. В нем пиши следующее:
Код
AddEventHandler("main", "OnAdminListDisplay", "MyOnAdminListDisplay");
function MyOnAdminListDisplay(&$list)
{
if ($list->table_id === 'tbl_iblock_element_' . md5('city_objects.5')) {
$list->aVisibleHeaders["CONNECTED"] =
array(
"id" => "CONNECTED",
"content" => 'СВОЕ', // текст в шапке таблицы для поля CONNECTED
"sort" => "CONNECTED",
"default" => true,
"align" => "left",
);
$list->arVisibleColumns[]= 'CONNECTED';
foreach ($list->aRows as $row) {
$row->addField(
'CONNECTED',
'any<br>html' // что будет выводиться в ячейке таблицы
);
}
}
}
Спасибо все классно работает. Правда есть одна бага - когда переходишь по страницам списка или используешь сортировку битрикс аяксом перезагружает контентную область, и в этом случае событие не отрабатывает следовательно нужная колонка отсутствует. Не подскажешь как решить?
День добрый. Никто не знает, как в список товаров брошенных корзин добавить свой столбец со свойством товара? Штатными средствами не получается: там для выбора ограниченный выбор полей.
Благодарю за помощь. Мои первые шаги в программировании очень шаткие, без такой подсказки я б мучался очень долго. Да, видимо с каким-то обновлением требуется добабвиться и в aHeaders, и в визиблы.
Цитата
написал: Добрый день, подскажите, кто-нибудь делать в списке заказов вывод свойств товаров? Например артикул...
AddEventHandler("main", "OnAdminListDisplay", "MyOnAdminListDisplay");function MyOnAdminListDisplay(&$list) { if ($list->table_id=="tbl_sale_order") {
вот так запрыгиваешь в список заказов в админке
?><PRE><?print_r($list);?></PRE><? Смотришь, какие данные у тебя в распоряжении, элементарно можешь взять ID нужных товаров и через CCatalogProduct::GetByID достать артикул. Соответственно foreach ($list->aRows as $key => $row) { чтобы $html = $html . $list->aRows[$key]->aFields['BASKET']['VALUE'] к примеру и $row->AddField("CONNECTED",$html);
написал: Благодарю за помощь. Мои первые шаги в программировании очень шаткие, без такой подсказки я б мучался очень долго. Да, видимо с каким-то обновлением требуется добабвиться и в aHeaders, и в визиблы.
Цитата
написал: Добрый день, подскажите, кто-нибудь делать в списке заказов вывод свойств товаров? Например артикул...
AddEventHandler("main", "OnAdminListDisplay", "MyOnAdminListDisplay");function MyOnAdminListDisplay(&$list) { if ($list->table_id=="tbl_sale_order") {
вот так запрыгиваешь в список заказов в админке
?><PRE><?print_r($list);?></PRE><? Смотришь, какие данные у тебя в распоряжении, элементарно можешь взять ID нужных товаров и через CCatalogProduct::GetByID достать артикул. Соответственно foreach ($list->aRows as $key => $row) { чтобы $html = $html . $list->aRows[$key]->aFields['BASKET']['VALUE'] к примеру и $row->AddField("CONNECTED",$html);
Спасибо, что натолкнули на мысль. Закостылил. Теперь крайне удобно: