static function import($iblockType, $datum, $siteId = null)
{
if (empty($datum))
throw new MainArgumentNullException("datum");
if (mb_substr($datum, 0, 10) === "compressed")
$datum = gzuncompress(MainTextBinaryString::getSubstring($datum, 10));
$len = intval(MainTextBinaryString::getSubstring($datum, 0, 10));
$iblockSerialized = MainTextBinaryString::getSubstring($datum, 10, $len);
$datum = MainTextBinaryString::getSubstring($datum, $len + 10);
$marker = MainTextBinaryString::getSubstring($datum, 0, 1);
$picture = null;
$pictureType = null;
if ($marker == "P")
{
$len = intval(MainTextBinaryString::getSubstring($datum, 1, 10));
$pictureType = MainTextBinaryString::getSubstring($datum, 11, $len);
$datum = MainTextBinaryString::getSubstring($datum, $len + 11);
$len = intval(MainTextBinaryString::getSubstring($datum, 0, 10));
$picture = MainTextBinaryString::getSubstring($datum, 10, $len);
$datum = MainTextBinaryString::getSubstring($datum, $len + 10);
$marker = MainTextBinaryString::getSubstring($datum, 0, 1);
}
$iblock = CheckSerializedData($iblockSerialized) ? unserialize($iblockSerialized) : array();
$iblock = MainTextEncoding::convertEncodingArray($iblock, "UTF-8", LANG_CHARSET);
$iblockId = static::createIBlock($iblockType, $iblock, $pictureType, $picture, $siteId);
if ($iblockId > 0)
{
$documentType = self::getDocumentType($iblockType, $iblockId);
while (!empty($datum))
{
if ($marker == "B")
{
$len = intval(MainTextBinaryString::getSubstring($datum, 1, 10));
$bpDescr = MainTextBinaryString::getSubstring($datum, 11, $len);
$datum = MainTextBinaryString::getSubstring($datum, $len + 11);
$bpDescr = CheckSerializedData($bpDescr) ? unserialize($bpDescr) : array();
$bpDescr = MainTextEncoding::convertEncodingArray($bpDescr, "UTF-8", LANG_CHARSET);
$len = intval(MainTextBinaryString::getSubstring($datum, 0, 10));
$bp = MainTextBinaryString::getSubstring($datum, 10, $len);
$datum = MainTextBinaryString::getSubstring($datum, $len + 10);
static::importTemplate($documentType, $bpDescr, $bp);
}
else
{
}
if (empty($datum))
break;
$marker = MainTextBinaryString::getSubstring($datum, 0, 1);
}
}
}