Иногда нужно создать символьные коды для разделов и элементов. Например: если сайт создан давно и ранее работал на ID секций и элементов. Сделать можно через API битрикс
Добавление обработчика в Битрикс
Для автогенерации символьных кодов, не зависимо от того, каким образом попадают разделы и элементы на сайт (выгрузка из xml или ручное добавление), достаточно в файл /bitrix/php_interface/init.php добавить вот такой код
<?
AddEventHandler("iblock", "OnBeforeIBlockElementAdd", Array("MyClass40", "OnBeforeIBlockElementAddHandler"));
class MyClass40{
function OnBeforeIBlockElementAddHandler(&$arFields)
{
$name = $arFields["NAME"];
$arParams = array("replace_space"=>"-","replace_other"=>"-");
$trans = Cutil::translit($name,"ru",$arParams);
$arFields["CODE"] = $trans;
}
}
AddEventHandler("iblock", "OnBeforeIBlockSectionAdd", Array("MyClass50", "OnBeforeIBlockSectionAddHandler"));
class MyClass50{
function OnBeforeIBlockSectionAddHandler(&$arFields)
{
$name = $arFields["NAME"];
$arParams = array("replace_space"=>"-","replace_other"=>"-");
$trans = Cutil::translit($name,"ru",$arParams);
$arFields["CODE"] = $trans;
}
}
?>
Само собой, если сайт новый, то автогенерация вполне спокойно настраивается при создании инфоблоков, или в настройках Импорта с 1С. В большей степени, данный метод применим для уже работающих сайтов, которые хотят перейти с ID на CODE в разделах и элементах
Способ подсмотрен в блогах Битрикс
Видео: Вариант применения данного способа
Видео- запись трансляции, без монтажа, потому с провисаниями. Бонусом- способ удалить большой каталог если не удаляется: