Этот выполняется в Настройки > Инструменты > Командная PHP-строка и меняет ВСЕМ статьям в указанном информационном блоке (IBLOCK_ID) с типом IBLOCK_TYPE символьный код на ЧПУ.
Перед запуском рекомендую делать бэкап.
//title: ЧПУ генератор
if (CModule::IncludeModule('iblock')) {
$arTransParams = array(
"max_len" => 100,
"change_case" => 'L', // 'L' - toLower, 'U' - toUpper, false - do not change
"replace_space" => '-',
"replace_other" => '-',
"delete_repeat_replace" => true
);
$add_random = false;
$arElements = array();
$arSelect = Array("NAME", "ID");
$arFilter = Array("IBLOCK_ID" => 6, "IBLOCK_TYPE" => 'info');
$dbElements = CIBlockElement::GetList(array(), $arFilter, false, false, $arSelect);
while ($arElement = $dbElements->GetNext()) {
$transName = CUtil::translit($arElement["NAME"], "ru", $arTransParams);
if($add_random){
$transName = $transName.$arTransParams["replace_space"].$arElement["ID"];
}
$query_update = "UPDATE b_iblock_element
SET `CODE` = '".$transName."'
WHERE `ID` = '".$arElement["ID"]."'
LIMIT 1";
$results_update = $DB->Query( $query_update );
echo $arElement["NAME"]."<br>".$transName . ($results_update ? " <b>updated</b>":" <b>failed</b>")."<br><br>";
}
}