Как создать ресурсы из массива используя runProcessor
Всем привет!
Есть массив, хочу распарсить его и создать ресурсы.
Есть массив, хочу распарсить его и создать ресурсы.
for ($offset=0;$offset<count($items);$offset++){
$item = $items[$offset];
$id = $item['Id'];
$name = htmlspecialchars($item['Name']);
$parent = $item['ParentId'];
$response = $modx->runProcessor('resource/create', array(
'class_key' => 'msCategory',
'pagetitle' => $item['Name'],
'parent' => 3,
'template' => 3,
'show_in_tree' => 1,
));
if($response->isError()){
echo 'Ошибка';
}else{
echo 'Создал';
}
}
ошибка Fatal error: Uncaught Error: Call to a member function runProcessor() on null in /home/s20673/www/core/cache/includes/elements/modsnippet/20.include.cache.php:85 Stack trace: #0
/home/s20673/www/core/cache/includes/elements/modsnippet/20.include.cache.php(13): create_category() #1
/home/s20673/www/core/model/modx/modscript.class.php(76): include('/home/s20673/ww...') #2
/home/s20673/www/core/model/modx/modparser.class.php(537): modScript->process(NULL) #3
/home/s20673/www/core/components/pdotools/model/pdotools/pdoparser.class.php(273): modParser->processTag(Array, false) #4 /home/s20673/www/core/model/modx/modparser.class.php(251): pdoParser->processTag(Array, false) #5 /home/s20673/www/core/components/pdotools/model/pdotools/pdoparser.class.php(65): modParser->processElementTags('[[]]', '<!doctype html>...', false, false, '[[', ']]', Array, 8) #6 /home/s20673/www/core/model/modx/modparser.class.php(263): pdoParser->processElementTags('[[]]', '<!doctype html>...', false, false, '[[', ']]', Array, 9) #7 /home/s20673/www/c in /home/s20673/www/core/cache/includes/elements/modsnippet/20.include.cache.php on line 85
Что делаю не так?Комментарии: 2
попробуй так
foreach ($items as $key => $item) {
$id = $item['Id'];
$name = htmlspecialchars($item['Name']);
$parent = $item['ParentId'];
$response = $modx->runProcessor('resource/create', array(
'class_key' => 'msCategory',
'pagetitle' => $name,
'parent' => 3,
'template' => 3,
'show_in_tree' => 1,
));
if($response->isError()){
echo 'Ошибка';
}else{
echo 'Создал';
}
}
и ты уверен, что тебе нужно все ресурсы из массива создавать как категории?
Спасибо большое! Разобрался сам)) Нужно не полностью массив передавать, а передавать его через цикл
Да, я дергаю API стороннего сервиса, нужно сделать синхронизацию товаров и категорий.
P.S.
Да, я дергаю API стороннего сервиса, нужно сделать синхронизацию товаров и категорий.
P.S.
//Формируем массив
foreach ($items as $key => $item) {
$resourcedata[] = array(
'class_key' => 'msCategory',
'pagetitle' => $item['Id'],
'parent' => 3,
'template' => 3,
'show_in_tree' => 1,
);
}
//Скармливаем его runProcessor' у
for($i=0; $i<count($resourcedata); $i++){
$response = $modx->runProcessor('resource/create',$resourcedata[$i]);
if($response->isError()){
echo 'Ошибка';
}else{
echo 'Создал';
}
}
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.