В итоге, погуглив и потратив на это день или два, таки получилось вывести контекстное меню с кнопками редактирования для элемента.
Опишу алгоритм, может кому пригодиться:
[B]1)[/B] В файле [B]result_modifier.php[/B] имеем след. код:[CODE]$arResult['ADVANTAGES_TOP_EDIT_AREAS'] = [];
// Собираем наши элементы
$rsElement = CIBlockElement::GetList(
$arOrder = array("SORT" => "ASC"),
$arFilter = array(
"ID" => $props['ADVANTAGES_TOP']['VALUE'],
"ACTIVE" => "Y"
),
false,
false,
$arSelectFields = array("ID", "IBLOCK_ID", "NAME", "PREVIEW_TEXT", "PROPERTY_ICON")
);
// Проходимся по элементам в цикле
while ($arElement = $rsElement->fetch()) {
// Получаем массив кнопок для элемента
$buttons = CIBlock::GetPanelButtons(
$arElement['IBLOCK_ID'],
$arElement['ID'],
0,
array("SECTION_BUTTONS" => false, "SESSID" => false)
);
// Сохраняем связь id элемента и его кнопок в массив
array_push($arResult['ADVANTAGES_TOP_EDIT_AREAS'], ['ID' => $arElement['ID'], 'BUTTONS' => $buttons]);
}
// Передаём данные в component_epilog.php
$cp->SetResultCacheKeys(array('ADVANTAGES_TOP_EDIT_AREAS'));[/CODE]
[B]2)[/B] В [B]template.php[/B][CODE]<article id="<?=$this->GetEditAreaID($advantage['ID'])?>">
...
</article>
[/CODE]
[B]3)[/B] В [B]component_epilog.php[/B][CODE]foreach ($arResult['ADVANTAGES_TOP_EDIT_AREAS'] as $editArea) {
$APPLICATION->SetEditArea($this->GetEditAreaID($editArea['ID']), CIBlock::GetComponentMenu("configure", $editArea['BUTTONS']));
}[/CODE]
Хочется кинуть очередной камень, в огород документации bitrix, за недосказанность и отсутствие нужной информации.
Опишу алгоритм, может кому пригодиться:
[B]1)[/B] В файле [B]result_modifier.php[/B] имеем след. код:[CODE]$arResult['ADVANTAGES_TOP_EDIT_AREAS'] = [];
// Собираем наши элементы
$rsElement = CIBlockElement::GetList(
$arOrder = array("SORT" => "ASC"),
$arFilter = array(
"ID" => $props['ADVANTAGES_TOP']['VALUE'],
"ACTIVE" => "Y"
),
false,
false,
$arSelectFields = array("ID", "IBLOCK_ID", "NAME", "PREVIEW_TEXT", "PROPERTY_ICON")
);
// Проходимся по элементам в цикле
while ($arElement = $rsElement->fetch()) {
// Получаем массив кнопок для элемента
$buttons = CIBlock::GetPanelButtons(
$arElement['IBLOCK_ID'],
$arElement['ID'],
0,
array("SECTION_BUTTONS" => false, "SESSID" => false)
);
// Сохраняем связь id элемента и его кнопок в массив
array_push($arResult['ADVANTAGES_TOP_EDIT_AREAS'], ['ID' => $arElement['ID'], 'BUTTONS' => $buttons]);
}
// Передаём данные в component_epilog.php
$cp->SetResultCacheKeys(array('ADVANTAGES_TOP_EDIT_AREAS'));[/CODE]
[B]2)[/B] В [B]template.php[/B][CODE]<article id="<?=$this->GetEditAreaID($advantage['ID'])?>">
...
</article>
[/CODE]
[B]3)[/B] В [B]component_epilog.php[/B][CODE]foreach ($arResult['ADVANTAGES_TOP_EDIT_AREAS'] as $editArea) {
$APPLICATION->SetEditArea($this->GetEditAreaID($editArea['ID']), CIBlock::GetComponentMenu("configure", $editArea['BUTTONS']));
}[/CODE]
Хочется кинуть очередной камень, в огород документации bitrix, за недосказанность и отсутствие нужной информации.