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()); ?>
