Добавление типа информационного блока в Bitrix с помощью API
Следующий PHP код демонстрирует каким образом может быть создан тип информационного блока bitrix с помощью API.
Результат выполнения кода.
Результатом выполнения строчки с var_dump будет: string(7) "test123", то есть переменная $res будет содержать Id типа только что созданного информационного блока.
На изображении выше есть галочка: "Использовать древовидный классификатор элементов по разделам", она в массиве $arFields устанавливается ключом SECTIONS установленным в Y.
Получение информации о типе информационного блока с помощью API
Есть такой метод как CIBlockType::GetByID который отчасти позволяет решить данную задачу, при этом я не буду его использовать, поскольку у данного метода не хватает русских названий связанных с типом информационного блока, при этом чтобы продемонстрировать что именно он делает, я приведу var_dump созданного выше по статье типа информационного блока, а именно следующий листинг содержит результат выполнения PHP-кода var_dump(CIBlockType::GetByID("test123"));
Таким образом для решения задачи будем использовать метод CIBlockType::GetByIDLang, который принимает 2 параметра: 1) Id типа информационного блока(в данном случаи test123) и идентификатор языка(в данном случаи en или ru), для примера приведу результат выполнения кода var_dump(CIBlockType::GetByIDLang('test123', 'ru'));
Если в методе CIBlockType::GetByIDLang передать ошибочный идентификатор языка(например e2) то будет возвращена информация для Русского языка, не зависимо от того в каком порядке передавалась информация для языков в массиве под клечом LANG. Если же передать Id не существующего типа информационного блока то метод CIBlockType::GetByIDLang вернёт false.
Следующий PHP код получает массив с информацией о типе информационного блока в том формате, в котором он может быть использован для создания типа информационного блока через API.
Результат выполнения var_dump($arFields); из листинга выше в рассматриваемом случаи будет иметь следующий вид.