Интернационализация инфоблоков

Недавно я сделал модуль интернационализации инфоблоков «1С-Битрикса». В интерфейсе панели управления появляется кнопка создания элемента на другом языке. При этом, все записи одного элемента разных языковых версий будут иметь один и тот же публичный идентификатор, что позволит сделать на сайте переключалку между языковыми версиями материалов.

Для того, что бы инфоблок стал интернационализированным, его необходимо сконвертировать с помощью АПИ модуля:

<?php

use Bitrix\Main\Loader;
use Notamedia\i18n\Iblock\Converter\IblockManager;

// 1. Installation module notamedia.i18n

// 2. Convertion info block
if (Loader::includeModule('notamedia.i18n')) {
    $iblockId = 1; // ID of your info block

    $manager = new IblockManager($iblockId);
    $manager->convert('PUBLIC_ID', 'LANG', 'ru');
}

«Битрикс» я стараюсь не использовать, а его «инфоблоки» и подавно, но появилась задача довольно быстро и просто сделать интернационализацию инфоблока с небольшим объёмом данных. Поэтому, у модуля отсутствует интерфейс для конвертации инфоблоков, нет юнит-тестов. Возможно, кто-то будет использовать модуль для решения подобной задачи и даст ему второе дыхание.


composer require notamedia/bitrix-i18n

Репозиторий

Конвертацию инфоблоков рекомендую производить через миграции БД.

Поделиться
Отправить
Запинить
Популярное