[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:43:07 GMT 2005
Oh ok. I thought the original request was to be able to set the
fields to 0, and thus kill the original entirely.
On Wed, 23 Nov 2005, Oscar Renalias wrote:
> Yes it can. The only thing this new feature does is replace the original
> image with one of the size specified by final_size_thumbnail_height and
> final_size_thumbnail_width so technically, there is still a file where the
> original one was. It's got the same name, but it's just a smaller version of
> the original one.
>
> The good thing about this feature is that it allows you to upload big files
> while forcing LT to resize all of them to a certain fixed size automatically.
>
> Oscar
>
> On 23 Nov 2005, at 00:13, Jon Daley wrote:
>
>> 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
>> _______________________________________________
>> 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/
The first duty of love is to listen.
-- Paul Tillich
More information about the pLog-svn
mailing list