UmiDump: Export
Материал из Umicms
Экспорт данных из umi-cms. Для того чтобы импортировать данные читайте тут UmiDump: Import
Экспорт umiDump
Проблема экспорта больших каталогов решается благодаря использованию standalone скрипта
В этом примере показано, как
- подключить ядро umi-cms
- указать домен из которого необходимо осуществить экспорт
- указать языковую версию сайта, из которой будут экспортироваться данные
Код
Подключение umi-cms
<?php
//Переменная позволяет отключить переиндексацию свойств
//объекта происходящую после каждого $object->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
$hierarchy_type_id =
umiHierarchyTypesCollection::getInstance()->getTypeByName("catalog", "object")->getId();
$sel = new umiSelection();
$sel->setHierarchyFilter();
$sel->addHierarchyFilter($elements, $hierarchy_type_id);
$result = umiSelectionsParser::runSelection($sel);
?>
Итак после подключения классов ядра umi-cms требуется выполнить код осуществляющий экспорт данных в файл. Экспортированы будут элементы полученные нами в переменную $result. Данные импортируются в файл umiDumpFile.xml
<?php
$exporter = new umiXmlExporter();
$exporter->setElements($result);
$exporter->run();
file_put_contents("umiDumpFile.xml",$exporter->getResultFile());
?>