Adminregeneratepreviewaction.class.php:
<?php
include_once( PLOG_CLASS_PATH."class/action/admin/adminaction.class.php" );
include_once( PLOG_CLASS_PATH."class/view/admin/adminresourceslistview.class.php" );
include_once( PLOG_CLASS_PATH."class/view/admin/admineditresourceview.class.php" );
include_once( PLOG_CLASS_PATH."class/data/validator/integervalidator.class.php" );
include_once( PLOG_CLASS_PATH."class/gallery/resizers/galleryresizer.class.php" );
include_once( PLOG_CLASS_PATH."class/gallery/dao/galleryresources.class.php" );
include_once( PLOG_CLASS_PATH."class/gallery/dao/galleryresourcestorage.class.php" );
/**
* \ingroup Action
* @private
*/
class AdminRegeneratePreviewAction extends AdminAction
{
var $_resourceId;
function AdminRegeneratePreviewAction( $actionInfo, $request )
{
$this->AdminAction( $actionInfo, $request );
$this->registerFieldValidator( "resourceId", new IntegerValidator());
$view = new AdminResourcesListView( $this->_blogInfo );
$view->setErrorMessage( $this->_locale->tr("error_loading_resource"));
$this->setValidationErrorView( $view );
}
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 {
$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;
}
}
?>
Other Blog Scripts: