Re: [pLog-General] Couple questions on the gallery classes
Brought to you by:
jondaley
From: Oscar R. <os...@re...> - 2004-02-08 16:54:07
|
Finally I've committed your changes to CVS. Hope you don't mind that I've made a few changes... Quckly, this is what I've made. I've splitted your code and moved the last bit (the one that calculates the "nicer" size) to class/data/stringutils.class.php (string-related methods) so that it can be used by any other class that needs to format sizes. Regarding the first bit, you placed it in the GalleryResource class while I have placed it in the GalleryResourceBaseMetadataReader class (class/gallery/data/galleryresourcebasemetadatareader.class.php) The idea behing these "metadata readers" (I couldn't find any other more original name for them...) was to extract information from the array that the getId3 library provides (check it out, great library: http://getid3.sourceforge.net/) This library will process our files and extract as much information as possible from images, sound files, videos, etc. Since I didn't want to overload the GalleryResource class with too many methods (methods to get info from a video, methods to get info from a file, etc) I decided to follow that approach, inspired by the article here: http://www.phppatterns.com/index.php/article/articleview/92/1/1/. Anyway, the whole idea of that class is to provide information about the resource. Since the getid3 lib already provides the size of the file (have a look at the field 'metadata' from the plog_gallery_resources table) The getRoundedSize method becomes as simple as: function getRoundedSize() { return StringUtils::formatSize( $this->getFileSize()); } StringUtils::formatSize is your method. That's it. It works wonderfully :) Oscar. On 7 Feb 2004, at 21:11, Nick Gerakines wrote: > Howdy, > I've been toying with the gallery classes and a couple items were > curious. In galleryalbum.class.php and galleryresource.class.php , i'm > going to assumed that getOwnerId() returns the user id who created the > gallery or resource. > In the end of galleryresource.class.php i added a small function to > return a rounded file size like 120 KB or 3.5 MB. Posted below. > |--------- Begin snippet > function getRoundedSize(){ > $fileParts = explode( ".", $this->getFileName()); > $fileExt = $fileParts[count($fileParts)-1]; > $fileName = > RESOURCES_STORAGE_FOLDER.$this->getOwnerId()."/".$this- > >getOwnerId()."-".$this->getId().".".$fileExt; > $file = new File( $fileName ); > $file->open(); > > $size = $file->getSize(); > if ($size < pow(2,10)) return $size." bytes"; > if ($size >= pow(2,10) && $size < pow(2,20)) return round($size / > pow(2,10), 0)." KB"; > if ($size >= pow(2,20) && $size < pow(2,30)) return round($size / > pow(2,20), 1)." MB"; > if ($size > pow(2,30)) return round($size / pow(2,30), 2)." GB"; > } > |--------- End Snippet > I'm almost done with the albums and resources templates. > ~ Nick > -- > Guns don't kill people, Ninjas do. |