Ошибка при запуске phpThumbOf из сниппета

Добрый день.
При запуске phpThumbOf из сниппета возникает ошибка:
«Fatal error: Call to a member function get() on a non-object in Z:\home\modx_2_2_10-pl\www\core\components\phpthumbof\model\phpthumbof\phpthumbof.class.php on line 306»

Вот строка 306 файла phpthumbof.class.php:
$this->cacheFilename .= '.'.md5(serialize($this->options)).$this->modx->resource->get('id');
А вот мой сниппет:

$input = "assets/gallery/test/001.jpg";
$options = "w=100&h=100&zc=0";
$thumbnail = $modx->runSnippet("phpthumbof",array('input' => $input, 'options' => $options));
echo $thumbnail;
Подскажите, пожалуйста, в чем ошибка?
Анзор Мизаушев
12 января 2014, 18:42
modx.pro
3 219
0

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

Василий Наумкин
13 января 2014, 06:55
0
Полагаю, что когда ты запускаешь сниппет, нет ресурса в $modx->resource.

Ты, наверное, его их MODX_API_MODE запускаешь?
    Анзор Мизаушев
    13 января 2014, 13:57
    0
    Не уверен. Запускаю сниппет через консоль. Дополнительно никакие объекты или ресурсы не создавал.
    Не подскажешь как сделать чтобы сработало? Или ссылку какую с материалом скинешь?
      Илья Уткин
      13 января 2014, 14:32
      0
      Через эту консоль? Попробуй просто вначале своего сниппета написать
      $modx->resource = $modx->getObject('modResource');
        Анзор Мизаушев
        13 января 2014, 23:41
        0
        Василий, Илья, спасибо! Помогло.
        В таком виде через консоль работает:

        //эта строка нужна только в случае запуска кода из консоли
        $modx->resource = $modx->getObject('modResource', 45);
        
        $input = "assets/gallery/test/001.jpg";
        $options = "w=300&h=300&zc=1&q=90";
        $thumbnail = $modx->runSnippet("phpthumbof",array('input' => $input, 'options' => $options));
        echo $thumbnail;
        И еще вопросик: умеет ли phpthumbof уменьшать картинку с сохранением пропорций без полос по бокам если ему передать максимальные значения ширины и высоты? Если да, то какой параметр надо добавить в $options?
          Илья Уткин
          14 января 2014, 01:39
          0
          Просто убери &zc=1, если это то, что я думаю
            Анзор Мизаушев
            14 января 2014, 20:46
            0
            Срабатывает так же, как и &zc=0, т. е. добавляет ширину или высоту в виде полосок, если заданная пропорция не совпадает с пропорцией исходной картинки ((
            … не могу найти в сети внятную документацию к phpthumbof с описанием всех аргументов((
            Можно конечно написать код, который вычислит пропорцию и подгонит ее под заданные максимальную ширину и высоту, но не хочется добавлять лишнее если phpthumbof сам может это сделать…
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      6