[pLog-svn] r6257 - plog/branches/lifetype-1.2/class/gallery/dao
jondaley at devel.lifetype.net
jondaley at devel.lifetype.net
Fri Mar 21 15:20:05 EDT 2008
Author: jondaley
Date: 2008-03-21 15:20:04 -0400 (Fri, 21 Mar 2008)
New Revision: 6257
Modified:
plog/branches/lifetype-1.2/class/gallery/dao/galleryresourcestorage.class.php
Log:
dos2unix carriage returns
Modified: plog/branches/lifetype-1.2/class/gallery/dao/galleryresourcestorage.class.php
===================================================================
--- plog/branches/lifetype-1.2/class/gallery/dao/galleryresourcestorage.class.php 2008-03-21 19:12:33 UTC (rev 6256)
+++ plog/branches/lifetype-1.2/class/gallery/dao/galleryresourcestorage.class.php 2008-03-21 19:20:04 UTC (rev 6257)
@@ -1,458 +1,458 @@
-<?php
-
-
- lt_include( PLOG_CLASS_PATH."class/file/fileupload.class.php" );
- lt_include( PLOG_CLASS_PATH."class/file/file.class.php" );
- lt_include( PLOG_CLASS_PATH."class/file/fileuploads.class.php" );
- lt_include( PLOG_CLASS_PATH."class/config/config.class.php" );
- lt_include( PLOG_CLASS_PATH."class/gallery/galleryconstants.php" );
-
- define( "RESOURCE_STORAGE_STORE_COPY", 1 );
- define( "RESOURCE_STORAGE_STORE_MOVE", 2 );
-
- /**
- * \ingroup Gallery
- *
- * Takes care of dealing with resource files on disk. This class hides all the intricacies of storing
- * files in disk, and how they are found and handled later on.
- */
- class GalleryResourceStorage
- {
-
- function GalleryResourceStorage()
- {
-
- }
-
- /**
- * Returns the path to the folder where resources are stored. This method can
- * be used as static.
- *
- * @static
- * @return Returns a string containing the base path to the resource storage folder.
- */
- function getResourcesStorageFolder()
- {
- $config =& Config::getConfig();
- $resourcesStorageFolder = $config->getValue( "resources_folder" );
-
- // just in case...
- if( $resourcesStorageFolder == "" )
- $resourcesStorageFolder = DEFAULT_RESOURCES_STORAGE_FOLDER;
-
- // append a forward slash to the folder if we forgot about it...
- if( $resourcesStorageFolder[strlen($resourcesStorageFolder)-1] != '/')
- $resourcesStorageFolder .= "/";
-
- // if relative path, like e.g. "./gallery/"...
- if (strpos($resourcesStorageFolder,'.') === 0)
- $resourcesStorageFolder = rtrim( PLOG_CLASS_PATH ,'/').ltrim($resourcesStorageFolder,'.');
-
- return $resourcesStorageFolder;
- }
-
- /**
- * @private
- */
- function _checkBaseStorageFolder()
- {
- $baseFolder = GalleryResourceStorage::getResourcesStorageFolder();
- if( $baseFolder[strlen($baseFolder)-1] == "/") {
- $baseFolder = substr($baseFolder,0,strlen($baseFolder)-1);
- }
-
- if( !File::isDir( $baseFolder )) {
- // folder does not exist, so we should try to create it
- if( !File::createDir( $baseFolder, 0755 )) {
- throw( new Exception( "Could not create storage folder for resources: ".$baseFolder));
- return false;
- //die();
- }
- }
-
- if( !File::isReadable( $baseFolder )) {
- throw( new Exception( $baseFolder." storage folder exists but it is not readable!" ));
- return false;
- //die();
- }
-
- return true;
- }
-
- /**
- * a nicer function that the one above. And it is also meant to be used
- * by external classes
- *
- * @static
- * @return Returns true if the base storage folder has been created and
- * it is readable.
- */
- function checkBaseStorageFolder()
- {
- return GalleryResourceStorage::_checkBaseStorageFolder();
- }
-
- /**
- * @private
- */
- function getUserFolder( $ownerId )
- {
- return GalleryResourceStorage::getResourcesStorageFolder().$ownerId."/";
- }
-
- /**
- * @public
- */
- function getPreviewsFolder( $ownerId )
- {
- return GalleryResourceStorage::getResourcesStorageFolder().$ownerId."/previews/";
- }
-
- /**
- * @public
- */
- function getMediumSizePreviewsFolder( $ownerId )
- {
- return GalleryResourceStorage::getResourcesStorageFolder().$ownerId."/previews-med/";
- }
-
- /**
- * @private
- */
- function _checkUserStorageFolder( $ownerId )
- {
- $baseFolder = GalleryResourceStorage::getResourcesStorageFolder();
- if( $baseFolder[strlen($baseFolder)-1] == "/") {
- $baseFolder = substr($baseFolder,0,strlen($baseFolder)-1);
- }
-
- $userFolder = GalleryResourceStorage::getUserFolder( $ownerId );
- if( $userFolder[strlen($userFolder)-1] == "/") {
- $userFolder = substr($userFolder,0,strlen($userFolder)-1);
- }
-
- if( !File::isDir( $userFolder )) {
- // folder does not exist, so we should try to create it
- if( !File::createDir( $userFolder, 0755 )) {
- throw( new Exception( "Could not create user storage folder for resources: ".$userFolder ));
- return false;
- //die();
- }
- }
-
- if( !File::isReadable( $userFolder )) {
- //throw( new Exception( $userFolder." user storage folder exists but it is not readable!" ));
- return false;
- //die();
- }
-
- return true;
- }
-
- function checkUserStorageFolder( $ownerId )
- {
- return GalleryResourceStorage::_checkUserStorageFolder( $ownerId );
- }
-
- /**
- * @public
- */
- function checkPreviewsStorageFolder( $ownerId )
- {
- $previewsFolder = GalleryResourceStorage::getPreviewsFolder( $ownerId );
- if( $previewsFolder[strlen($previewsFolder)-1] == "/") {
- $previewsFolder = substr($previewsFolder,0,strlen($previewsFolder)-1);
- }
-
- if( !File::isDir( $previewsFolder )) {
- // folder does not exist, so we should try to create it
- if( !File::createDir( $previewsFolder, 0755 )) {
- throw( new Exception( "Could not create user storage folder for previews: ".$previewsFolder ));
- //die();
- return false;
- }
- }
-
- if( !File::isReadable( $previewsFolder )) {
- throw( new Exception( $previewsFolder." user previews storage folder exists but it is not readable!" ));
- //die();
- return false;
- }
-
- return true;
- }
-
- /**
- * @public
- */
- function checkMediumSizePreviewsStorageFolder( $ownerId )
- {
- $previewsFolder = GalleryResourceStorage::getMediumSizePreviewsFolder( $ownerId );
- if( $previewsFolder[strlen($previewsFolder)-1] == "/") {
- $previewsFolder = substr($previewsFolder,0,strlen($previewsFolder)-1);
- }
-
- if( !File::isDir( $previewsFolder )) {
- // folder does not exist, so we should try to create it
- if( !File::createDir( $previewsFolder, 0755 )) {
- throw( new Exception( "Could not create user storage folder for medium size previews: ".$previewsFolder ));
- //die();
- return false;
- }
-
- }
-
- if( !File::isReadable( $previewsFolder )) {
- throw( new Exception( $previewsFolder." user previews storage folder exists but it is not readable!" ));
- //die();
- return false;
- }
-
- return true;
- }
-
- /**
- * stores a new resource in disk
- *
- * @param ownerId The id of the owner of this file
- * @param albumId The album id to which the
- * @param upload a FileUpload object with information about the
- * uploaded file
- */
- function storeUpload( $resourceId, $ownerId, $upload )
- {
- // check that the folders exist
- if( !$this->_checkBaseStorageFolder())
- return false;
- if( !$this->_checkUserStorageFolder( $ownerId ))
- return false;
-
- // new name for the file
- $filePath = $this->getUserFolder( $ownerId );
-
- // move the file to the temporaray folder first
- $config =& Config::getConfig();
- $tmpFolder = $config->getValue( "temp_folder" );
- /*$files = HttpVars::getFiles();*/
- // we don't need the parameter in the constructor though it is necessary
- // according to the signature of the method
- $uploads = new FileUploads( null );
- $result = $uploads->processFile( $upload, $tmpFolder );
-
- if( $result < 0 ) {
- return $result;
- }
-
- $origFile = $tmpFolder."/".basename( $upload->getTmpName() );
-
- //do not use storeFile method because I have change filename in $tmpFolder.
- //$destFile = $this->storeFile( $resourceId, $ownerId, $origFile, RESOURCE_STORAGE_STORE_MOVE );
- //$destFile use $filePath and $fileName generated above.
- //$destFile = $filePath.$fileName;
-
- if( $config->getValue( "resources_naming_rule" ) == "encoded_file_name" ) {
- $fileName = $upload->getFileName();
- // new name for the file
- $fileParts = explode( ".", $fileName);
- $fileExt = strtolower($fileParts[count($fileParts)-1]);
- $destFile = $filePath.$ownerId."-".$resourceId.".".$fileExt;
- }
- else {
- $destFile = $filePath.stripslashes($upload->getFileName());
- }
-
- // first of all, check if the file is readable and if not, quit
- if( !File::isReadable($origFile)) {
- return false;
- }
-
- $res = File::rename( $origFile, $destFile );
-
- if( !$res ) {
- return false;
- }
- // check that the permissions are correct
- File::chMod( $destFile, 0755 );
-
- return $destFile;
- }
-
- /**
- * the method above works only with files that have been uploaded while
- * this one works with files that are anywhere. It will take care of copying
- * the file to the right destination folder and so on
- *
- * @param ownerId The id of the owner of this file
- * @param albumId The album id to which the
- * @param fileName full path and name to the file that we're trying to store
- */
- function storeFile( $resourceId, $ownerId, $fileName, $mode = RESOURCE_STORAGE_STORE_COPY )
- {
- // check that the folders exist
- if( !$this->_checkBaseStorageFolder())
- return false;
- if( !$this->_checkUserStorageFolder( $ownerId ))
- return false;
-
- // new name for the file
- $fileParts = explode( ".", $fileName);
- $fileExt = strtolower($fileParts[count($fileParts)-1]);
-
- //$destFile = "$ownerId-$resourceId.$fileExt";
- $config =& Config::getConfig();
-
- // first of all, remove the resource file itself
- $filePath = $this->getUserFolder( $ownerId );
- if( $config->getValue( "resources_naming_rule" ) == "encoded_file_name" )
- $destFile = $ownerId."-".$resourceId.".".$fileExt;
- else
- $destFile = basename( $fileName );
-
- $destPath = $this->getUserFolder( $ownerId );
-
- // first of all, check if the file is readable and if not, quit
- if( !File::isReadable($fileName)) {
- return false;
- }
-
- $destFile = $destPath.$destFile;
- if( $mode == RESOURCE_STORAGE_STORE_COPY )
- $res = File::copy( $fileName, $destFile );
- else
- $res = File::rename( $fileName, $destFile );
-
- if( !$res ) {
- return false;
- }
- // check that the permissions are correct
- File::chMod( $destFile, 0755 );
-
- return $destFile;
- }
-
- /**
- * removes a file from disk
- *
- * @param resource A GalleryResource object, representing the resource
- * we'd like to delete.
- * @return Returns ok if file was successfully deleted ok or false otherwise.
- */
- function remove( $resource )
- {
- if( $resource ) {
- $config =& Config::getConfig();
-
- // first of all, remove the resource file itself
- $filePath = $this->getUserFolder( $resource->getOwnerId());
- if( $config->getValue( "resources_naming_rule" ) == "encoded_file_name" )
- $fullName = $filePath.$resource->getEncodedFileName();
- else
- $fullName = $filePath.$resource->getFileName();
-
- if( File::isReadable( $fullName)) {
- $result = File::delete( $fullName );
- } else {
- $result = false;
- }
-
- // and now if preview images are available, remove them too!
- if( $resource->hasPreview()) {
- // delete the small thumbnail
- $previewFile = $this->getPreviewsFolder( $resource->getOwnerId()).$resource->getPreviewFileName();
- if( File::isReadable( $previewFile ))
- File::delete( $previewFile );
-
- // and the medium-sized thumbnail
- $medPreviewFile = $this->getMediumSizePreviewsFolder( $resource->getOwnerId()).$resource->getMediumSizePreviewFileName();
- if( File::isReadable( $medPreviewFile ))
- File::delete( $medPreviewFile );
- }
- }
- else
- $result = false;
-
- return $result;
- }
-
- /**
- * returns the path of a GalleryResource object within the storage area
- *
- * @param $resource A GalleryResource object
- * @return A string containing the path to the file relative to the storage area.
- */
- function getResourcePath( $resource )
- {
- $config =& Config::getConfig();
-
- // first of all, remove the resource file itself
- $filePath = $this->getUserFolder( $resource->getOwnerId());
- if( $config->getValue( "resources_naming_rule" ) == "encoded_file_name" )
- $fileName = $resource->getEncodedFileName();
- else
- $fileName = $resource->getFileName();
-
- $resourcePath = $this->getUserFolder( $resource->getOwnerId()).$fileName;
- return $resourcePath;
- }
-
-
- /**
- * Moves a file from one owner folder to another if the owner was modified.
- *
- * @param prevVersion A GalleryResource object
- * @param resource A GalleryResource object
- * @return True if successfull or if no move were needed.
- */
- function moveFile( $prevVersion, $resource )
- {
- $prevOwnerId = $prevVersion->getOwnerId();
- $newOwnerId = $resource->getOwnerId();
-
- if ($newOwnerId == $prevOwnerId) {
- // No need to move
- return true;
- }
-
- // check that the folders exist
- if( !$this->_checkUserStorageFolder( $prevOwnerId ))
- return false;
- if( !$this->_checkUserStorageFolder( $newOwnerId ))
- return false;
-
- // move the main file
- $fileName = $this->getUserFolder( $prevOwnerId ) . $resource->getFileName();
- $destFile = $this->getUserFolder( $newOwnerId ) . $resource->getFileName();
- $res = File::rename( $fileName, $destFile );
- if( !$res )
- return false;
-
- // check that the permissions are correct
- File::chMod( $destFile, 0755 );
-
- // move the preview and the medium preview, but only if available
- if( $resource->hasPreview()) {
- $fileName = $this->getPreviewsFolder( $prevOwnerId ) . $resource->getPreviewFileName();
- $destFile = $this->getPreviewsFolder( $newOwnerId ) . $resource->getPreviewFileName();
- $res = File::rename( $fileName, $destFile );
- if( !$res )
- return false;
-
- // check that the permissions are correct
- File::chMod( $destFile, 0755 );
-
- // move the medium size preview
- $fileName = $this->getMediumSizePreviewsFolder( $prevOwnerId ) . $resource->getMediumSizePreviewFileName();
- $destFile = $this->getMediumSizePreviewsFolder( $newOwnerId ) . $resource->getMediumSizePreviewFileName();
- $res = File::rename( $fileName, $destFile );
-
- if( !$res )
- return false;
-
- // check that the permissions are correct
- File::chMod( $destFile, 0755 );
- }
-
- return true;
- }
- }
+<?php
+
+
+ lt_include( PLOG_CLASS_PATH."class/file/fileupload.class.php" );
+ lt_include( PLOG_CLASS_PATH."class/file/file.class.php" );
+ lt_include( PLOG_CLASS_PATH."class/file/fileuploads.class.php" );
+ lt_include( PLOG_CLASS_PATH."class/config/config.class.php" );
+ lt_include( PLOG_CLASS_PATH."class/gallery/galleryconstants.php" );
+
+ define( "RESOURCE_STORAGE_STORE_COPY", 1 );
+ define( "RESOURCE_STORAGE_STORE_MOVE", 2 );
+
+ /**
+ * \ingroup Gallery
+ *
+ * Takes care of dealing with resource files on disk. This class hides all the intricacies of storing
+ * files in disk, and how they are found and handled later on.
+ */
+ class GalleryResourceStorage
+ {
+
+ function GalleryResourceStorage()
+ {
+
+ }
+
+ /**
+ * Returns the path to the folder where resources are stored. This method can
+ * be used as static.
+ *
+ * @static
+ * @return Returns a string containing the base path to the resource storage folder.
+ */
+ function getResourcesStorageFolder()
+ {
+ $config =& Config::getConfig();
+ $resourcesStorageFolder = $config->getValue( "resources_folder" );
+
+ // just in case...
+ if( $resourcesStorageFolder == "" )
+ $resourcesStorageFolder = DEFAULT_RESOURCES_STORAGE_FOLDER;
+
+ // append a forward slash to the folder if we forgot about it...
+ if( $resourcesStorageFolder[strlen($resourcesStorageFolder)-1] != '/')
+ $resourcesStorageFolder .= "/";
+
+ // if relative path, like e.g. "./gallery/"...
+ if (strpos($resourcesStorageFolder,'.') === 0)
+ $resourcesStorageFolder = rtrim( PLOG_CLASS_PATH ,'/').ltrim($resourcesStorageFolder,'.');
+
+ return $resourcesStorageFolder;
+ }
+
+ /**
+ * @private
+ */
+ function _checkBaseStorageFolder()
+ {
+ $baseFolder = GalleryResourceStorage::getResourcesStorageFolder();
+ if( $baseFolder[strlen($baseFolder)-1] == "/") {
+ $baseFolder = substr($baseFolder,0,strlen($baseFolder)-1);
+ }
+
+ if( !File::isDir( $baseFolder )) {
+ // folder does not exist, so we should try to create it
+ if( !File::createDir( $baseFolder, 0755 )) {
+ throw( new Exception( "Could not create storage folder for resources: ".$baseFolder));
+ return false;
+ //die();
+ }
+ }
+
+ if( !File::isReadable( $baseFolder )) {
+ throw( new Exception( $baseFolder." storage folder exists but it is not readable!" ));
+ return false;
+ //die();
+ }
+
+ return true;
+ }
+
+ /**
+ * a nicer function that the one above. And it is also meant to be used
+ * by external classes
+ *
+ * @static
+ * @return Returns true if the base storage folder has been created and
+ * it is readable.
+ */
+ function checkBaseStorageFolder()
+ {
+ return GalleryResourceStorage::_checkBaseStorageFolder();
+ }
+
+ /**
+ * @private
+ */
+ function getUserFolder( $ownerId )
+ {
+ return GalleryResourceStorage::getResourcesStorageFolder().$ownerId."/";
+ }
+
+ /**
+ * @public
+ */
+ function getPreviewsFolder( $ownerId )
+ {
+ return GalleryResourceStorage::getResourcesStorageFolder().$ownerId."/previews/";
+ }
+
+ /**
+ * @public
+ */
+ function getMediumSizePreviewsFolder( $ownerId )
+ {
+ return GalleryResourceStorage::getResourcesStorageFolder().$ownerId."/previews-med/";
+ }
+
+ /**
+ * @private
+ */
+ function _checkUserStorageFolder( $ownerId )
+ {
+ $baseFolder = GalleryResourceStorage::getResourcesStorageFolder();
+ if( $baseFolder[strlen($baseFolder)-1] == "/") {
+ $baseFolder = substr($baseFolder,0,strlen($baseFolder)-1);
+ }
+
+ $userFolder = GalleryResourceStorage::getUserFolder( $ownerId );
+ if( $userFolder[strlen($userFolder)-1] == "/") {
+ $userFolder = substr($userFolder,0,strlen($userFolder)-1);
+ }
+
+ if( !File::isDir( $userFolder )) {
+ // folder does not exist, so we should try to create it
+ if( !File::createDir( $userFolder, 0755 )) {
+ throw( new Exception( "Could not create user storage folder for resources: ".$userFolder ));
+ return false;
+ //die();
+ }
+ }
+
+ if( !File::isReadable( $userFolder )) {
+ //throw( new Exception( $userFolder." user storage folder exists but it is not readable!" ));
+ return false;
+ //die();
+ }
+
+ return true;
+ }
+
+ function checkUserStorageFolder( $ownerId )
+ {
+ return GalleryResourceStorage::_checkUserStorageFolder( $ownerId );
+ }
+
+ /**
+ * @public
+ */
+ function checkPreviewsStorageFolder( $ownerId )
+ {
+ $previewsFolder = GalleryResourceStorage::getPreviewsFolder( $ownerId );
+ if( $previewsFolder[strlen($previewsFolder)-1] == "/") {
+ $previewsFolder = substr($previewsFolder,0,strlen($previewsFolder)-1);
+ }
+
+ if( !File::isDir( $previewsFolder )) {
+ // folder does not exist, so we should try to create it
+ if( !File::createDir( $previewsFolder, 0755 )) {
+ throw( new Exception( "Could not create user storage folder for previews: ".$previewsFolder ));
+ //die();
+ return false;
+ }
+ }
+
+ if( !File::isReadable( $previewsFolder )) {
+ throw( new Exception( $previewsFolder." user previews storage folder exists but it is not readable!" ));
+ //die();
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * @public
+ */
+ function checkMediumSizePreviewsStorageFolder( $ownerId )
+ {
+ $previewsFolder = GalleryResourceStorage::getMediumSizePreviewsFolder( $ownerId );
+ if( $previewsFolder[strlen($previewsFolder)-1] == "/") {
+ $previewsFolder = substr($previewsFolder,0,strlen($previewsFolder)-1);
+ }
+
+ if( !File::isDir( $previewsFolder )) {
+ // folder does not exist, so we should try to create it
+ if( !File::createDir( $previewsFolder, 0755 )) {
+ throw( new Exception( "Could not create user storage folder for medium size previews: ".$previewsFolder ));
+ //die();
+ return false;
+ }
+
+ }
+
+ if( !File::isReadable( $previewsFolder )) {
+ throw( new Exception( $previewsFolder." user previews storage folder exists but it is not readable!" ));
+ //die();
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * stores a new resource in disk
+ *
+ * @param ownerId The id of the owner of this file
+ * @param albumId The album id to which the
+ * @param upload a FileUpload object with information about the
+ * uploaded file
+ */
+ function storeUpload( $resourceId, $ownerId, $upload )
+ {
+ // check that the folders exist
+ if( !$this->_checkBaseStorageFolder())
+ return false;
+ if( !$this->_checkUserStorageFolder( $ownerId ))
+ return false;
+
+ // new name for the file
+ $filePath = $this->getUserFolder( $ownerId );
+
+ // move the file to the temporaray folder first
+ $config =& Config::getConfig();
+ $tmpFolder = $config->getValue( "temp_folder" );
+ /*$files = HttpVars::getFiles();*/
+ // we don't need the parameter in the constructor though it is necessary
+ // according to the signature of the method
+ $uploads = new FileUploads( null );
+ $result = $uploads->processFile( $upload, $tmpFolder );
+
+ if( $result < 0 ) {
+ return $result;
+ }
+
+ $origFile = $tmpFolder."/".basename( $upload->getTmpName() );
+
+ //do not use storeFile method because I have change filename in $tmpFolder.
+ //$destFile = $this->storeFile( $resourceId, $ownerId, $origFile, RESOURCE_STORAGE_STORE_MOVE );
+ //$destFile use $filePath and $fileName generated above.
+ //$destFile = $filePath.$fileName;
+
+ if( $config->getValue( "resources_naming_rule" ) == "encoded_file_name" ) {
+ $fileName = $upload->getFileName();
+ // new name for the file
+ $fileParts = explode( ".", $fileName);
+ $fileExt = strtolower($fileParts[count($fileParts)-1]);
+ $destFile = $filePath.$ownerId."-".$resourceId.".".$fileExt;
+ }
+ else {
+ $destFile = $filePath.stripslashes($upload->getFileName());
+ }
+
+ // first of all, check if the file is readable and if not, quit
+ if( !File::isReadable($origFile)) {
+ return false;
+ }
+
+ $res = File::rename( $origFile, $destFile );
+
+ if( !$res ) {
+ return false;
+ }
+ // check that the permissions are correct
+ File::chMod( $destFile, 0755 );
+
+ return $destFile;
+ }
+
+ /**
+ * the method above works only with files that have been uploaded while
+ * this one works with files that are anywhere. It will take care of copying
+ * the file to the right destination folder and so on
+ *
+ * @param ownerId The id of the owner of this file
+ * @param albumId The album id to which the
+ * @param fileName full path and name to the file that we're trying to store
+ */
+ function storeFile( $resourceId, $ownerId, $fileName, $mode = RESOURCE_STORAGE_STORE_COPY )
+ {
+ // check that the folders exist
+ if( !$this->_checkBaseStorageFolder())
+ return false;
+ if( !$this->_checkUserStorageFolder( $ownerId ))
+ return false;
+
+ // new name for the file
+ $fileParts = explode( ".", $fileName);
+ $fileExt = strtolower($fileParts[count($fileParts)-1]);
+
+ //$destFile = "$ownerId-$resourceId.$fileExt";
+ $config =& Config::getConfig();
+
+ // first of all, remove the resource file itself
+ $filePath = $this->getUserFolder( $ownerId );
+ if( $config->getValue( "resources_naming_rule" ) == "encoded_file_name" )
+ $destFile = $ownerId."-".$resourceId.".".$fileExt;
+ else
+ $destFile = basename( $fileName );
+
+ $destPath = $this->getUserFolder( $ownerId );
+
+ // first of all, check if the file is readable and if not, quit
+ if( !File::isReadable($fileName)) {
+ return false;
+ }
+
+ $destFile = $destPath.$destFile;
+ if( $mode == RESOURCE_STORAGE_STORE_COPY )
+ $res = File::copy( $fileName, $destFile );
+ else
+ $res = File::rename( $fileName, $destFile );
+
+ if( !$res ) {
+ return false;
+ }
+ // check that the permissions are correct
+ File::chMod( $destFile, 0755 );
+
+ return $destFile;
+ }
+
+ /**
+ * removes a file from disk
+ *
+ * @param resource A GalleryResource object, representing the resource
+ * we'd like to delete.
+ * @return Returns ok if file was successfully deleted ok or false otherwise.
+ */
+ function remove( $resource )
+ {
+ if( $resource ) {
+ $config =& Config::getConfig();
+
+ // first of all, remove the resource file itself
+ $filePath = $this->getUserFolder( $resource->getOwnerId());
+ if( $config->getValue( "resources_naming_rule" ) == "encoded_file_name" )
+ $fullName = $filePath.$resource->getEncodedFileName();
+ else
+ $fullName = $filePath.$resource->getFileName();
+
+ if( File::isReadable( $fullName)) {
+ $result = File::delete( $fullName );
+ } else {
+ $result = false;
+ }
+
+ // and now if preview images are available, remove them too!
+ if( $resource->hasPreview()) {
+ // delete the small thumbnail
+ $previewFile = $this->getPreviewsFolder( $resource->getOwnerId()).$resource->getPreviewFileName();
+ if( File::isReadable( $previewFile ))
+ File::delete( $previewFile );
+
+ // and the medium-sized thumbnail
+ $medPreviewFile = $this->getMediumSizePreviewsFolder( $resource->getOwnerId()).$resource->getMediumSizePreviewFileName();
+ if( File::isReadable( $medPreviewFile ))
+ File::delete( $medPreviewFile );
+ }
+ }
+ else
+ $result = false;
+
+ return $result;
+ }
+
+ /**
+ * returns the path of a GalleryResource object within the storage area
+ *
+ * @param $resource A GalleryResource object
+ * @return A string containing the path to the file relative to the storage area.
+ */
+ function getResourcePath( $resource )
+ {
+ $config =& Config::getConfig();
+
+ // first of all, remove the resource file itself
+ $filePath = $this->getUserFolder( $resource->getOwnerId());
+ if( $config->getValue( "resources_naming_rule" ) == "encoded_file_name" )
+ $fileName = $resource->getEncodedFileName();
+ else
+ $fileName = $resource->getFileName();
+
+ $resourcePath = $this->getUserFolder( $resource->getOwnerId()).$fileName;
+ return $resourcePath;
+ }
+
+
+ /**
+ * Moves a file from one owner folder to another if the owner was modified.
+ *
+ * @param prevVersion A GalleryResource object
+ * @param resource A GalleryResource object
+ * @return True if successfull or if no move were needed.
+ */
+ function moveFile( $prevVersion, $resource )
+ {
+ $prevOwnerId = $prevVersion->getOwnerId();
+ $newOwnerId = $resource->getOwnerId();
+
+ if ($newOwnerId == $prevOwnerId) {
+ // No need to move
+ return true;
+ }
+
+ // check that the folders exist
+ if( !$this->_checkUserStorageFolder( $prevOwnerId ))
+ return false;
+ if( !$this->_checkUserStorageFolder( $newOwnerId ))
+ return false;
+
+ // move the main file
+ $fileName = $this->getUserFolder( $prevOwnerId ) . $resource->getFileName();
+ $destFile = $this->getUserFolder( $newOwnerId ) . $resource->getFileName();
+ $res = File::rename( $fileName, $destFile );
+ if( !$res )
+ return false;
+
+ // check that the permissions are correct
+ File::chMod( $destFile, 0755 );
+
+ // move the preview and the medium preview, but only if available
+ if( $resource->hasPreview()) {
+ $fileName = $this->getPreviewsFolder( $prevOwnerId ) . $resource->getPreviewFileName();
+ $destFile = $this->getPreviewsFolder( $newOwnerId ) . $resource->getPreviewFileName();
+ $res = File::rename( $fileName, $destFile );
+ if( !$res )
+ return false;
+
+ // check that the permissions are correct
+ File::chMod( $destFile, 0755 );
+
+ // move the medium size preview
+ $fileName = $this->getMediumSizePreviewsFolder( $prevOwnerId ) . $resource->getMediumSizePreviewFileName();
+ $destFile = $this->getMediumSizePreviewsFolder( $newOwnerId ) . $resource->getMediumSizePreviewFileName();
+ $res = File::rename( $fileName, $destFile );
+
+ if( !$res )
+ return false;
+
+ // check that the permissions are correct
+ File::chMod( $destFile, 0755 );
+ }
+
+ return true;
+ }
+ }
?>
More information about the pLog-svn
mailing list