UmiDump: Import — различия между версиями
Mad grant (обсуждение | вклад) |
|||
(не показаны 3 промежуточные версии 3 участников) | |||
Строка 55: | Строка 55: | ||
==Таблицы в базе данных UMI.CMS== | ==Таблицы в базе данных UMI.CMS== | ||
− | В umi.cms реализован механизм | + | В umi.cms реализован механизм поддержания связи между старыми и новыми объектами. Сохраняется связь на уровне уникальных идентификаторов из старой системы и их связь с новой системой. |
===cms3_import_sources=== | ===cms3_import_sources=== | ||
Строка 66: | Строка 66: | ||
===cms3_import_relations=== | ===cms3_import_relations=== | ||
Таблица отношений между старыми и новыми id импортируемых объектов. | Таблица отношений между старыми и новыми id импортируемых объектов. | ||
+ | Актуально для версий ниже 2.8.x, в новых версиях достаточно подключить один файл standalone.php для доступа к API. | ||
+ | [[Категория:Вопросы установки настройки и переноса]][[Категория:API]] |
Текущая версия на 21:48, 4 июня 2013
Импорт данных в 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.