resource/create API в CRON
Здравствуйте!
Наверняка вопрос «избитый»
Есть файл обновления по XML файл, если напрямую зайти через браузер, то все отрабатывает хорошо.
Но если по CRON(http запрос) запускать, то ресурсы не создаются, т.к. использую процессор resource/create, соответственно не хватает прав.
Вопрос, как обойти этот момент с правами? или все же придется через множественные $res->set('','')
Наверняка вопрос «избитый»
Есть файл обновления по XML файл, если напрямую зайти через браузер, то все отрабатывает хорошо.
Но если по CRON(http запрос) запускать, то ресурсы не создаются, т.к. использую процессор resource/create, соответственно не хватает прав.
Вопрос, как обойти этот момент с правами? или все же придется через множественные $res->set('','')
Комментарии: 6
Или создавать документы через API, в целом это нормальный вариант, главное создать правильно (заполнить все поля имею ввиду) и проследить, чтобы были обработаны ситуации, если у вас плагины есть на события создания/редактирования документов. Ну и кеш там почистить потом.
Или же в скрипте залогиниться в админку под пользователем-админом (менеджером), что как бы не особо безопасно…
Или же настроить права так, чтобы аноним мог создать страницу, что тоже не гуд.
Или же в скрипте залогиниться в админку под пользователем-админом (менеджером), что как бы не особо безопасно…
Или же настроить права так, чтобы аноним мог создать страницу, что тоже не гуд.
Тоже про все это подумал, решил не рисковать с правами. Создавать процессоры и т.п.
Сделал через newObject. Думал проблема будет с опциями, а там все просто оказалось.
Кому пригодится
Сделал через newObject. Думал проблема будет с опциями, а там все просто оказалось.
Кому пригодится
// Нестандартные опции, cтандартные опции товара записываются вместе с полями товара
$options['idads'] = $idADS;
$options['floor'] = $floor;
$newProduct = $modx->newObject('msProduct');
$alias = $newProduct->cleanAlias($pagetitle);
//Поля товара(ресурса)
$arrRes = [
'pagetitle' => $pagetitle,
'published' => 1,
'alias' => $alias,
'content' => $ADS['description'] ?: '',
'parent' => $parent,
'show_in_tree' => 0,
'template' => 20,
//Стандартные опции товара
'color' => ['синий', 'красный']
'old_price' => 0,
'price' => $ADS['price']['value'] ?: 0,
];
// Можно было использовать fromArray()
foreach ($arrRes as $field => $v){
$newProduct->set($field,$v);
}
// Собственно, запись нестандартных опций, простая передача массива
$newProduct->set('options', $options);
// сохраняем
$newProduct->save();
Сейчас проблема с загрузкой изображений gallery/upload, там тоже через процессор, видимо тоже права, разбираться надо
Так делать не стоит. Используйте все же процессоры
Для того чтобы права появились, используйте security/login процессор
Для того чтобы права появились, используйте security/login процессор
Есть ли ссылки примеры?
Я просто не совсем понимаю, если у меня скрипт будет автоматически логинится, то будет получать права. Он доступен через урл, напрямую. Т.е. «Иван» зайдет по адресу и получит сессию с правами?
и будет ли работать этот прием для CRON
Я просто не совсем понимаю, если у меня скрипт будет автоматически логинится, то будет получать права. Он доступен через урл, напрямую. Т.е. «Иван» зайдет по адресу и получит сессию с правами?
и будет ли работать этот прием для CRON
Ссылок/примеров в интернете хватает по этому запросу
Я просто не совсем понимаю, если у меня скрипт будет автоматически логинится, то будет получать права. Он доступен через урл, напрямую. Т.е. «Иван» зайдет по адресу и получит сессию с правами?Для этого файл закрывают средствами вебсервера
и будет ли работать этот прием для CRON
Есть в miniShop2 скрипт для импорта из csv
Он же умеет создавать ресурсы как при запуске из браузера, так и в режиме запуска из командной строки.
Он же умеет создавать ресурсы как при запуске из браузера, так и в режиме запуска из командной строки.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.