コード例 #1
0
ファイル: cml2.php プロジェクト: nycmic/bittest
 function IndexTemporaryTables()
 {
     return $this->_xml_file->IndexTemporaryTables();
 }
コード例 #2
0
ファイル: cml2.php プロジェクト: andy-profi/bxApiDocs
 /**
  * <p>Индексация таблиц для ускорения доступа. Необходимо вызвать после загрузки данных из файла в таблицы БД, но до обработки этих данных. Метод динамичный. <br></p>
  *
  *
  * @param bool $with_sess_id = false Если значение <i>true</i>, то будут создаваться временные таблицы с
  * поддержкой нескольких сессий "одновременного" импорта. Введён
  * для совместимости. Необязательный параметр.
  *
  * @return bool <p>Если во время создания индексов произойдет ошибка БД, метод
  * вернет false.</p>
  *
  * <h4>See Also</h4> 
  * <ul> <li><a href="http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockxmlfile/index.php">CIBlockXMLFile</a></li>
  * </ul><br>
  *
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/iblock/classes/ciblockxmlfile/indextemporarytables.php
  * @author Bitrix
  */
 public static function IndexTemporaryTables($with_sess_id = false)
 {
     if (!is_object($this) || strlen($this->_table_name) <= 0) {
         $ob = new CIBlockXMLFile();
         return $ob->IndexTemporaryTables();
     } else {
         global $DB;
         $res = true;
         if ($with_sess_id) {
             if (!$DB->IndexExists($this->_table_name, array("SESS_ID", "PARENT_ID"))) {
                 $res = $DB->DDL("CREATE INDEX ix_" . $this->_table_name . "_parent on " . $this->_table_name . "(SESS_ID, PARENT_ID)");
             }
             if ($res && !$DB->IndexExists($this->_table_name, array("SESS_ID", "LEFT_MARGIN"))) {
                 $res = $DB->DDL("CREATE INDEX ix_" . $this->_table_name . "_left on " . $this->_table_name . "(SESS_ID, LEFT_MARGIN)");
             }
         } else {
             if (!$DB->IndexExists($this->_table_name, array("PARENT_ID"))) {
                 $res = $DB->DDL("CREATE INDEX ix_" . $this->_table_name . "_parent on " . $this->_table_name . "(PARENT_ID)");
             }
             if ($res && !$DB->IndexExists($this->_table_name, array("LEFT_MARGIN"))) {
                 $res = $DB->DDL("CREATE INDEX ix_" . $this->_table_name . "_left on " . $this->_table_name . "(LEFT_MARGIN)");
             }
         }
         return $res;
     }
 }
コード例 #3
0
ファイル: component.php プロジェクト: Satariall/izurit
     $fp = fopen($ABS_FILE_NAME, "rb");
     $total = filesize($ABS_FILE_NAME);
     if ($total > 0 && is_resource($fp)) {
         $obXMLFile = new CIBlockXMLFile();
         if ($obXMLFile->ReadXMLToDatabase($fp, $NS, $arParams["INTERVAL"])) {
             $NS["STEP"] = 3;
             $strMessage = GetMessage("CC_BSC1_FILE_READ");
         } else {
             $strMessage = GetMessage("CC_BSC1_FILE_PROGRESS", array("#PERCENT#" => $total > 0 ? round($obXMLFile->GetFilePosition() / $total * 100, 2) : 0));
         }
         fclose($fp);
     } else {
         $strError = GetMessage("CC_BSC1_FILE_ERROR");
     }
 } elseif ($NS["STEP"] == 3) {
     if (CIBlockXMLFile::IndexTemporaryTables()) {
         $strMessage = GetMessage("CC_BSC1_INDEX_CREATED");
         $NS["STEP"] = 4;
     } else {
         $strError = GetMessage("CC_BSC1_INDEX_CREATE_ERROR");
     }
 } elseif ($NS["STEP"] == 4) {
     $obCatalog = new CIBlockCMLImport();
     $obCatalog->InitEx($NS, array("files_dir" => $WORK_DIR_NAME, "use_crc" => $arParams["USE_CRC"], "preview" => $preview, "detail" => $detail, "use_offers" => $arParams["USE_OFFERS"], "force_offers" => $arParams["FORCE_OFFERS"], "use_iblock_type_id" => $arParams["USE_IBLOCK_TYPE_ID"], "translit_on_add" => $arParams["TRANSLIT_ON_ADD"], "translit_on_update" => $arParams["TRANSLIT_ON_UPDATE"], "translit_params" => $arTranslitParams, "skip_root_section" => $arParams["SKIP_ROOT_SECTION"], "disable_change_price_name" => $arParams["DISABLE_CHANGE_PRICE_NAME"]));
     $result = $obCatalog->ImportMetaData(array(1, 2), $arParams["IBLOCK_TYPE"], $arParams["SITE_LIST"]);
     if ($result === true) {
         $strMessage = GetMessage("CC_BSC1_METADATA_IMPORTED");
         $NS["STEP"] = 5;
     } elseif (is_array($result)) {
         $strError = GetMessage("CC_BSC1_METADATA_ERROR") . implode("\n", $result);
     } else {