Редактирование ресурса через процессоры.
Добрый день. Разбираюсь в вопросе редактирования ресурса. Если быть чуть точнее — товаров.
$data['class_key'] = 'msProduct';
$data['context_key'] = 'web';
$data['parent'] = $_POST['cat'];
$data['template'] = '3';
$data['alias'] = RAND(0,99999);
$data['pagetitle'] = $_POST['nsmes'];
$data['content'] = $_POST['texts'];
$data['price'] = '550';
$response = $modx->runProcessor('resource/create', $data);
if ($response->isError()) {
return $modx->error->failure($response->getMessage());
}
Создали товар, все отлично, проблем нету. А как его отредактировать? Не могу нагуглить примера, есть только один нерабочий:$title = $_POST['title'];
$content = $_POST['content'];
$resId = $_POST['resId'];
$resourceData = array(
'id' => $resId,
'pagetitle' => $title,
'content' => $content,
'context_key' => 'web'
);
$response = $modx->runProcessor('resource/update', $resourceData );
$modx->cacheManager->clearCache();
Но я не могу понять, как процессор решает какой ресурс ему обновить? Комментарии: 5
Ты в форме методом post передаешь id ресурса для редактирования.
Получается ты передаешь id, pagetitle,content это все вносится в массив resourceData и передается процессору.
Получается ты передаешь id, pagetitle,content это все вносится в массив resourceData и передается процессору.
Т.е процессор ориентируется на id что я ему даю? Для него это условие WHERE, а остальные переменные что я даю (pagetitle, content e.t.c) для него то, что необходимо обновить? Я верно понял?
Пишу в браузере, но думаю работать будет:
$data['id'] = $_POST['resId']; //твой id
$data['class_key'] = 'msProduct';
$data['context_key'] = 'web';
$data['parent'] = $_POST['cat'];
$data['template'] = '3';
//$data['alias'] = RAND(0,99999);
$data['pagetitle'] = $_POST['nsmes'];
$data['content'] = $_POST['texts'];
$data['price'] = '550';
$response = $modx->runProcessor('resource/update', $data);
if ($response->isError()) {
return $modx->error->failure($response->getMessage());
}
Отлично, все работает. Логику работы понял, спасибо. Но назрел еще один вопрос, обновление будет проходить по крону, будут ли у меня тут проблемы? Я как то добавлял товары, и понял что чтобы добавлялось мне нужно быть авторизованным как админ. Мне хватит вызова просессора авторизации?
Тут не уверен, зависит от того что должен выполнять вызов крона. Обычно крон используют что бы выполнять второстпенные задачи например уборка мусора, чистка старых сессий, рассылка писем. Так что ты для начала сформируй задачу, начни реализовать, а если не получится что то вот тогда конкретный вопрос и задавай.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.