Евгений Жуков, спасибо! Писал вопрос и понял что и правда надо заглянуть как устроен метод WizardServices::ImportIBlockFromXML, увидел что он ничего не создаёт и доработал модуль. Вот, может кому пригодится (написан на скорую руку, не судите строго):
[CODE]if(CModule::IncludeModule("iblock")) {
//Проверяем наличие подходящего типа инфоблока
$dbIblockType = CIBlockType::GetList(array("SORT"=>"ASC"), array("=ID"=>$iBlockTypeCode));
if(!$arIblockType = $dbIblockType->Fetch()){
//Иначе создаём нужный тип, а затем ипортируем инфоблок
$arFields = Array(
"ID"=>$iBlockTypeCode,
"SECTIONS"=>"N",
"IN_RSS"=>"N",
"SORT"=>10,
"LANG"=>Array(
"ru"=>Array("NAME" => "SEO настройки")
)
);
$obBlocktype = new CIBlockType;
$DB->StartTransaction();
$res = $obBlocktype->Add($arFields);
if(!$res){
$DB->Rollback();
echo 'Error: '.$obBlocktype->LAST_ERROR.'<br>';
} else {
$DB->Commit();
}
}
}
//Импорт инфоблока
WizardServices::ImportIBlockFromXML(
"/bitrix/modules/bsseo/install/xml/seo_ib.xml",
$iBlockCode,
$iBlockTypeCode,
SITE_ID,
$permissions = Array(
"1" => "X",
"2" => "R",
)
);
[/CODE]
ещё раз повторюсь это пишется в файле /install/index.php модуля, в самом начале, до инициализации класса модуля.
[CODE]if(CModule::IncludeModule("iblock")) {
//Проверяем наличие подходящего типа инфоблока
$dbIblockType = CIBlockType::GetList(array("SORT"=>"ASC"), array("=ID"=>$iBlockTypeCode));
if(!$arIblockType = $dbIblockType->Fetch()){
//Иначе создаём нужный тип, а затем ипортируем инфоблок
$arFields = Array(
"ID"=>$iBlockTypeCode,
"SECTIONS"=>"N",
"IN_RSS"=>"N",
"SORT"=>10,
"LANG"=>Array(
"ru"=>Array("NAME" => "SEO настройки")
)
);
$obBlocktype = new CIBlockType;
$DB->StartTransaction();
$res = $obBlocktype->Add($arFields);
if(!$res){
$DB->Rollback();
echo 'Error: '.$obBlocktype->LAST_ERROR.'<br>';
} else {
$DB->Commit();
}
}
}
//Импорт инфоблока
WizardServices::ImportIBlockFromXML(
"/bitrix/modules/bsseo/install/xml/seo_ib.xml",
$iBlockCode,
$iBlockTypeCode,
SITE_ID,
$permissions = Array(
"1" => "X",
"2" => "R",
)
);
[/CODE]
ещё раз повторюсь это пишется в файле /install/index.php модуля, в самом начале, до инициализации класса модуля.