|
- <?php
-
- namespace dokuwiki\Cache;
-
- /**
- * Handle the caching of modified (resized/cropped) images
- */
- class CacheImageMod extends Cache
- {
- /** @var string source file */
- protected $file;
-
- /**
- * @param string $file Original source file
- * @param int $w new width in pixel
- * @param int $h new height in pixel
- * @param string $ext Image extension - no leading dot
- * @param bool $crop Is this a crop?
- */
- public function __construct($file, $w, $h, $ext, $crop)
- {
- $fullext = '.media.' . $w . 'x' . $h;
- $fullext .= $crop ? '.crop' : '';
- $fullext .= ".$ext";
-
- $this->file = $file;
-
- $this->setEvent('IMAGEMOD_CACHE_USE');
- parent::__construct($file, $fullext);
- }
-
- /** @inheritdoc */
- public function makeDefaultCacheDecision()
- {
- if (!file_exists($this->file)) {
- return false;
- }
- return parent::makeDefaultCacheDecision();
- }
-
- /**
- * Caching depends on the source and the wiki config
- * @inheritdoc
- */
- protected function addDependencies()
- {
- parent::addDependencies();
-
- $this->depends['files'] = array_merge(
- [$this->file],
- getConfigFiles('main')
- );
- }
- }
|