From 3aeb6fcf7a5fab9050803e49af7cab6ea094ba4e Mon Sep 17 00:00:00 2001 From: brettp Date: Wed, 27 Jan 2010 16:21:40 +0000 Subject: Fixes #1419: Added remove_from_river_by_annotation(). Deleting annotations now deletes their river entry. git-svn-id: http://code.elgg.org/elgg/trunk@3850 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/annotations.php | 7 ++++--- engine/lib/river2.php | 19 ++++++++++++++++++- 2 files changed, 22 insertions(+), 4 deletions(-) (limited to 'engine/lib') diff --git a/engine/lib/annotations.php b/engine/lib/annotations.php index 2ca977a09..6d5c0b46a 100644 --- a/engine/lib/annotations.php +++ b/engine/lib/annotations.php @@ -1136,10 +1136,11 @@ function delete_annotation($id) { $annotation = get_annotation($id); if (trigger_elgg_event('delete', 'annotation', $annotation)) { - return delete_data("DELETE from {$CONFIG->dbprefix}annotations where id=$id and $access"); + remove_from_river_by_annotation($id); + return delete_data("DELETE from {$CONFIG->dbprefix}annotations where id=$id and $access"); } - return false; + return FALSE; } /** @@ -1255,4 +1256,4 @@ function register_annotation_url_handler($function_name, $extender_name = "all") } /** Register the hook */ -register_plugin_hook("export", "all", "export_annotation_plugin_hook", 2); \ No newline at end of file +register_plugin_hook("export", "all", "export_annotation_plugin_hook", 2); diff --git a/engine/lib/river2.php b/engine/lib/river2.php index 09a6b0cc7..02a2a0732 100644 --- a/engine/lib/river2.php +++ b/engine/lib/river2.php @@ -95,6 +95,23 @@ function remove_from_river_by_object($object_guid) { return delete_data("delete from {$CONFIG->dbprefix}river where object_guid = {$object_guid}"); } +/** + * Removes all items relating to a particular annotation being acted upon from the river + * + * @param int annotation_id The ID of the annotation + * @return true|false Depending on success + */ +function remove_from_river_by_annotation($annotation_id) { + // Sanitise + $annotation_id = (int) $annotation_id; + + // Load config + global $CONFIG; + + // Remove + return delete_data("delete from {$CONFIG->dbprefix}river where annotation_id = {$annotation_id}"); +} + /** * Sets the access ID on river items for a particular object * @@ -287,4 +304,4 @@ function elgg_view_river_items($subject_guid = 0, $object_guid = 0, $subject_rel } return ''; -} \ No newline at end of file +} -- cgit v1.2.3