Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

деактивация элемента вместо его удаления?

00 голосов
3
собственно вопрос возможно ли в компоненте iblock.element.add.list
за место полного удаления сделать просто де активацию данного элемента.
т.е. когда пользователь хочет удалить например своё объявление, он его на самом деле не удалял а просто де активировал...

если можно подскажите в какой стороне копать.

Заранее благодарен.
спросил 28 Апр, 13 от nintando (240 баллов)

3 Ответы

00 голосов
Как вариант использовать событие OnBeforeIBlockElementDelete().
ответил 28 Апр, 13 от smileplz (8,020 баллов)
00 голосов
Цитата
Max Pryazhevsky пишет:
Как вариант использовать событие OnBeforeIBlockElementDelete().

Сложность в том, что отменить удаление можно только вернув false. А если вернуть false, то выдастся ошибка системой.

Но так как автор спрашивает про компонент, я бы советовал просто переписать этот компонент.
ответил 28 Апр, 13 от Arn4 (2,140 баллов)
00 голосов
все сделал подредактировав компонент bitrix:iblock.element.add.list получилось вот так.
вначале компонента поставил следующий код.
Код
<?
if (@$_GET["dea"]) {
$zel = new CIBlockElement;
$zarLoadProductArray = Array(
  "ACTIVE" => "N"
  );
$PRODUCT_ID = $_GET["CODE"]; 
$zel->Update($PRODUCT_ID, $zarLoadProductArray);
}
?>


и изменил ссылку с
Код
<?if ($arElement["CAN_DELETE"] == "Y"):?><a href="?delete=Y&amp;CODE=<?=$arElement["ID"]?>&amp;<?=bitrix_sessid_get()?>" onClick="return confirm('<?=str_replace("#ELEMENT_NAME#", $arElement["NAME"], GetMessage("IBLOCK_ADD_LIST_DELETE_CONFIRM"))?>')"><?=GetMessage("IBLOCK_ADD_LIST_DELETE")?></a><?else:?> <?endif?>

delete=Y
на
Код
<?if ($arElement["CAN_DELETE"] == "Y"):?><a href="?dea=Y&amp;CODE=<?=$arElement["ID"]?>&amp;<?=bitrix_sessid_get()?>" onClick="return confirm('<?=str_replace("#ELEMENT_NAME#", $arElement["NAME"], GetMessage("IBLOCK_ADD_LIST_DELETE_CONFIRM"))?>')"><?=GetMessage("IBLOCK_ADD_LIST_DELETE")?></a><?else:?> <?endif?>

dea=Y
и все компонент не удаляется, а просто де активируется.
ответил 25 Июнь, 13 от nintando (240 баллов)

Похожие вопросы

0 голосов
1 ответ
0 голосов
1 ответ
спросил 11 Авг, 14 от beatsspam (440 баллов)
0 голосов
4 ответов
0 голосов
2 ответов