]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
updating album image list when a photo is deleted
authorCash Costello <cash.costello@gmail.com>
Sat, 23 Oct 2010 12:53:41 +0000 (12:53 +0000)
committerCash Costello <cash.costello@gmail.com>
Sat, 23 Oct 2010 12:53:41 +0000 (12:53 +0000)
actions/admin/upgrade.php
actions/delete.php
lib/album.php
lib/image.php

index 9c4aef1cf230a7c4ba1c90264ae4a2e79c3590df..334e9588ec73546b08e50f8df65782322ddba60a 100644 (file)
@@ -11,6 +11,8 @@ if ($version <= $local_version) {
        forward($_SERVER['HTTP_REFERER']);
 }
 
+set_time_limit(0);
+
 $base_dir = $CONFIG->pluginspath . 'tidypics/upgrades';
 
 // taken from engine/lib/version.php
index c1e0ed59ea8565664d24689a0fe4950eedf83987..9b8c6ac6fd982b55941f86da8d981c25dce41400 100644 (file)
@@ -53,7 +53,7 @@ $image_repo_size_md = get_metadata_byname($owner_guid, "image_repo_size");
 $image_repo_size = (int)$image_repo_size_md->value;
 
 //loop through all images and delete them
-foreach($images as $im) {
+foreach ($images as $im) {
        $thumbnail = $im->thumbnail;
        $smallthumb = $im->smallthumb;
        $largethumb = $im->largethumb;
@@ -76,16 +76,17 @@ foreach($images as $im) {
                $delfile->setFilename($largethumb);
                $delfile->delete();
        }
-       if ($im) { //delete actual image file
-               $delfile = new ElggFile($im->getGUID());
-               $delfile->owner_guid = $im->getOwner();
-               //$delfile->setFilename($im->originalfilename);
-               $image_repo_size -= $delfile->size();
+       if ($im) {
+               $image_repo_size -= $im->size();
 
-               if (!$delfile->delete()) {
-                       if ($subtype=='image') register_error(elgg_echo("tidypics:deletefailed")); //unable to delete object
+               if (!$im->delete()) {
+                       if ($subtype=='image') {
+                               register_error(elgg_echo("tidypics:deletefailed")); //unable to delete object
+                       }
                } else {
-                       if ($subtype=='image') system_message(elgg_echo("tidypics:deleted")); //successfully deleted object
+                       if ($subtype=='image') {
+                               system_message(elgg_echo("tidypics:deleted")); //successfully deleted object
+                       }
                }
        } //end delete actual image file
 } //end looping through each image to delete it
@@ -107,7 +108,7 @@ if ($subtype == 'album') {
                rmdir($albumdir);
        }
 
-       //delete object from database
+       //delete album object from database
        if (!$entity->delete()) {
                register_error(elgg_echo("tidypics:deletefailed")); //unable to delete object
        } else {
index 87bb715f42292dd80a2e5d5bb8167f333febaa13..15450049aa255d61f41e9561878eefb03477c796 100644 (file)
@@ -138,4 +138,23 @@ class TidypicsAlbum extends ElggObject {
                }
                return $imageList[$key];
        }
+
+       /**
+        * Remove an image from the album list
+        *
+        * @param int $imageGuid
+        * @return bool
+        */
+       public function removeImage($imageGuid)  {
+               $imageList = $this->getImageList();
+               $key = array_search($imageGuid, $imageList);
+               if ($key === FALSE) {
+                       return FALSE;
+               }
+               
+               unset($imageList[$key]);
+               $this->setImageList($imageList);
+
+               return TRUE;
+       }
 }
index 4100f3f7bea31173e3bcdb1557a8e57ed7a624f5..c60eabfc088193b834b92e811d99441c231a22da 100644 (file)
@@ -17,6 +17,19 @@ class TidypicsImage extends ElggFile {
                parent::__construct($guid);
        }
 
+       /**
+        * delete image
+        *
+        * @return bool
+        */
+       public function delete() {
+
+               $album = get_entity($this->container_guid);
+               $album->removeImage($this->guid);
+
+               return parent::delete();
+       }
+
        /**
         * Has the photo been tagged with "in this photo" tags
         *