Ejemplo n.º 1
0
 function ImportIBlockFromXML($xmlFile, $iblockCode, $iblockType, $siteID, $permissions = array())
 {
     if (!CModule::IncludeModule("iblock")) {
         return false;
     }
     $rsIBlock = CIBlock::GetList(array(), array("CODE" => $iblockCode, "TYPE" => $iblockType, "SITE_ID" => $siteID));
     if ($arIBlock = $rsIBlock->Fetch()) {
         return false;
     }
     if (!is_array($siteID)) {
         $siteID = array($siteID);
     }
     require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/iblock/classes/" . strtolower($GLOBALS["DB"]->type) . "/cml2.php";
     $iblockID = ImportXMLFile($xmlFile, $iblockType, $siteID, $section_action = "N", $element_action = "N", $use_crc = false, $preview = false, $sync = false, $return_last_error = false, $return_iblock_id = true);
     //Import was not able to return iblock_id by error
     if (!is_integer($iblockID) || $iblockID <= 0) {
         //try to find iblock
         $rsIBlock = CIBlock::GetList(array(), array("CODE" => $iblockCode, "TYPE" => $iblockType, "SITE_ID" => $siteID));
         if ($arIBlock = $rsIBlock->Fetch()) {
             $iblockID = $arIBlock["ID"];
         } else {
             $iblockID = false;
         }
     }
     //Set iblock permissions
     if ($iblockID > 0) {
         if (empty($permissions)) {
             $permissions = array(1 => "X", 2 => "R");
         }
         CIBlock::SetPermission($iblockID, $permissions);
     }
     return $iblockID;
 }
Ejemplo n.º 2
0
function DEMO_IBlock_ImportXML($file, $site_id, $xml_force = false, $workflow = false)
{
    if (strlen($file) <= 0) {
        return false;
    }
    $xml_dir = $_SERVER['DOCUMENT_ROOT'] . "/bitrix/wizards/bitrix/demo/modules/iblock/xml/" . LANGUAGE_ID;
    if (file_exists($xml_dir) && is_dir($xml_dir)) {
        if (is_file($xml_dir . "/" . $file)) {
            if (preg_match("/^(\\d\\d\\d)_([a-z]+)_(.+)_([a-z]{2})\\.xml\$/", $file, $match)) {
                $documentRoot = rtrim(str_replace(array("\\\\", "//"), array("\\", "/"), $_SERVER["DOCUMENT_ROOT"]), "\\/");
                $arFile = array("DIR" => substr($xml_dir, strlen($documentRoot)), "NAME" => $file, "TYPE" => $match[2], "XML_ID" => $match[3], "LANG" => $match[4]);
                if ($arFile["TYPE"] == "FUTURE") {
                    $arFile["TYPE"] = "xmlcatalog";
                }
                //Check if iblock exists
                $obIBlock = new CIBlock();
                $rsIBlock = $obIBlock->GetList(array(), array("XML_ID" => $arFile["XML_ID"]));
                $arIBlock = $rsIBlock->Fetch();
                if (!$arIBlock || $xml_force === true) {
                    //Create iblock type
                    DEMO_IBlock_CreateType(array($arFile["TYPE"]));
                    ImportXMLFile($arFile["DIR"] . "/" . $arFile["NAME"], $arFile["TYPE"], array($site_id), "N", "N");
                    $rsIBlock = $obIBlock->GetList(array(), array("XML_ID" => $arFile["XML_ID"]));
                    $arIBlock = $rsIBlock->Fetch();
                    if (is_array($arIBlock)) {
                        $obIBlock = new CIBlock();
                        if ($workflow === "bizproc") {
                            if (IsModuleInstalled('bizproc')) {
                                $obIBlock->Update($arIBlock["ID"], array("WORKFLOW" => "N", "BIZPROC" => "Y"));
                            } else {
                                $obIBlock->Update($arIBlock["ID"], array("WORKFLOW" => "Y", "BIZPROC" => "N"));
                            }
                        } elseif ($workflow) {
                            $obIBlock->Update($arIBlock["ID"], array("WORKFLOW" => "Y"));
                        }
                    }
                }
                if ($arIBlock["ID"]) {
                    $obIBlock = new CIBlock();
                    $obIBlock->SetPermission($arIBlock["ID"], array(1 => "X", 2 => "R"));
                }
                return $arIBlock["ID"];
            }
        }
    }
    return false;
}
Ejemplo n.º 3
0
	function ImportIBlockFromXML($xmlFile, $iblockCode, $iblockType, $siteID, $permissions = Array(), $checkExists = true)
	{
		if (!CModule::IncludeModule("iblock"))
			return false;

		if($checkExists)
		{
				$rsIBlock = CIBlock::GetList(array(), array("CODE" => $iblockCode, "TYPE" => $iblockType));
				if ($arIBlock = $rsIBlock->Fetch())
					return false;
		}

		if (!is_array($siteID))
			$siteID = Array($siteID);

		require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/iblock/classes/".strtolower($GLOBALS["DB"]->type)."/cml2.php");
		ImportXMLFile($xmlFile, $iblockType, $siteID, $section_action = "N", $element_action = "N");

		$iblockID = false;
		$rsIBlock = CIBlock::GetList(array(), array("CODE" => $iblockCode, "TYPE" => $iblockType));
		if ($arIBlock = $rsIBlock->Fetch())
		{
			$iblockID = $arIBlock["ID"];

			if (empty($permissions))
				$permissions = Array(1 => "X", 2 => "R");

			CIBlock::SetPermission($iblockID, $permissions);
		}

		return $iblockID;
	}
Ejemplo n.º 4
0
    if (!$success) {
        return;
    }
}
// 2. Import iblock
$iBlockId = 0;
$db_res = CIBlock::GetList(array(), array("CODE" => "photo", "XML_ID" => "photo-gallery"));
if ($db_res && ($res = $db_res->Fetch())) {
    $iBlockId = intVal($res["ID"]);
} else {
    $source_base = dirname(__FILE__);
    $documentRoot = rtrim(str_replace(array("\\\\", "//", "\\"), array("\\", "/", "/"), $_SERVER["DOCUMENT_ROOT"]), "\\/");
    $source_base = substr($source_base, strLen($documentRoot));
    $source_base = str_replace(array("\\", "//"), "/", "/" . $source_base . "/");
    require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/iblock/classes/" . $DBType . "/cml2.php";
    $res = ImportXMLFile($source_base . "xml/" . LANGUAGE_ID . "/photogallery.xml", "gallery", $SITE_ID);
    $db_res = CIBlock::GetList(array(), array("CODE" => "photo", "XML_ID" => "photo-gallery"));
    if ($db_res && ($res = $db_res->Fetch())) {
        $iBlockId = intVal($res["ID"]);
    }
}
if ($iBlockId <= 0) {
    return false;
}
CIBlock::SetPermission($iBlockId, array("1" => "W", "2" => "R"));
// 3. Add Forum
$arParams = array("USE_COMMENTS" => "N", "COMMENTS_TYPE" => "none", "FORUM_ID" => "", "BLOG_URL" => "", "PATH_TO_SMILE" => "");
if (CModule::IncludeModule("forum")) {
    // 3.1 Add group
    $iGroupId = 0;
    $db_res = CForumGroup::GetListEx(array(), array("LID" => LANGUAGE_ID));