На сайте доноре в корне создаем файл export.php
Для Evolution CMS<?php
define('MODX_API_MODE', true);
define('IN_MANAGER_MODE', false);
include_once("index.php");
$modx->db->connect();
if (empty ($modx->config)) {
$modx->getSettings();
}
$modx->runSnippet('DocLister',array('parents'=>0,'showParent'=>1,'display'=>-1,'tvPrefix'=>'','tvList'=>'mages,price','depth'=>28,'prepareWrap'=>function($data){echo '$docs = '.var_export($data,1).';';exit();}));
Для MODX Revolution
<?php
header('Content-Type: text/html; charset= utf-8');
define('MODX_API_MODE', true);
require_once($_SERVER['DOCUMENT_ROOT'].'/index.php');
$modx=new modX();
$modx->initialize('web');
echo $modx->runSnippet('pdoResources',array('parents'=>8,'limit'=>0,'return'=>'json','includeContent'=>1,'tvPrefix'=>'','includeTVs'=>'price,image'));
Здесь указываем parents — корневой родитель, который мы качаем, ТВшки, ну и далее по вкусу.
На сайте реципиенте в корне создаем файлик import.php
Для Evolution CMS<?php
set_time_limit(0);
define('MODX_API_MODE', true);
define('IN_MANAGER_MODE', false);
include_once("index.php");
$modx->db->connect();
if (empty ($modx->config)) {
$modx->getSettings();
}
include_once(MODX_BASE_PATH."assets/lib/MODxAPI/modResource.php");
$file = file_get_contents('https://you_site.com/export.php');
eval($file);
$docs = $docs['docs'];
$start = 0;
$parents[$start] = 33523;
function form_tree($mess){
if (!is_array($mess)) {
return false;
}
$tree = array();
foreach ($mess as $value) {
$tree[$value['parent'[] = $value;
}
return $tree;
}
function build_tree($cats, $parent_id){
global $modx,$parents;
if (is_array($cats) && isset($cats[$parent_id])) {
foreach ($cats[$parent_id] as $cat) {
$id = $cat['id'];
unset($cat['id']);
/*
* здесь можем подменить шаблончики и т.д.
*/
if ($parents[$parent_id]) $cat['parent'] = $parents[$parent_id];
$doc = new modResource($modx);
$doc->create($cat);
$parents[$id] = $doc->save(false, false);
build_tree($cats, $id);
}
} else {
return false;
}
return $tree;
}
$tree = form_tree($docs);
build_tree($tree, $start);
echo 'Import site complete!';
Для MODX Revolution
<?php
header('Content-Type: text/html; charset= utf-8');
define('MODX_API_MODE', true);
require_once($_SERVER['DOCUMENT_ROOT'].'/index.php');
$modx=new modX();
$modx->initialize('web');
$file = file_get_contents('https://you_site.com/export.php');
$docs = json_decode($file,1);
$start = 8;
$parents[$start] = 21161;
function form_tree($mess){
if (!is_array($mess)) {
return false;
}
$tree = array();
foreach ($mess as $value) {
$tree[$value['parent'[] = $value;
}
return $tree;
}
function build_tree($cats, $parent_id){
global $modx,$parents;
if (is_array($cats) && isset($cats[$parent_id])) {
foreach ($cats[$parent_id] as $cat) {
$id = $cat['id'];
unset($cat['id']);
/*
* здесь можем подменить шаблончики и т.д.
*/
if ($parents[$parent_id]) $cat['parent'] = $parents[$parent_id];
$resource = $modx->newObject('modResource');
foreach($cat as $key => $val) $resource->set($key, $val);
$parents[$id] = $resource->save();
build_tree($cats, $id);
}
} else {
return false;
}
return $tree;
}
$tree = form_tree($docs);
build_tree($tree, $start);
echo 'Import site complete!';
Здесь указываем сайт, с которого будем копировать, в $start указываем корневой айдишник на сайте доноре, в далее значение в массиве — в какой ресурс копировать.
Проверил на нескольких сайтах — работает.
По окончанию работ не забудьте снести эти файлики)
P.S. В связи с моими хреновыми знаниями ревы мог не учесть различные подводные камни, связанные со связанными таблицами и прочим.
Анастасия(F1fanatica) 17.04.2021 23:59 #
Андрей Казунин 19.04.2021 00:07 #
Анастасия(F1fanatica) 20.04.2021 19:10 #
Я тебе говорила — бабе цвет, детям-мороженное,
Смотри, не перепутай!
Андрей Казунин 20.04.2021 19:22 #
Анастасия(F1fanatica) 20.04.2021 19:35 #
Андрей Казунин 20.04.2021 20:13 #
Анастасия(F1fanatica) 20.04.2021 20:40 #
Позволяя себе высказать — «Ёбу далась?..
В приличном обществе так себя не ведут, и ваш уровень интеллекта — называется именно недалекий человек. Увольте от общения с Вами и далее
Андрей Казунин 20.04.2021 20:42 #
Анастасия(F1fanatica) 20.04.2021 23:30 #
Кальянщик 21.05.2021 13:08 #