[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 22:13:00 GMT 2005


 	Hrm. we misunderstood each other.

 	Yes, it should only regenerate the preview, that is fine.

 	Can it regenerate the preview if the original image is gone?

On Wed, 23 Nov 2005, Oscar Renalias wrote:
> But a preview is a preview, right? That feature only regenerates the 
> previews, it doesn't say that it will regenerate anything else...
>
> Oscar
>
> On 22 Nov 2005, at 20:39, Jon Daley wrote:
>
>> 	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.
>> _______________________________________________
>> pLog-svn mailing list
>> pLog-svn at devel.lifetype.net
>> http://devel.plogworld.net/mailman/listinfo/plog-svn
>> 
>
> _______________________________________________
> pLog-svn mailing list
> pLog-svn at devel.lifetype.net
> http://devel.plogworld.net/mailman/listinfo/plog-svn

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

If you obey all the rules, you miss all the fun.
-- Katharine Hepburn



More information about the pLog-svn mailing list