В дополнение к статье Редактирование и удаление элементов и разделов из публичной части сайта Битрикс дополню реализацию следующего случая: как отобразить кнопки редактирования элементов инфоблока в режиме правки, если вывод этих элементов осуществляется простым GetList-ом
Собственно реализация:
CModule::IncludeModule("iblock");
//создаём экземпляр CBitrixComponent
//для привязки к элементам инфоблока
//кнопок редактирования:
$app = new CBitrixComponent();
//какой-то гетлист...
$elems = CIBlockElement::GetList(array("SORT"=>"ASC"),
array('IBLOCK_ID' => 2,
'ACTIVE' => 'Y'
),
false,
false,
array('ID',
'IBLOCK_ID',
'NAME'
)
);
while ($elem = $elems->Fetch()){
$arButtons = CIBlock::GetPanelButtons(
$elem["IBLOCK_ID"],
$elem["ID"],
0,
array("SECTION_BUTTONS"=>false, "SESSID"=>false)
);
$elem["ADD_LINK"] = $arButtons["edit"]["add_element"]["ACTION_URL"];
$elem["EDIT_LINK"] = $arButtons["edit"]["edit_element"]["ACTION_URL"];
$elem["DELETE_LINK"] = $arButtons["edit"]["delete_element"]["ACTION_URL"];
$elem["ADD_LINK_TEXT"] = $arButtons["edit"]["add_element"]["TEXT"];
$elem["EDIT_LINK_TEXT"] = $arButtons["edit"]["edit_element"]["TEXT"];
$elem["DELETE_LINK_TEXT"] = $arButtons["edit"]["delete_element"]["TEXT"];
$app->AddEditAction($elem['ID'], $elem['ADD_LINK'], $elem["ADD_LINK_TEXT"]);
$app->AddEditAction($elem['ID'], $elem['EDIT_LINK'], $elem["EDIT_LINK_TEXT"]);
$app->AddDeleteAction($elem['ID'], $elem['DELETE_LINK'], $elem["DELETE_LINK_TEXT"], array("CONFIRM" => 'Точно удалить?'));
?>
<div id="<?=$app->GetEditAreaID($elem['ID'])?>">
<!--какие-то данные элемента инфоблока-->
</div>
<?
})