[pLog-svn] r2615 - in plog/trunk: class/gallery/dao class/gallery/resizers locale templates/admin

Jon Daley plogworld at jon.limedaley.com
Tue Nov 22 18:39:40 GMT 2005


 	I don't know this resource world all that well.  Does your change 
do the right thing if someone hits "regenerate preview" if the original 
image does not exist?

On Tue, 22 Nov 2005, oscar at devel.lifetype.net wrote:
> Author: oscar
> Date: 2005-11-22 17:39:25 +0000 (Tue, 22 Nov 2005)
> New Revision: 2615
>
> Modified:
>   plog/trunk/class/gallery/dao/galleryresource.class.php
>   plog/trunk/class/gallery/dao/galleryresources.class.php
>   plog/trunk/class/gallery/resizers/gallerythumbnailgenerator.class.php
>   plog/trunk/locale/locale_en_UK.php
>   plog/trunk/templates/admin/globalsettings_resources.template
> Log:
> Added feature request 336 (http://bugs.lifetype.net/view.php?id=336)
>
> Modified: plog/trunk/class/gallery/dao/galleryresource.class.php
> ===================================================================
> --- plog/trunk/class/gallery/dao/galleryresource.class.php	2005-11-22 17:34:19 UTC (rev 2614)
> +++ plog/trunk/class/gallery/dao/galleryresource.class.php	2005-11-22 17:39:25 UTC (rev 2615)
> @@ -148,6 +148,17 @@
>         {
>         	return $this->_metadata;
>         }
> +
> +		/**
> +		 * Set the resource metadata to the given array
> +		 *
> +		 * @param metadata
> +		 * @return Nothing
> +		 */
> +		function setMetadata( $metadata )
> +		{
> +			$this->_metadata = $metadata;
> +		}
>
> 		/**
> 		 * @return the flags of the resource object
>
> Modified: plog/trunk/class/gallery/dao/galleryresources.class.php
> ===================================================================
> --- plog/trunk/class/gallery/dao/galleryresources.class.php	2005-11-22 17:34:19 UTC (rev 2614)
> +++ plog/trunk/class/gallery/dao/galleryresources.class.php	2005-11-22 17:39:25 UTC (rev 2615)
> @@ -188,17 +188,20 @@
>         								 $ownerId,
>         	                             CACHE_RESOURCES_USER,
>         	                             null,
> -										 Array( "date" => "ASC" ),
> -        	                             $page,
> -        	                             $itemsPerPage );
> +										 Array( "date" => "ASC" ));
>             if( !$resources )
> -            	return Array();
> +            	return Array();
>
>            	$result = Array();
>            	foreach( $resources as $resource ) {
> -				if( $this->check( $resource, $ownerId, $albumId, $resourceType ))
> +				if( $this->check( $resource, $ownerId, $albumId, $resourceType )) {
> 					$result[] = $resource;
> +				}
>            	}
> +
> +			// check if we need to do any paging
> +			if( $page > DEFAULT_PAGING_ENABLED && $itemsPerPage > DEFAULT_ITEMS_PER_PAGE )
> +				$result = array_slice( $result, $page, $itemsPerPage );
>
>             return $result;
>         }
> @@ -211,6 +214,7 @@
>                         $albumId = GALLERY_NO_ALBUM,
>                         $resourceType = GALLERY_RESOURCE_ANY )
>         {
> +			//print("check: id = ".$resource->getId()." - owner = $ownerId - album = $albumId - resourceType = $resourceType<br/>");
>         	if( $ownerId != -1 ) {
>         		if( $resource->getOwnerId() != $ownerId )
>         			return false;
> @@ -223,6 +227,7 @@
>            		if( $resource->getResourceType() != $resourceType )
>            			return false;
>            	}
> +
>            	return( true );
>         }
>
> @@ -237,7 +242,7 @@
> 		 * @see getUserResources
> 		 * @return the total number of items
> 		 */
> -		function getNumUserResources( $ownerId, $albumId = GALLERY_NO_ALBUM, $resourceType = GALLEY_RESOURCE_ANY )
> +		function getNumUserResources( $ownerId, $albumId = GALLERY_NO_ALBUM, $resourceType = GALLERY_RESOURCE_ANY )
> 		{
> 			return( count( $this->getUserResources( $ownerId, $albumId, $resourceType )));
> 		}
> @@ -318,73 +323,9 @@
> 			$this->_cache->removeData( $fileName, CACHE_RESOURCES_BY_NAME );
>
> 			return $resourceId;
> -		}
> -
> -		/**
> -		 * generates the 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 generateResourceThumbnail( $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( "thumbnail_height", GALLERY_DEFAULT_THUMBNAIL_HEIGHT );
> -			$previewWidth  = $config->getValue( "thumbnail_width", GALLERY_DEFAULT_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::checkPreviewsStorageFolder( $ownerId );
> -			$outFile = GalleryResourceStorage::getPreviewsFolder( $ownerId ).$fileName;
> -
> -			// and finally, we can generate the preview!
> -			$result = $resizer->generate( $outFile, $previewWidth, $previewHeight, $previewKeepAspectRatio );
> -
> -			return $result;
> -		}
> +		}
>
> 		/**
> -		 * 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;
> -		}
> -
> -		/**
> 		 * @private
> 		 * @param fileName
> 		 * @param metadata
> @@ -499,6 +440,24 @@
>             	include_once( PLOG_CLASS_PATH."class/gallery/resizers/gallerythumbnailgenerator.class.php" );
>                 GalleryThumbnailGenerator::generateResourceThumbnail( $resFile, $resourceId, $ownerId );
> 				GalleryThumbnailGenerator::generateResourceMediumSizeThumbnail( $resFile, $resourceId, $ownerId );
> +				// call this method only if the settings are right
> +				include_once( PLOG_CLASS_PATH."class/config/config.class.php" );
> +				$config =& Config::getConfig();
> +				$previewHeight = $config->getValue( "final_size_thumbnail_height", 0 );
> +				$previewWidth  = $config->getValue( "final_size_thumbnail_width", 0 );
> +				if( $previewHeight != 0 && $previewWidth != 0 ) {
> +					GalleryThumbnailGenerator::generateResourceFinalSizeThumbnail( $resFile, $resourceId, $ownerId );
> +					// we have to recalculate the metadata because the image could be different... This is a bit cumbersome
> +					// and repeats code. We know, thanks.
> +					$getId3 = new GetID3();
> +					$metadata = $getId3->analyze( $resFile );
> +					getid3_lib::CopyTagsToComments($metadata);
> +					$info = $this->_filterMetadata( $metadata, $resourceType );
> +					// and finally update the resource again
> +					$resource = $this->getResource( $resourceId );
> +					$resource->setMetadata( $info );
> +					$this->updateResource( $resource );
> +				}
>             }
>
>             // return the id of the resource we just added
> @@ -608,7 +567,9 @@
>             // move the file to disk
> 		    include_once( PLOG_CLASS_PATH."class/gallery/dao/galleryresourcestorage.class.php" );
>             $storage = new GalleryResourceStorage();
> -            $resFile = $storage->storeFile( $resourceId, $ownerId, $fullFilePath,
> +            $resFile = $storage->storeFile( $resourceId,
> +			                                $ownerId,
> +											$fullFilePath,
>                                             RESOURCE_STORAGE_STORE_MOVE );
>
>             // if the file cannot be read, we will also remove the record from the
> @@ -626,9 +587,28 @@
>
>             // and finally, we can generate the thumbnail only if the file is an image, of course :)
>             if( $resourceType == GALLERY_RESOURCE_IMAGE ) {
> -            	include_once( PLOG_CLASS_PATH."class/gallery/resizers/gallerythumbnailgenerator.class.php" );
> +            	include_once( PLOG_CLASS_PATH."class/gallery/resizers/gallerythumbnailgenerator.class.php" );
>                 GalleryThumbnailGenerator::generateResourceThumbnail( $resFile, $resourceId, $ownerId );
> -            }
> +				GalleryThumbnailGenerator::generateResourceMediumSizeThumbnail( $resFile, $resourceId, $ownerId );
> +				// call this method only if the settings are right
> +				include_once( PLOG_CLASS_PATH."class/config/config.class.php" );
> +				$config =& Config::getConfig();
> +				$previewHeight = $config->getValue( "final_size_thumbnail_height", 0 );
> +				$previewWidth  = $config->getValue( "final_size_thumbnail_width", 0 );
> +				if( $previewHeight != 0 && $previewWidth != 0 ) {
> +					GalleryThumbnailGenerator::generateResourceFinalSizeThumbnail( $resFile, $resourceId, $ownerId );
> +					// we have to recalculate the metadata because the image could be different... This is a bit cumbersome
> +					// and repeats code. We know, thanks.
> +					$getId3 = new GetID3();
> +					$metadata = $getId3->analyze( $resFile );
> +					getid3_lib::CopyTagsToComments($metadata);
> +					$info = $this->_filterMetadata( $metadata, $resourceType );
> +					// and finally update the resource again
> +					$resource = $this->getResource( $resourceId );
> +					$resource->setMetadata( $info );
> +					$this->updateResource( $resource );
> +				}
> +			}
>
>             // return the id of the resource we just added
>             return $resourceId;
>
> Modified: plog/trunk/class/gallery/resizers/gallerythumbnailgenerator.class.php
> ===================================================================
> --- plog/trunk/class/gallery/resizers/gallerythumbnailgenerator.class.php	2005-11-22 17:34:19 UTC (rev 2614)
> +++ plog/trunk/class/gallery/resizers/gallerythumbnailgenerator.class.php	2005-11-22 17:39:25 UTC (rev 2615)
> @@ -1,7 +1,5 @@
> -<?php
> -
> +<?php
>
> -
> 	class GalleryThumbnailGenerator
> 	{
>
> @@ -75,6 +73,44 @@
> 			$result = $resizer->generate( $outFile, $previewWidth, $previewHeight, $previewKeepAspectRatio );
>
> 			return $result;
> -		}
> +		}
> +
> +		/**
> +		 * generates the final version of an image
> +		 *
> +		 * @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
> +		 * @static
> +		 */
> +		function generateResourceFinalSizeThumbnail( $resFile, $resourceId, $ownerId )
> +		{
> +			// get some configuration settings regarding the size of the
> +			// thumbnails, and also the default format for thumbnails
> +			include_once( PLOG_CLASS_PATH."class/config/config.class.php" );
> +			$config =& Config::getConfig();
> +			$previewHeight = $config->getValue( "final_size_thumbnail_height", 0 );
> +			$previewWidth  = $config->getValue( "final_size_thumbnail_width", 0 );
> +			$previewKeepAspectRatio = $config->getValue( "thumbnails_keep_aspect_ratio" );
> +
> +			// get the file extension
> +			$fileParts = explode( ".", $resFile );
> +			$fileExt = strtolower($fileParts[count($fileParts)-1]);
> +			$fileName = $ownerId."-".$resourceId.".".$fileExt;
> +
> +			print("final size = $previewHeight x $previewWidth - file = $fileName<br/>");
> +
> +			// and start the resizing process
> +		    include_once( PLOG_CLASS_PATH."class/gallery/resizers/galleryresizer.class.php" );
> +			$resizer = new GalleryResizer( $resFile );
> +		    include_once( PLOG_CLASS_PATH."class/gallery/dao/galleryresourcestorage.class.php" );
> +			GalleryResourceStorage::checkUserStorageFolder( $ownerId );
> +			$outFile = GalleryResourceStorage::getUserFolder( $ownerId ).$fileName;
> +
> +			// and finally, we can generate the preview!
> +			$result = $resizer->generate( $outFile, $previewWidth, $previewHeight, $previewKeepAspectRatio );
> +
> +			return $result;
> +		}
> 	}
> ?>
> \ No newline at end of file
>
> Modified: plog/trunk/locale/locale_en_UK.php
> ===================================================================
> --- plog/trunk/locale/locale_en_UK.php	2005-11-22 17:34:19 UTC (rev 2614)
> +++ plog/trunk/locale/locale_en_UK.php	2005-11-22 17:39:25 UTC (rev 2615)
> @@ -956,6 +956,8 @@
>
> $messages['help_page_suffix_format'] = 'Suffix that will be appended to URLs that support paging';
>
> +$messages['help_final_size_thumbnail_width'] = 'Final width of uploaded images. Leave empty or as zero to store the full size image';
> +$messages['help_final_size_thumbnail_height'] = 'Final height of uploaded images. Leave empty or as zero to store the full size image';
> $messages['error_comment_too_big'] = 'The comment is too big';
> $messages['error_you_have_been_blocked'] = 'Blocked: this request was not completed.';
> $messages['created'] = 'Created';
>
> Modified: plog/trunk/templates/admin/globalsettings_resources.template
> ===================================================================
> --- plog/trunk/templates/admin/globalsettings_resources.template	2005-11-22 17:34:19 UTC (rev 2614)
> +++ plog/trunk/templates/admin/globalsettings_resources.template	2005-11-22 17:39:25 UTC (rev 2615)
> @@ -51,18 +51,30 @@
>     <div class="formHelp">{$locale->tr("help_thumbnail_width")}</div>
>     <input style="width:100%" type="text" name="config[thumbnail_width]" value="{$thumbnail_width}"/>
>    </div>
> +   <!-- medium_size_thumbnail_width -->
> +   <div class="field">
> +    <label for="config[medium_size_thumbnail_width]">medium_size_thumbnail_width</label>
> +    <div class="formHelp">{$locale->tr("help_medium_size_thumbnail_width")}</div>
> +    <input style="width:100%" type="text" name="config[medium_size_thumbnail_width]" value="{$medium_size_thumbnail_width}"/>
> +   </div>
>    <!-- medium_size_thumbnail_height -->
>    <div class="field">
>     <label for="config[medium_size_thumbnail_height]">medium_size_thumbnail_height</label>
>     <div class="formHelp">{$locale->tr("help_medium_size_thumbnail_height")}</div>
>     <input style="width:100%" type="text" name="config[medium_size_thumbnail_height]" value="{$medium_size_thumbnail_height}"/>
> -   </div>
> -   <!-- medium_size_thumbnail_width -->
> +   </div>
> +   <!-- final_size_thumbnail_width -->
>    <div class="field">
> -    <label for="config[medium_size_thumbnail_width]">medium_size_thumbnail_width</label>
> -    <div class="formHelp">{$locale->tr("help_medium_size_thumbnail_width")}</div>
> -    <input style="width:100%" type="text" name="config[medium_size_thumbnail_width]" value="{$medium_size_thumbnail_width}"/>
> +    <label for="config[final_size_thumbnail_width]">final_size_thumbnail_width</label>
> +    <div class="formHelp">{$locale->tr("help_final_size_thumbnail_width")}</div>
> +    <input style="width:100%" type="text" name="config[final_size_thumbnail_width]" value="{$final_size_thumbnail_width}"/>
>    </div>
> +   <!-- final_size_thumbnail_height -->
> +   <div class="field">
> +    <label for="config[final_size_thumbnail_height]">final_size_thumbnail_height</label>
> +    <div class="formHelp">{$locale->tr("help_final_size_thumbnail_height")}</div>
> +    <input style="width:100%" type="text" name="config[final_size_thumbnail_height]" value="{$final_size_thumbnail_height}"/>
> +   </div>
>    <!-- thumbnails_keep_aspect_ratio -->
>    <div class="field">
>     <label for="config[thumbnails_keep_aspect_ratio]">thumbnails_keep_aspect_ratio</label>
>
> _______________________________________________
> pLog-svn mailing list
> pLog-svn at devel.lifetype.net
> http://devel.plogworld.net/mailman/listinfo/plog-svn
>

**************************************
Jon Daley
http://jon.limedaley.com/

Never mess up an apology with an excuse.



More information about the pLog-svn mailing list