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

- Создание сайтов на 1С-Битрикс;
- Доработки и правки на рабочем проекте;
- Адаптивная вёрстка и натяжка на Битрикс;
- Выгрузка и Загрузка товаров на сайт;
- Парсинг товаров;
- Интеграции со сторонними сервисами по API;
- Многоязычные версии сайтов и многое другое.

Пишите, отвечу на любые вопросы.
E-mail: dmitriyribka@gmail.com

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

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

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

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

    /div>
    —-
    Так?

Добавить комментарий

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