Ошибка при запуске 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:
При запуске 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;
Подскажите, пожалуйста, в чем ошибка? Комментарии: 6
Полагаю, что когда ты запускаешь сниппет, нет ресурса в $modx->resource.
Ты, наверное, его их MODX_API_MODE запускаешь?
Ты, наверное, его их MODX_API_MODE запускаешь?
Не уверен. Запускаю сниппет через консоль. Дополнительно никакие объекты или ресурсы не создавал.
Не подскажешь как сделать чтобы сработало? Или ссылку какую с материалом скинешь?
Не подскажешь как сделать чтобы сработало? Или ссылку какую с материалом скинешь?
Через эту консоль? Попробуй просто вначале своего сниппета написать
$modx->resource = $modx->getObject('modResource');
Василий, Илья, спасибо! Помогло.
В таком виде через консоль работает:
В таком виде через консоль работает:
//эта строка нужна только в случае запуска кода из консоли
$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?
Просто убери &zc=1, если это то, что я думаю
Срабатывает так же, как и &zc=0, т. е. добавляет ширину или высоту в виде полосок, если заданная пропорция не совпадает с пропорцией исходной картинки ((
… не могу найти в сети внятную документацию к phpthumbof с описанием всех аргументов((
Можно конечно написать код, который вычислит пропорцию и подгонит ее под заданные максимальную ширину и высоту, но не хочется добавлять лишнее если phpthumbof сам может это сделать…
… не могу найти в сети внятную документацию к phpthumbof с описанием всех аргументов((
Можно конечно написать код, который вычислит пропорцию и подгонит ее под заданные максимальную ширину и высоту, но не хочется добавлять лишнее если phpthumbof сам может это сделать…
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.