Как убрать ненужные символы из названий разделов при выгрузке каталога 1С на сайт

5 июня 2024
BXmeta

При выгрузке каталога 1С на сайт, часто возникает проблема с тем, что названия разделов содержат ненужные символы, которые не подходят для сайта. Эти лишние символы могут включать цифры, точки и другие знаки, которые затрудняют восприятие и навигацию на сайте.

Чтобы решить эту проблему, необходимо удалить ненужные символы из названий разделов. В этой статье мы подробно рассмотрим, как это сделать на примере удаления цифр и точек в системе управления контентом Битрикс.

Решение:
Используем механизм событий bitrix, очищаем название и символьный код.
Для этого в init.php добавляем обработчик на сохранение (добавление и изменение) раздела инфоблока.

<?php
use Bitrix\Main;

$eventManager = Main\EventManager::getInstance();

$eventManager->addEventHandler(
    'iblock',
    'OnBeforeIBlockSectionAdd',
    ['SectionsProcessing', 'clearName']
);
$eventManager->addEventHandler(
    'iblock',
    'OnBeforeIBlockSectionUpdate',
    ['SectionsProcessing', 'clearName']
);

class SectionsProcessing
{
    public static function clearName(&$arFields) : void
    {
        $arFields['NAME'] = self::removeUnwantedCharacters($arFields['NAME']);
        $arFields['CODE'] = self::removeUnwantedCharacters($arFields['CODE']);
    }

    private static function removeUnwantedCharacters($string) : string
    {
        return preg_replace('/^[\d.\s]+/', '', $string);
    }
}