1С-Битрикс — как добавить кнопки Изменить, Удалить, Добавить

Если вы используете компонент список новостей или какой-то свой собственный, вам могут понадобится кнопки управления элементом в публичной части.

Как добавить кнопки «Изменить элемент», «Добавить элемент», «Удалить элемент» в 1С-Битрикс

Для того чтобы добавить такие кнопки, вам нужно создать файл result_modifier.php или component_epilog.php и затем добавить экшены к вашим кнопкам.

<?
foreach($arResult["ITEMS"] as $arItem) {

	$arButtons = CIBlock::GetPanelButtons(
		$arItem["IBLOCK_ID"],
		$arItem["ID"],
		0,
		array("SECTION_BUTTONS"=>false, "SESSID"=>false)
	);
	//echo '<pre>', print_r($arButtons), '</pre>';
	$arItem["ADD_LINK"] = $arButtons["edit"]["add_element"]["ACTION_URL"];
	$arItem["EDIT_LINK"] = $arButtons["edit"]["edit_element"]["ACTION_URL"];
	$arItem["DELETE_LINK"] = $arButtons["edit"]["delete_element"]["ACTION_URL"];

	$arItem["ADD_LINK_TEXT"] = $arButtons["edit"]["add_element"]["TEXT"];
	$arItem["EDIT_LINK_TEXT"] = $arButtons["edit"]["edit_element"]["TEXT"];
	$arItem["DELETE_LINK_TEXT"] = $arButtons["edit"]["delete_element"]["TEXT"];

	$this->AddEditAction($arItem['ID'], $arItem['ADD_LINK'], $arItem["ADD_LINK_TEXT"]);
	$this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], $arItem["EDIT_LINK_TEXT"]);
	$this->AddDeleteAction($arItem['ID'], $arItem['DELETE_LINK'], $arItem["DELETE_LINK_TEXT"], array("CONFIRM" => GetMessage('CT_BNL_ELEMENT_DELETE_CONFIRM')));
}
?>

Итак, разбираем AddEditAction — первый параметр айди элемента, второй ссылка на экшен, третий текст кнопки. Обратите внимание, что для удаление используется AddDeleteAction, где мы передаем четвертым параметром подтверждение через алерт браузера.

Чтобы всё это заработало, контейнеру нужно дать id:

<div id="<?=$this->GetEditAreaID($arItem['ID'])?>">
    <!-- контент блока -->
</div>

Самое главное, правильно передать ID элемента, и тогда всё у вас получится 🙂

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

4 комментария

  1. доброго здравия!
    я совсем с неинтересным вопросом, но не могу найти…
    подскажите..
    кнопка «подробнее» съехала на текст.
    как копать и где ковырять, чтоб ее подвинуть

    огромное спасибо, если ответите!

  2. Дмитрий, вы автор данной статьи про редактирование элементов в публичке?
    пытаюсь сделать, подскажите файл result_modifier я создаю в нужном компоненте вручную, и в него вставляю код, написанный в первом фрейме вашей статьи, там, где с кнопками ..
    Далее, в основном шаблоне оборачиваю стандартную там конструкцию в код
    —-
    div id=»GetEditAreaID($arItem[‘ID’])?>»>

    /div>
    —-
    Так?

Добавить комментарий для Dmitriy Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *