1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?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')
- );
- }
- }
|