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

При разработке своего компонента либо просто использование 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"];
//Добавляем действия для управления элементом $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. Если они у указаны по-другому, просто нужно заменить название в коде на свое.

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


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

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