diff options
Diffstat (limited to 'actions/delete.php')
-rw-r--r-- | actions/delete.php | 211 |
1 files changed, 105 insertions, 106 deletions
diff --git a/actions/delete.php b/actions/delete.php index cab996ec5..c1e0ed59e 100644 --- a/actions/delete.php +++ b/actions/delete.php @@ -1,121 +1,120 @@ <?php - /** - * Tidypics Delete Action for Images and Albums - * - */ +/** + * Tidypics Delete Action for Images and Albums + * + */ - // must be logged in - gatekeeper(); +// must be logged in +gatekeeper(); - $forward_url = 'pg/photos/world'; // by default forward to world photos +$forward_url = 'pg/photos/world'; // by default forward to world photos - $guid = (int) get_input('guid'); +$guid = (int) get_input('guid'); - $entity = get_entity($guid); - if (!$entity) { // unable to get Elgg entity - register_error(elgg_echo("tidypics:deletefailed")); - forward($forward_url); - } - - if (!$entity->canEdit()) { // user doesn't have permissions - register_error(elgg_echo("tidypics:deletefailed")); - forward($forward_url); - } +$entity = get_entity($guid); +if (!$entity) { // unable to get Elgg entity + register_error(elgg_echo("tidypics:deletefailed")); + forward($forward_url); +} - $subtype = $entity->getSubtype(); - $container = get_entity($entity->container_guid); - - if ($subtype != 'image' && $subtype != 'album') { // how did we even get here? - register_error(elgg_echo("tidypics:deletefailed")); - forward($forward_url); - } +if (!$entity->canEdit()) { // user doesn't have permissions + register_error(elgg_echo("tidypics:deletefailed")); + forward($forward_url); +} + +$subtype = $entity->getSubtype(); +$container = get_entity($entity->container_guid); + +if ($subtype != 'image' && $subtype != 'album') { // how did we even get here? + register_error(elgg_echo("tidypics:deletefailed")); + forward($forward_url); +} + +$owner_guid = 0; // group or user +if ($subtype == 'image') { //deleting an image + $album = get_entity($entity->container_guid); + $owner_guid = $album->container_guid; + $forward_url = $container->getURL(); //forward back to album after deleting pictures + $images = array($entity); + // plugins can register to be told when a Tidypics image has been deleted + trigger_elgg_event('delete', 'tp_image', $entity); +} else { //deleting an album + $owner_guid = $entity->container_guid; + $forward_url = 'pg/photos/owned/' . $container->username; + //get all the images from this album as long as less than 999 images + $images = get_entities("object", "image", $guid, '', 999); + // plugins can register to be told when a Tidypics album has been deleted + trigger_elgg_event('delete', 'tp_album', $entity); +} + +// make sure we decrease the repo size for the size quota +$image_repo_size_md = get_metadata_byname($owner_guid, "image_repo_size"); +$image_repo_size = (int)$image_repo_size_md->value; - $owner_guid = 0; // group or user - if ($subtype == 'image') { //deleting an image - $album = get_entity($entity->container_guid); - $owner_guid = $album->container_guid; - $forward_url = $container->getURL(); //forward back to album after deleting pictures - $images = array($entity); - // plugins can register to be told when a Tidypics image has been deleted - trigger_elgg_event('delete', 'tp_image', $entity); - } else { //deleting an album - $owner_guid = $entity->container_guid; - $forward_url = 'pg/photos/owned/' . $container->username; - //get all the images from this album as long as less than 999 images - $images = get_entities("object", "image", $guid, '', 999); - // plugins can register to be told when a Tidypics album has been deleted - trigger_elgg_event('delete', 'tp_album', $entity); +//loop through all images and delete them +foreach($images as $im) { + $thumbnail = $im->thumbnail; + $smallthumb = $im->smallthumb; + $largethumb = $im->largethumb; + + if ($thumbnail) { //delete standard thumbnail image + $delfile = new ElggFile(); + $delfile->owner_guid = $im->getOwner(); + $delfile->setFilename($thumbnail); + $delfile->delete(); + } + if ($smallthumb) { //delete small thumbnail image + $delfile = new ElggFile(); + $delfile->owner_guid = $im->getOwner(); + $delfile->setFilename($smallthumb); + $delfile->delete(); + } + if ($largethumb) { //delete large thumbnail image + $delfile = new ElggFile(); + $delfile->owner_guid = $im->getOwner(); + $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(); - // make sure we decrease the repo size for the size quota - $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) { - $thumbnail = $im->thumbnail; - $smallthumb = $im->smallthumb; - $largethumb = $im->largethumb; - - if ($thumbnail) { //delete standard thumbnail image - $delfile = new ElggFile(); - $delfile->owner_guid = $im->getOwner(); - $delfile->setFilename($thumbnail); - $delfile->delete(); - } - if ($smallthumb) { //delete small thumbnail image - $delfile = new ElggFile(); - $delfile->owner_guid = $im->getOwner(); - $delfile->setFilename($smallthumb); - $delfile->delete(); - } - if ($largethumb) { //delete large thumbnail image - $delfile = new ElggFile(); - $delfile->owner_guid = $im->getOwner(); - $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 (!$delfile->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 - } - } //end delete actual image file - } //end looping through each image to delete it - - //now that all images have been deleted, delete the album - if ($subtype == 'album') { - //delete the album's directory manually; first create a temp file to get the directory path - $tmpfile = new ElggFile(); - $tmpfile->setFilename('image/' . $guid . '/._tmp_del_tidypics_album_'); - $tmpfile->subtype = 'image'; - $tmpfile->container_guid = $guid; - $tmpfile->open("write"); - $tmpfile->write(''); - $tmpfile->close(); - $tmpfile->save(); - $albumdir = eregi_replace('/._tmp_del_tidypics_album_', '', $tmpfile->getFilenameOnFilestore()); - $tmpfile->delete(); - if (is_dir($albumdir)) - rmdir($albumdir); - - //delete object from database - if (!$entity->delete()) { - register_error(elgg_echo("tidypics:deletefailed")); //unable to delete object + if (!$delfile->delete()) { + if ($subtype=='image') register_error(elgg_echo("tidypics:deletefailed")); //unable to delete object } else { - system_message(elgg_echo("tidypics:deleted")); //successfully deleted object + if ($subtype=='image') system_message(elgg_echo("tidypics:deleted")); //successfully deleted object } - } //end of delete album + } //end delete actual image file +} //end looping through each image to delete it - create_metadata($owner_guid, "image_repo_size", $image_repo_size, 'integer', $owner_guid); +//now that all images have been deleted, delete the album +if ($subtype == 'album') { + //delete the album's directory manually; first create a temp file to get the directory path + $tmpfile = new ElggFile(); + $tmpfile->setFilename('image/' . $guid . '/._tmp_del_tidypics_album_'); + $tmpfile->subtype = 'image'; + $tmpfile->container_guid = $guid; + $tmpfile->open("write"); + $tmpfile->write(''); + $tmpfile->close(); + $tmpfile->save(); + $albumdir = eregi_replace('/._tmp_del_tidypics_album_', '', $tmpfile->getFilenameOnFilestore()); + $tmpfile->delete(); + if (is_dir($albumdir)) { + rmdir($albumdir); + } - forward($forward_url); + //delete object from database + if (!$entity->delete()) { + register_error(elgg_echo("tidypics:deletefailed")); //unable to delete object + } else { + system_message(elgg_echo("tidypics:deleted")); //successfully deleted object + } +} //end of delete album + +create_metadata($owner_guid, "image_repo_size", $image_repo_size, 'integer', $owner_guid); -?>
\ No newline at end of file +forward($forward_url); |