* A custom output filter for phpThumb
 *
 * @var modX $modx
 * @var array $scriptProperties
 * @var phpThumbOf $phpThumbOf
 * @var string $input
 * @var string|array $options
 *
 * @package phpthumbof
 */
if (empty($modx)) {
    return '';
}
if (!$modx->loadClass('modPhpThumb', $modx->getOption('core_path') . 'model/phpthumb/', true, true)) {
    $modx->log(modX::LOG_LEVEL_ERROR, '[phpThumbOf] Could not load modPhpThumb class.');
    return '';
}
if (empty($input)) {
    $modx->log(modX::LOG_LEVEL_DEBUG, '[phpThumbOf] Empty image path passed, aborting.');
    return '';
}
$modelPath = $modx->getOption('phpthumbof.core_path', null, $modx->getOption('core_path') . 'components/phpthumbof/') . 'model/';
require_once $modelPath . 'phpthumbof/phpthumbof.class.php';
$phpThumbOf = new phpThumbOf($modx, $scriptProperties);
$phpThumbOf->getCacheDirectory();
$phpThumbOf->ensureCacheDirectoryIsWritable();
$thumbnail = $phpThumbOf->createThumbnailObject();
$thumbnail->setInput($input);
$thumbnail->setOptions($options);
$thumbnail->initializeService();
return $thumbnail->render();