File Manager

Current Directory: /home/astoriaah/www/administrator/components/com_widgetkit/src/Image
Viewing File: /home/astoriaah/www/administrator/components/com_widgetkit/src/Image/ImageProvider.php
<?php namespace YOOtheme\Widgetkit\Image; use YOOtheme\Framework\Application; use YOOtheme\Framework\ApplicationAware; class ImageProvider extends ApplicationAware { /** * Constructor. * * @param Application $app */ public function __construct(Application $app) { $this->app = $app; } /** * @param string $file * @return Image|false */ public function create($file) { if (!preg_match('/\.(gif|png|jpe?g|webp)$/i', $file)) { return false; } if (preg_match('/^https?:/i', $file)) { $file = str_replace("{$this['request']->getBaseUrl()}/", '', $file); } if ($this->isAbsolutePath($file)) { return false; } if (!($file = $this->app['locator']->find("~/$file"))) { return false; } return new Image($this->app, $file); } /** * Get image thumbnail url. * * @param string $file * @param string $width * @param string $height * @return string */ public function thumbnailUrl($file, $width, $height) { if ($image = $this->create($file)) { $image->setOptions(['w' => $width, 'h' => $height]); return $image->cache(); } return $file; } /** * Returns true if the file is an existing absolute path. * * @param string $file * @return boolean */ protected static function isAbsolutePath($file) { return $file[0] == '/' || $file[0] == '\\' || (strlen($file) > 3 && ctype_alpha($file[0]) && $file[1] == ':' && ($file[2] == '\\' || $file[2] == '/')) || null !== parse_url($file, PHP_URL_SCHEME); } }