Cron и работа с modx

Приветствую!
Задача сама простая, есть параметр 'counterQuote'. Нужно получать его значение и увеличивать на 1 каждый день. Крон работает норм, отчеты о работе приходят, в них весь «index.php», но нужного результата нет.

//Подключение
require '---- /public_html/index.php';

//Получение параметра и увеличение на 1
$counterQuote = $modx->getObject('modSystemSetting',array('key' => 'counterQuote'));
$counterQuote->set('value',$counterQuote->get('value')+1);
$counterQuote->save();

//Обновление кеша
$cacheRefreshOptions =  array( 'system_settings' => array() );
$modx->cacheManager->refresh($cacheRefreshOptions);
Ошибок не выдает, но и не увеличивается. Как сниппет в модх запускать, то все здорово.
Что еще надо сделать, чтобы заработало?
Константин Ильин
18 марта 2016, 17:39
modx.pro
3
3 668
+1

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

Николай
18 марта 2016, 21:10
+1
Вполне очевидно что крон работает не так нормально как хотелось бы. Как идет вызов? У меня в своих проектах чуть иначе подключение апи:

require_once '/var/www/site.ru/config.core.php';
require_once MODX_CORE_PATH.'model/modx/modx.class.php';
$modx = new modX();
$modx->initialize('web');
$modx->getService('error','error.modError', '', '');
Файл cron.php живет вообще не в папке www сервера, а почти в корне, и выполняется он через php /var/cron.php
    Константин Ильин
    18 марта 2016, 21:22
    0
    если ты про это:
    //Подключение
    require '---- /public_html/index.php';
    — это путь неуказанный мной, у меня от корня сервака, на него не ругается.

    я полагал, что если подключить index.php то можно сразу работать с объектом $modx
    Сейчас попробую твой вариант.
      Константин Ильин
      18 марта 2016, 21:30
      0
      Спасибо Николай!
      Теперь все работает, заменил свое подключение на твое. Также убрал обновление кеша т.к. и без него работает нормально.

      require_once '---- /public_html/config.core.php';
      require_once MODX_CORE_PATH.'model/modx/modx.class.php';
      $modx = new modX();
      
      $counterQuote = $modx->getObject('modSystemSetting',array('key' => 'counterQuote'));
      $counterQuote->set('value',$counterQuote->get('value')+1);
      $counterQuote->save();
      Роман Садоян
      18 марта 2016, 21:34
      +1
      Попробуй так:
      define('MODX_API_MODE', true);
          require '---- /public_html/index.php';
          $modx->getService('error', 'error.modError');
          if($counterQuote = $modx->getObject('modSystemSetting',array('key' => 'counterQuote')))
          {
              $counterQuote->set('value',$counterQuote->get('value')+1);
              $counterQuote->save();
          }
      P.S.: как же долго я писал комментарий))
        Константин Ильин
        18 марта 2016, 21:44
        0
        ))
        Блин) точно точно, вот оказывается что я забыл
        define('MODX_API_MODE', true);
        щас открыл свои старые файлики парсеров и там тоже прописана эта константа)
        значит я все-таки правильно думал, что можно через подключение index.php работать с объектом $modx
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        5