Класс Modulemarket\Translator\Iblock\IblockTable — ORM-таблица переводов настроек инфоблока в 1С-Битрикс.
Наследует Bitrix\Main\Entity\DataManager, таблица БД — fan_translator_iblock.
Карта полей строится как объединение ключей ID, LANGUAGE_ID, SITE_ID с подмножеством полей базовой карты Bitrix\Iblock\IblockTable,
отобранных методом getTranslatableFields().
Строка перевода инфоблока — запись с составным первичным ключом:
ID инфоблока + LANGUAGE_ID + SITE_ID.
Хранит переводимые атрибуты типа инфоблока для выбранного языка и сайта.
Примечание — исходный файл класса:
/bitrix/modules/modulemarket.translator/lib/iblock/iblocktable.php.
Важно! Перед вызовами подключайте модули iblock и modulemarket.translator.
В выборках и при добавлении записей явно задавайте LANGUAGE_ID и SITE_ID в параметрах или через фильтр — значения по умолчанию полей завязаны на константы текущего контекста.
Обзор API класса
| Компонент | Описание |
|---|---|
getTableName() |
Возвращает имя таблицы: fan_translator_iblock. |
getMap() |
Поля ID, LANGUAGE_ID, SITE_ID и переводимые колонки из карты Iblock\IblockTable. |
getTranslatableFields() |
Подмножество переводимых полей: NAME, DESCRIPTION, ACTIVE. |
UseForcedUpdates($id) |
Проверка режима «принудительных обновлений» для инфоблока по константе окружения. |
Метод IblockTable::UseForcedUpdates()
Метод статический: определяет, включено ли для данного инфоблока принудительное обновление переводов через именованную PHP-константу. Примечание по развитию: в коде модуля запланирован перенос логики в настройки модуля вместо констант.
Сигнатура метода
bool IblockTable::UseForcedUpdates($id);
Параметры
| Параметр | Описание | С версии |
|---|---|---|
$id |
Числовой идентификатор инфоблока (ID в Bitrix\Iblock\IblockTable). |
Возвращаемое значение
Возвращает true, если в коде определена константа вида FORCE_TRANSLATE_IB_ID_{ID}, где {ID} — переданный идентификатор инфоблока.
Иначе возвращается false.
Пример
use Modulemarket\Translator\Iblock\IblockTable;
// В php_interface или конфигурации до вызова:
// define('FORCE_TRANSLATE_IB_ID_5', true);
$iblockId = 5;
if (IblockTable::UseForcedUpdates($iblockId)) {
echo 'Для инфоблока включены принудительные обновления перевода.';
}
Формат константы FORCE_TRANSLATE_IB_ID_*
Пример: чтение перевода инфоблока (getList)
use Bitrix\Main\Loader;
use Modulemarket\Translator\Iblock\IblockTable;
Loader::includeModule('iblock');
Loader::includeModule('modulemarket.translator');
$iblockId = 12;
$res = IblockTable::getList([
'filter' => [
'=ID' => $iblockId,
'=LANGUAGE_ID' => 'ua',
'=SITE_ID' => 's1',
],
'select' => ['ID', 'LANGUAGE_ID', 'SITE_ID', 'NAME', 'DESCRIPTION', 'ACTIVE'],
'limit' => 1,
]);
if ($row = $res->fetch()) {
echo htmlspecialcharsbx($row['NAME']);
}Пример: добавление строки перевода инфоблока (add)
use Bitrix\Main\Loader;
use Modulemarket\Translator\Iblock\IblockTable;
Loader::includeModule('iblock');
Loader::includeModule('modulemarket.translator');
$result = IblockTable::add([
'ID' => 12,
'LANGUAGE_ID' => 'ua',
'SITE_ID' => 's1',
'ACTIVE' => 'Y',
'NAME' => 'Название типа инфоблока (перевод)',
'DESCRIPTION' => 'Описание на выбранном языке',
]);
if ($result->isSuccess()) {
echo 'Перевод параметров инфоблока сохранён.';
} else {
print_r($result->getErrorMessages());
}
Количество показов: 688
Дата изменения: 15.05.2026 23:32:40