Евгений Жуков, спасибо! Писал вопрос и понял что и правда надо заглянуть как устроен метод WizardServices::ImportIBlockFromXML, увидел что он ничего не создаёт и доработал модуль. Вот, может кому пригодится (написан на скорую руку, не судите строго):
ещё раз повторюсь это пишется в файле /install/index.php модуля, в самом начале, до инициализации класса модуля.
Код |
---|
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", ) ); |
ещё раз повторюсь это пишется в файле /install/index.php модуля, в самом начале, до инициализации класса модуля.
Всё сбудется, стоит только расхотеть...