function perform() { // first of all, fetch the resource $this->_resourceId = $this->_request->getValue("resourceId"); $resources = new GalleryResources(); $resource = $resources->getResource($this->_resourceId, $this->_blogInfo->getId()); // check if it was loaded ok if (!$resource) { $this->_view = new AdminResourcesListView($this->_blogInfo); $this->_view->setErrorMessage($this->_locale->tr("error_loading_resource")); $this->setCommonData(); return false; } // if so, continue... first by checking if the resource is an image or not // because if not, then there is no point in generating a thumbnail of it! if (!$resource->isImage()) { $this->_view = new AdminResourcesListView($this->_blogInfo); $this->_view->setErrorMessage($this->_locale->tr("error_resource_is_not_an_image")); } $previewHeight = $this->_config->getValue("thumbnail_height"); $previewWidth = $this->_config->getValue("thumbnail_width"); $previewKeepAspectRatio = $this->_config->getValue("thumbnails_keep_aspect_ratio"); // build the filename $fileNameParts = explode(".", $resource->getFileName()); $fileExt = strtolower($fileNameParts[count($fileNameParts) - 1]); $fileName = $resource->getOwnerId() . "-" . $resource->getId() . "." . $fileExt; // and start the resizing process $resourceStorage = new GalleryResourceStorage(); $resizer = new GalleryResizer($resourceStorage->getResourcePath($resource)); $resourceStorage->checkPreviewsStorageFolder($resource->getOwnerId()); $outFile = $resourceStorage->getPreviewsFolder($resource->getOwnerId()) . $fileName; // and finally, we can generate the preview! $result = $resizer->generate($outFile, $previewHeight, $previewWidth, $previewKeepAspectRatio); $previewFormat = $resizer->getThumbnailFormat(); $resource->setThumbnailFormat($previewFormat); $resources->updateResource($resource); if (!$result) { $this->_view = new AdminResourcesListView($this->_blogInfo); $this->_view->setErrorMessage($this->_locale->tr("error_generating_resource_preview")); } else { $previewHeight = $this->_config->getValue("medium_size_thumbnail_height"); $previewWidth = $this->_config->getValue("medium_size_thumbnail_width"); // and start the resizing process $resourceStorage = new GalleryResourceStorage(); $resizer = new GalleryResizer($resourceStorage->getResourcePath($resource)); $resourceStorage->checkMediumSizePreviewsStorageFolder($resource->getOwnerId()); $outFile = $resourceStorage->getMediumSizePreviewsFolder($resource->getOwnerId()) . $fileName; // and finally, we can generate the preview! $result = $resizer->generate($outFile, $previewHeight, $previewWidth, $previewKeepAspectRatio); $previewFormat = $resizer->getThumbnailFormat(); $resource->setThumbnailFormat($previewFormat); $resources->updateResource($resource); if (!$result) { $this->_view = new AdminResourcesListView($this->_blogInfo); $this->_view->setErrorMessage($this->_locale->tr("error_generating_resource_medium")); } else { $this->_view = new AdminEditResourceView($this->_blogInfo); $this->_view->setSuccessMessage($message = $this->_locale->tr("resource_preview_generated_ok")); $this->_view->setValue("resourceDescription", $resource->getDescription()); $this->_view->setValue("albumId", $resource->getAlbumId()); $this->_view->setValue("resource", $resource); } } $this->setCommonData(); return true; }
/** * generates the medium-sized thumbnail of a file that we have just added * * @param resFile the resource file from which we're trying to generate the * thubmail. * @param fileName The name and path of the new thumbnail we're going to create */ function generateResourceMediumSizeThumbnail($resFile, $resourceId, $ownerId) { // get some configuration settings regarding the size of the // thumbnails, and also the default format for thumbnails $config =& Config::getConfig(); $previewHeight = $config->getValue("medium_size_thumbnail_height", GALLERY_DEFAULT_MEDIUM_SIZE_THUMBNAIL_HEIGHT); $previewWidth = $config->getValue("medium_size_thumbnail_width", GALLERY_DEFAULT_MEDIUM_SIZE_THUMBNAIL_WIDTH); $previewKeepAspectRatio = $config->getValue("thumbnails_keep_aspect_ratio"); // get the file extension $fileParts = explode(".", $resFile); $fileExt = strtolower($fileParts[count($fileParts) - 1]); $fileName = $ownerId . "-" . $resourceId . "." . $fileExt; // and start the resizing process $resizer = new GalleryResizer($resFile); GalleryResourceStorage::checkMediumSizePreviewsStorageFolder($ownerId); $outFile = GalleryResourceStorage::getMediumSizePreviewsFolder($ownerId) . $fileName; // and finally, we can generate the preview! $result = $resizer->generate($outFile, $previewWidth, $previewHeight, $previewKeepAspectRatio); return $result; }