/bitrix/php_interface/init.phpКод |
---|
AddEventHandler("iblock", "OnAfterIBlockElementAdd", "OnAfterIBlockElementAddHandler");
//Подставляет ID елемента к коду и вызвает событие OnAfterIBlockElementUpdate
function OnAfterIBlockElementAddHandler(&$arFields)
{
$el = new CIBlockElement();
if($arFields['IBLOCK_ID'] == 3 && CModule::IncludeModule('iblock'))
{
$arLoadProductArray = array(
//'NAME' => $arFields['NAME'],
//'CODE' => CUtil::translit($arFields['NAME'], 'ru',array()) .'-'. $arFields['ID'],
'CODE' => $arFields['CODE'] .'-'. intval($arFields['ID']),
);
$el->Update($arFields['ID'], $arLoadProductArray);
} |
1) Это для элементов, но для разделов тоже самое.
Если подойдет, имейте ввиду, что события есть которые срабатывают до добавления, а есть которые срабатывают после добавления.
Если вы уже с таким названием добавили раздел, то этот код будет выдавать ошибку, т.к. событие срабтает после добавления элемента, а он не добавится, т.е. этот код будет работать в изначально чистом инфоблоке.
Либо пробовать событие
OnBeforeIBlockElementAdd()2)$el->Update вызовет событие
OnAfterIBlockElementUpdate()