Интернационализация инфоблоков
Недавно я сделал модуль интернационализации инфоблоков «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 |
✎ |
Конвертацию инфоблоков рекомендую производить через миграции БД.