Добро пожаловать в самую большую библиотеку wordpress-кода в рунете

Массовые замены в названиях или других элементах инфоблоков Битрикс

Bitrix · 30.08.2024 10:39

0 0 115

Скрипт позволяет пройтись по указанным полям (['ID', 'NAME']) инфоблока ($IBID) и выполнить в нем необходимые замены. В данном примере - убрать лишние точки из названия и вывести на экран потом всю отладочную информацию и полученный результат

/**
* This script will go through all elements of IBLOCK_ID = 2 and check their names for errors.
* If an error is found, it will be logged to the console and the name will be corrected.
* The corrected name will also be logged to the console.
* Finally, the element will be updated with the new name.
*/

CModule::IncludeModule('iblock');

// The ID of the information block to process
$IBID = 2;

// Get a list of all elements in the information block
$obj = CIBlockElement::GetList(
[], // Filter
['IBLOCK_ID' => $IBID], // Filter by information block
false, // Don't use cache
false, // Don't use filter
['ID', 'NAME'] // Return only ID and NAME fields
);

// Iterate over all elements
while ($item = $obj->GetNext()) {
$newName = false;

// Check if the name contains the first error
if (mb_strpos($item['NAME'], '. - ') !== false) {
// Log the error to the console
echo 'Имя с ошибкой №1 у товара ID ' . $item['ID'] . ': ' . $item['NAME'] . "\r\n";
// Correct the name
$newName = str_replace('. - ', ' - ', $item['NAME']);
}

// Check if the name contains the second error
if (mb_strpos($item['NAME'], ' ,') !== false) {
// Log the error to the console
echo 'Имя с ошибкой №2 у товара ID ' . $item['ID'] . ': ' . $item['NAME'] . "\r\n";
// Correct the name
$newName = str_replace([' , ',' ,'], ', ', $item['NAME']);
}

// If the name was corrected, log the new name to the console and update the element
if ($newName) {
echo 'Новое: ' . $newName . "\r\n";

// Update the element
$el = new CIBlockElement;
$arFields = ['NAME' => $newName];
$q = $el->Update($item['ID'], $arFields);
if ($q) {
echo "- Обновлено название\r\n\r\n";
}
}
}

Обсудить сниппет
romapad

romapad

присоединился
30.04.2016

  • 69 Добавлено
    Сниппетов
  • 2 Получено
    Лайков
  • 0 Comments Posted
Теги
Поделиться с друзьями