Ejemplo n.º 1
0
 public function importXMLData()
 {
     if (!$this->_bIBlockSelected) {
         return false;
     }
     $bTypeSuccess = $this->createIBlockType();
     if (!$bTypeSuccess) {
         return false;
     }
     if (!$this->deleteOldIBlockData()) {
         return false;
     }
     // Это если мы реинсталлируем данные инфоблоков
     if ($this->_iblockID == 0) {
         $arFields = Tools::arrayMergeRecursiveDistinct(self::$_arDefaultIBlockFields, $this->_arConfig['IBLOCK'][$this->_iblockCode]);
         $arPermissions = $arFields['PERMISSIONS'];
         $dbGroup = \CGroup::GetList($by = "", $order = "", array("STRING_ID" => "content_editor"));
         if ($arGroup = $dbGroup->Fetch()) {
             $arPermissions[$arGroup["ID"]] = 'W';
         }
         unset($arFields['IBLOCK_TYPE_ID']);
         unset($arFields['XML_FILE']);
         unset($arFields['FORM_SETTINGS']);
         unset($arFields['PERMISSIONS']);
         $arFields['CODE'] = $this->_iblockCode;
         $arFields['LID'] = WIZARD_SITE_ID;
         $this->_iblockID = \WizardServices::ImportIBlockFromXML($this->_iblockXMLFile, $this->_iblockCode, $this->_iblockType, WIZARD_SITE_ID, $arPermissions);
         if ($this->_iblockID < 1) {
             die('Error importing xml-data:' . "<br /> \n" . 'xml file: "' . htmlspecialchars($this->_iblockXMLFile) . '"' . ",<br /> \n" . 'iblock code: "' . htmlspecialchars($this->_iblockCode) . '"' . ",<br /> \n" . 'iblock type: "' . htmlspecialchars($this->_iblockType) . '"');
         }
         $iblock = new \CIBlock();
         $iblock->Update($this->_iblockID, $arFields);
     } else {
         $arSites = self::getIBlockSites($this->_iblockID);
         if (!in_array(WIZARD_SITE_ID, $arSites)) {
             $arSites[] = WIZARD_SITE_ID;
             $iblock = new \CIBlock();
             $iblock->Update($this->_iblockID, array("LID" => $arSites));
         }
     }
 }