From 110f0fa670a03bcd7f95a2d45a42d8a891d70544 Mon Sep 17 00:00:00 2001 From: ben Date: Mon, 7 Apr 2008 15:14:19 +0000 Subject: Further delete and event trigger fixes git-svn-id: https://code.elgg.org/elgg/trunk@412 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/annotations.php | 28 +++++++++++++++++----------- engine/lib/elgglib.php | 18 +++++++++++------- engine/lib/entities.php | 2 +- 3 files changed, 29 insertions(+), 19 deletions(-) (limited to 'engine/lib') diff --git a/engine/lib/annotations.php b/engine/lib/annotations.php index f2b9e16fb..7e8caaab6 100644 --- a/engine/lib/annotations.php +++ b/engine/lib/annotations.php @@ -397,18 +397,24 @@ $guid = (int)$guid; $name = get_metastring_id($name); + + $entity_guid = (int)$entity_guid; + if ($entity = get_entity($entity_guid)) { + if ($entity->canEdit()) { - $where = array(); - - if ($name != "") - $where[] = " name_id='$name'"; - - $query = "DELETE from {$CONFIG->dbprefix}annotations where entity_guid=$guid and "; - foreach ($where as $w) - $query .= " $w and "; - $query .= "(access_id in {$access} or (access_id = 0 and owner_guid = {$_SESSION['id']}))"; - - return delete_data(); + $where = array(); + + if ($name != "") + $where[] = " name_id='$name'"; + + $query = "DELETE from {$CONFIG->dbprefix}annotations where entity_guid=$guid "; + foreach ($where as $w) + $query .= " and $w"; + + return delete_data($query); + + } + } } /** diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php index 3da5652c1..bbb0f7579 100644 --- a/engine/lib/elgglib.php +++ b/engine/lib/elgglib.php @@ -654,13 +654,17 @@ * @return true|false Depending on success */ function trigger_event($event, $object_type, $object = null) { - if (events($event, $object_type, "", null, true, $object) - && events('all', $object_type, "", null, true, $object) - && events($event, 'all', "", null, true, $object) - && events('all', 'all', "", null, true, $object)) { - return true; - } - return false; + + $return = true; + $return1 = events($event, $object_type, "", null, true, $object); + if (!is_null($return1)) $return = $return1; + $return2 = events('all', $object_type, "", null, true, $object); + if (!is_null($return2)) $return = $return2; + $return3 = events($event, 'all', "", null, true, $object); + if (!is_null($return3)) $return = $return3; + $return4 = events('all', 'all', "", null, true, $object); + if (!is_null($return4)) $return = $return4; + return $return; } /** diff --git a/engine/lib/entities.php b/engine/lib/entities.php index 169d87eb9..1d77760e8 100644 --- a/engine/lib/entities.php +++ b/engine/lib/entities.php @@ -693,7 +693,7 @@ if ($entity->canEdit()) { $entity->clearMetadata(); $entity->clearAnnotations(); - return delete_data("DELETE from {$CONFIG->dbprefix}entities where where guid={$guid}"); + return delete_data("DELETE from {$CONFIG->dbprefix}entities where guid={$guid}"); } } } -- cgit v1.2.3