Через runProcessor обновляется только ресурс id=1
Подскажите пожалуйста.
Есть сниппет для редактирования ресурса с фронта, данные отправляю через FornIt.
Но работает только с ресурсом id=1, в остальных случаях ресурс не обновляется а логи пусты.
Не могу понять в чем может быть проблема.
Спасибо!
Есть сниппет для редактирования ресурса с фронта, данные отправляю через FornIt.
Но работает только с ресурсом id=1, в остальных случаях ресурс не обновляется а логи пусты.
Не могу понять в чем может быть проблема.
<?php
$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();
return true;
Посмотрел кучу примеров с редактированием ресурсов с фронта и ни у кого нету проблем с аналогичным кодом.Спасибо!
Комментарии: 8
Стал сравнивать что говорит debugMode при редактировании ресурса id=1 и ресурса id=19 (Параметры у них одинаковые), и разница в выводе начинается только на 1353 строке.
ID=1
ID=19
ID=1
[2013-10-31 13:45:01] (DEBUG @ /index.php) Returning table name: `modx_register_messages` for class: modDbRegisterMessage
[2013-10-31 13:45:01] (DEBUG @ /index.php) Returning table name: `modx_register_topics` for class: modDbRegisterTopic
[2013-10-31 13:45:01] (DEBUG @ /index.php) Returning table class: modDbRegisterTopic for class: modDbRegisterTopic
[2013-10-31 13:45:01] (DEBUG @ /index.php) Returning table name: `modx_register_topics` for class: modDbRegisterTopic
[2013-10-31 13:45:01] (DEBUG @ /index.php) Returning ancestry for modDbRegisterTopic: Array
(
[0] => modDbRegisterTopic
[1] => xPDOSimpleObject
[2] => xPDOObject
)
ID=19
[2013-10-31 13:42:49] (DEBUG @ /index.php) Returning table name: `modx_register_messages` for class: modDbRegisterMessage
[2013-10-31 13:42:49] (DEBUG @ /index.php) Returning table name: `modx_register_topics` for class: modDbRegisterTopic
[2013-10-31 13:42:49] (DEBUG @ /index.php) Returning table class: modDbRegisterMessage for class: modDbRegisterMessage
[2013-10-31 13:42:49] (DEBUG @ /index.php) Returning table name: `modx_register_messages` for class: modDbRegisterMessage
[2013-10-31 13:42:49] (DEBUG @ /index.php) Returning ancestry for modDbRegisterMessage: Array
(
[0] => modDbRegisterMessage
[1] => xPDOObject
)
Я к сожалению не силен во всех процессах Модкса. Может кто нибудь сталкивался с подобными проблемами?
Как насчет посмотреть —
if ($response->isError()) {
$modx->log(modX::LOG_LEVEL_ERROR, 'не получилось удалить ресурс с айдишником — '.$resId );
}
И на будущее — не советую доверять всему что пришло от пользователя — делайте фильтрацию всего что приходит через POST.
if ($response->isError()) {
$modx->log(modX::LOG_LEVEL_ERROR, 'не получилось удалить ресурс с айдишником — '.$resId );
}
И на будущее — не советую доверять всему что пришло от пользователя — делайте фильтрацию всего что приходит через POST.
Да, спасибо, добавил вывод ошибок
Куда копать не ясно.
if ($response->isError()) {
$modx->log(modX::LOG_LEVEL_ERROR, $response->getMessage());
}
Но, увы, выводит только (ERROR @ /index.php) Куда копать не ясно.
а 19 ресурс точно в контексте web?
Да, проверял с разными ресурсами и даже просто копировал ресурс id=1 но результат один и тот же.
Сделай так:
if ($response->isError()) {
echo '<pre>';
print_r($response->getAllErrors());
die;
}
Оо, спасибо большое, это очень помогло.
Вывелась следующая ошибка
Странно что он не использовал существующий алиас.
Вывелась следующая ошибка
Array (
[0] => alias: field_required
)
Сделал вывод алиаса и его тоже передаю в процесс — работает.Странно что он не использовал существующий алиас.
Через $modx->getObject работает идеально но все же хочется сделать более нативный код.
Еще замечу что при неудачной попытке отредактировать ресурс он на некоторое время блокируется.
Еще замечу что при неудачной попытке отредактировать ресурс он на некоторое время блокируется.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.