Всем привет.
Написал простенький скрипт заполнения символного кода элементов инфоблока, протестировал для одного элемента, все норм, сделал цикл, запустил и сервер лег, чет не пойму что не так и как лучше оптимизировать?
Элементов чуть более 300.
Написал простенький скрипт заполнения символного кода элементов инфоблока, протестировал для одного элемента, все норм, сделал цикл, запустил и сервер лег, чет не пойму что не так и как лучше оптимизировать?
| Код |
|---|
$i = 0;
$iblockId = 8;
//$elId = 6463;
$propCode = 'CODE';
$arParams = array(
"replace_space"=>"-",
"replace_other"=>"-"
);
$el = new CIBlockElement;
if(\Bitrix\Main\Loader::includeModule('iblock')){
$arOrder = array("SORT" => "ASC");
$arFilter = array(
'IBLOCK_ID' => $iblockId,
'ACTIVE' => 'Y',
//'ID' => $elId,
);
$arSelect = array(
'ID',
'NAME',
'CODE',
'IBLOCK_ID'
);
$dbRes = CIBlockElement::GetList($arOrder, $arFilter, false, false, $arSelect);
while($arOb = $dbRes->Fetch()){
if($i >= 10) sleep(1);
$name = $arOb['NAME'];
$code = $arOb['CODE'];
$elId = $arOb['ID'];
if(empty($code) && !empty($name)){
$translit = Cutil::translit($name,"ru",$arParams);
$arProp = array(
'IBLOCK_ID' => $iblockId,
$propCode => $translit
);
if($el->Update($elId,$arProp)) {
echo $i++.' = Y<br>';
}else{
$arError[] = $el->LAST_ERROR;
}
}
}
if(!empty($arError)){
dump($arError);
}
}
|
Мой сайт