public function folder($folder, $filename = null) { if (!preg_match('/^[0-9]+x[0-9]+$/', $folder)) { // Zijn er geen afmetingen meegegeven? return $this->onFolderNotFound(); } if (!$filename) { // Komt de afbeelding uit een subfolder($recursive)? $url = Url::getCurrentURL(); $path = array('folders' => $url->getFolders(), 'filename' => $url->getFilename()); $subfolders = array_slice($path['folders'], $this->depth + 1); $filename = implode('/', $subfolders) . '/' . $path['filename']; } $source = $this->imagesFolder . $filename; if (!file_exists($source)) { return new HttpError(404, array('warning' => 'Image "' . $filename . '" not found in "' . $this->imagesFolder . '"')); } $target = $this->targetFolder . $folder . '/' . $filename; if (!file_exists($target) || filemtime($source) > filemtime($target)) { $dimensions = explode('x', $folder); \Sledgehammer\mkdirs(dirname($target)); $image = new Image($source); $image->saveThumbnail($target, $dimensions[0], $dimensions[1]); } return new File($target); }
/** * Vraag gegevens op van het filmbestand * (via de property). */ public function __get($property) { if (count($this->properties) == 0) { try { $this->process(null); // run ffmpeg, zodat de properties array gevuld word. } catch (Exception $Exception) { if (count($this->properties) < 3) { // Zijn de eigenschappen nog steeds niet bekend? throw $Exception; } } } if (isset($this->properties[$property])) { return $this->properties[$property]; } return parent::__get($property); }