Битрикс. Как программно получить ссылки на изменение и удаление элемента

При разработке своего компонента либо просто использование API для вывода элементов инфоблока из базы, вам может потребоваться, чтобы при наведении на редактируемый элемент были доступны опции «Изменить элемент» и «Удалить элемент».

Сделать это очень просто.

Достаточно в цикле, который выводит ваши элементы, добавить следующий код:

		
		<?
//Получаем ссылки для редактирования и удаления элемента

$arButtons = CIBlock::GetPanelButtons(
    $arItem["IBLOCK_ID"],
    $arItem["ID"],
    0,
    array("SECTION_BUTTONS"=>false, "SESSID"=>false)
);
$arItem["EDIT_LINK"] = $arButtons["edit"]["edit_element"]["ACTION_URL"];
$arItem["DELETE_LINK"] = $arButtons["edit"]["delete_element"]["ACTION_URL"];
$arItem["ADD_LINK"] = $arButtons["edit"]["add_element"]["ACTION_URL"];<br>
 
//Добавляем действия для управления элементом
$this->AddEditAction($arItem['ID'], $arItem['ADD_LINK'], $arItem["ADD_LINK_TEXT"]);
$this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_EDIT"));
$this->AddDeleteAction($arItem['ID'], $arItem['DELETE_LINK'], CIBlock::GetArrayByID($arItem["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage('CT_BNL_ELEMENT_DELETE_CONFIRM')));
?>	
	

Затем на том блоке, в котором будет располагаться содержимое элемента, нужно будет добавить уникальный id для управления этим элементом:

		
		<p id="<?=$this->GetEditAreaId($arItem['ID']);?>">
    <!-- тут содержимое элемента-->
</p>	
	

P.S. весь код выше предполагает, что элементы будут названы $arItem. Если они у указаны по-другому, просто нужно заменить название в коде на свое.

Количество просмотров: 450


Понравилась статья?

Возврат к списку