Обновление товара из фронтэнда процессорами.

Обновление товара из фронтэнда процессорами не авторизованными пользователями, получаю ошибку permission_denied
Когда авторизован в админке, все работает. Хочу повесить на плагин.
Как быть. Баловался с правами политики доступа анонимам. Не помогло…
или как вот такой вот запрос переделать на save();

$query = $modx->newQuery('msProduct');
$query->leftJoin('msProductData', 'Data');
$query -> where(array(
    'Data.old_price:>' => 0
    ));

$results = $modx->getCollection('msProduct', $query);

foreach($results as $res){
    
    if(time() >= strtotime($res->get('shareunpub'))){
        
        $fields = $res->toArray();
        
        $fields['price'] = $fields['old_price'];
        $fields['old_price'] = '';
        $fields['options-shareid'] = '';
        $fields['options-sharecount'] = '';
        $fields['options-shareunpub'] = '';
        
        $response = $modx->runProcessor('resource/update', $fields);
    }
}
Как то так…

Может кто что подскажет.

Спасибо!
Евгений
29 марта 2017, 21:20
modx.pro
1
861
0

Комментарии: 2

PG
PG
30 марта 2017, 01:21
+1
поиск может подсказать, ну а если нужно просто обновить данные, то можно и без процессора.
И что странно, так то что в таком случае проблем с правами не возникает.
$res->set('price', $fields['old_price']);
$res->save();
    Евгений
    31 марта 2017, 16:20
    0
    Да. Спасибо! Разобрался реализовал все же через save().

    Получилось как то так:

    if(time() >= strtotime($res->get('shareunpub'))){
                $count++;
                
                $res->set('price', $res->get('old_price'));
                $res->set('old_price', '');
                $res->set('options',[
                    'sharecount' => '',
                    'shareid' => '',
                    'shareunpub' => ''
                    ]);
                $res->save();
            }
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2