コード例 #1
0
ファイル: cml2.php プロジェクト: andy-profi/bxApiDocs
 /**
  * <p>Создает таблицы для загрузки XML. Метод динамичный.</p> <p></p> <div class="note"> <b>Примечание:</b> для MySQL если определена константа MYSQL_TABLE_TYPE (<a href="http://dev.1c-bitrix.ru/api_help/main/general/constants.php#mysql_table_type">Специальные константы</a>), то таблицы будут созданы заданного ей типа.</div>
  *
  *
  * @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/createtemporarytables.php
  * @author Bitrix
  */
 public static function CreateTemporaryTables($with_sess_id = false)
 {
     if (!is_object($this) || strlen($this->_table_name) <= 0) {
         $ob = new CIBlockXMLFile();
         return $ob->CreateTemporaryTables();
     } else {
         global $DB;
         if (defined("MYSQL_TABLE_TYPE") && strlen(MYSQL_TABLE_TYPE) > 0) {
             $DB->Query("SET storage_engine = '" . MYSQL_TABLE_TYPE . "'", true);
         }
         $res = $DB->DDL("create table " . $this->_table_name . "\n\t\t\t\t(\n\t\t\t\t\tID int(11) not null auto_increment,\n\t\t\t\t\t" . ($with_sess_id ? "SESS_ID varchar(32)," : "") . "\n\t\t\t\t\tPARENT_ID int(11),\n\t\t\t\t\tLEFT_MARGIN int(11),\n\t\t\t\t\tRIGHT_MARGIN int(11),\n\t\t\t\t\tDEPTH_LEVEL int(11),\n\t\t\t\t\tNAME varchar(255),\n\t\t\t\t\tVALUE longtext,\n\t\t\t\t\tATTRIBUTES text,\n\t\t\t\t\tPRIMARY KEY (ID)\n\t\t\t\t)\n\t\t\t");
         if ($res && defined("BX_XML_CREATE_INDEXES_IMMEDIATELY")) {
             $res = $this->IndexTemporaryTables($with_sess_id);
         }
         return $res;
     }
 }
コード例 #2
0
ファイル: cml2.php プロジェクト: nycmic/bittest
 function CreateTemporaryTables()
 {
     return $this->_xml_file->CreateTemporaryTables();
 }
コード例 #3
0
ファイル: component.php プロジェクト: Satariall/izurit
        $_SESSION["BX_CML2_IMPORT"]["zip"] = false;
        echo "progress\n" . GetMessage("CC_BSC1_ZIP_DONE");
    } else {
        $_SESSION["BX_CML2_IMPORT"]["last_zip_entry"] = $result;
        echo "progress\n" . GetMessage("CC_BSC1_ZIP_PROGRESS");
    }
} elseif ($_GET["mode"] == "import" && $ABS_FILE_NAME) {
    $NS =& $_SESSION["BX_CML2_IMPORT"]["NS"];
    $strError = "";
    $strMessage = "";
    if ($NS["STEP"] < 1) {
        CIBlockXMLFile::DropTemporaryTables();
        $strMessage = GetMessage("CC_BSC1_TABLES_DROPPED");
        $NS["STEP"] = 1;
    } elseif ($NS["STEP"] == 1) {
        if (CIBlockXMLFile::CreateTemporaryTables()) {
            $strMessage = GetMessage("CC_BSC1_TABLES_CREATED");
            $NS["STEP"] = 2;
            foreach (GetModuleEvents("catalog", "OnBeforeCatalogImport1C", true) as $arEvent) {
                $strError = ExecuteModuleEventEx($arEvent, array($arParams, $ABS_FILE_NAME));
            }
        } else {
            $strError = GetMessage("CC_BSC1_TABLE_CREATE_ERROR");
        }
    } elseif ($NS["STEP"] == 2) {
        $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;
コード例 #4
0
ファイル: XmlParserTest.php プロジェクト: OpenBX/obx.core
 public function _testBitrixXMLParser()
 {
     \CModule::IncludeModule('iblock');
     $BXParser = new \CIBlockXMLFile('dvt_yml_import_temp');
     $BXParser->CreateTemporaryTables();
     $NS = array();
     $fp = fopen(static::_DIR_ . '/data/yml_catalog_example.xml', 'r');
     $BXParser->ReadXMLToDatabase($fp, $NS, 0, 10240);
 }
コード例 #5
0
ファイル: cml2.php プロジェクト: ASDAFF/bxApiDocs
	/**
	 * <p>Создает таблицы для загрузки XML.</p> <p><b>Примечание:</b> для MySQL если определена константа MYSQL_TABLE_TYPE (<a href="http://dev.1c-bitrix.ru/api_help/main/general/constants.php#mysql_table_type">Специальные константы</a>), то таблицы будут созданы заданного ей типа. <br></p>
	 *
	 *
	 *
	 *
	 * @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/createtemporarytables.php
	 * @author Bitrix
	 */
	public static function CreateTemporaryTables($with_sess_id = false)
	{
		if(!is_object($this) || strlen($this->_table_name) <= 0)
		{
			$ob = new CIBlockXMLFile;
			return $ob->CreateTemporaryTables();
		}
		else
		{
			global $DB;

			if(defined("MYSQL_TABLE_TYPE") && strlen(MYSQL_TABLE_TYPE) > 0)
				$DB->Query("SET storage_engine = '".MYSQL_TABLE_TYPE."'", true);

			$res = $DB->Query("create table ".$this->_table_name."
				(
					ID int(11) not null auto_increment,
					".($with_sess_id? "SESS_ID varchar(32),": "")."
					PARENT_ID int(11),
					LEFT_MARGIN int(11),
					RIGHT_MARGIN int(11),
					DEPTH_LEVEL int(11),
					NAME varchar(255),
					VALUE longtext,
					ATTRIBUTES text,
					PRIMARY KEY (ID)
				)
			");
			return $res;
		}
	}