UmiDump: Import

Материал из Umicms
Перейти к:навигация, поиск

Импорт данных в umi-cms. Для того чтобы научиться экспортировать данные читем тут UmiDump: Export

Импорт umiDump

Проблема импортирования больших каталогов решается благодаря использованию standalone скрипта

В этом примере показано, как

  • подключить ядро umi-cms
  • указать домен в который необходимо осуществить импорт
  • указать языковую версию сайта, в которую будут импортироваться данные

Код

Подключение umi-cms

<?php
	//Переменная позволяет отключить переиндексацию свойств 
	//объекта происходящую после каждого $element->commit();
	define("CRON", "CLI");
	error_reporting(E_ALL ^ E_NOTICE);

	// UMI.CMS licensing
	
	$_SERVER['DOCUMENT_ROOT'] = dirname(dirname(__FILE__));
	chdir($_SERVER['DOCUMENT_ROOT'].'/');
	ini_set('include_path', $_SERVER['DOCUMENT_ROOT'].'/');

	//Домен в который необходимо осуществить импорт
	$_SERVER['HTTP_HOST'] = "blogs.umi-cms.ru";
	//Языковая версия сайта в которую будет осуществлен импорт
	$_REQUEST['path'] = "/en/admin/";
	//подключение ядра umi-cms
	include "./config.php";
	//Подключение классов используемых исключительно во время импорта данных
	include "./classes/umiImportRelations/iUmiImportRelations.php";
	include "./classes/umiImportRelations/umiImportRelations.php";

?>

Итак после подключения требуется выполнить код осуществляющий импорт файла.

<?php 
	//Создаем XML Импортер
	$xmlImporter = new umiXmlImporter();
	//Загружаем файл содержащий в себе структуру страниц.
	$xmlImporter->loadXmlFile("umiDumpFile.xml");

	//осуществляем преобразования
	$xmlImporter->analyzeXml();

	//Осуществляем импорт данных в систему
	$xmlImporter->importXml();
	
?>

Таблицы в базе данных UMI.CMS

В umi.cms реализован механизм поддержания связи между старыми и новыми объектами. Сохраняется связь на уровне уникальных идентификаторов из старой системы и их связь с новой системой.

cms3_import_sources

Таблица хранит в себе идентификаторы источников импорта указанные в заголовке файла umiDump

cms3_import_types

Таблица служит для хранения связи между идентификатором типа объекта из старой системы и новым типом

cms3_import_fields

В таблице содержатся исходные идентификаторы полей объекта и связь с полями в импортированном типе данных. Изменять идентификаторы полей в Шаблонах данных можно, т.к. связь на уровне "ID".

cms3_import_relations

Таблица отношений между старыми и новыми id импортируемых объектов. Актуально для версий ниже 2.8.x, в новых версиях достаточно подключить один файл standalone.php для доступа к API.