- Модуль: lists
- Путь к файлу: ~/bitrix/modules/lists/lib/importer.php
- Класс: BitrixListsImporter
- Вызов: Importer::createIBlock
static function createIBlock($iblockType, $iblock, $pictureType, $picture, $siteId = null)
{
if (is_null($siteId))
$siteId = CSite::GetDefSite();
$db = CIBlock::GetList(
array(),
array("IBLOCK_TYPE_ID" => $iblockType, "CODE" => $iblock["CODE"], "CHECK_PERMISSIONS" => "N", "SITE_ID" => $siteId)
);
if ($res = $db->Fetch())
return $res["ID"];
$fields = array(
"NAME" => $iblock["NAME"],
"DESCRIPTION" => $iblock["DESCRIPTION"],
"IBLOCK_TYPE_ID" => $iblockType,
"SORT" => $iblock["SORT"],
"CODE" => $iblock["CODE"],
"WORKFLOW" => "N",
"ELEMENTS_NAME" => $iblock["ELEMENTS_NAME"],
"ELEMENT_NAME" => $iblock["ELEMENT_NAME"],
"ELEMENT_ADD" => $iblock["ELEMENT_ADD"],
"ELEMENT_EDIT" => $iblock["ELEMENT_EDIT"],
"ELEMENT_DELETE" => $iblock["ELEMENT_DELETE"],
"SECTIONS_NAME" => $iblock["SECTIONS_NAME"],
"SECTION_NAME" => $iblock["SECTION_NAME"],
"SECTION_ADD" => $iblock["SECTION_ADD"],
"SECTION_EDIT" => $iblock["SECTION_EDIT"],
"SECTION_DELETE" => $iblock["SECTION_DELETE"],
"BIZPROC" => "Y",
"SITE_ID" => array($siteId),
"RIGHTS_MODE" => "E",
);
if ($iblock["SOCNET_GROUP_ID"])
$fields["SOCNET_GROUP_ID"] = $iblock["SOCNET_GROUP_ID"];
static $exts = array(
"image/jpeg" => "jpg",
"image/png" => "png",
"image/gif" => "gif",
);
if (!empty($picture) && isset($exts[$pictureType]))
{
$fn = CTempFile::GetFileName();
MainIODirectory::createDirectory($fn);
$fn .= md5(mt_rand()).".".$exts[$pictureType];
$f = fopen($fn, "wb");
fwrite($f, $picture);
fclose($f);
$fields["PICTURE"] = CFile::MakeFileArray($fn/*, $pictureType*/);
}
$ob = new CIBlock;
$res = $ob->Add($fields);
if ($res)
{
self::createIBlockRights($res);
$list = new CList($res);
if (isset($iblock["~NAME_FIELD"]))
$list->UpdateField("NAME", $iblock["~NAME_FIELD"]);
$list->Save();
CLists::setLiveFeed(1, $res);
return $res;
}
return 0;
}