diff options
author | cash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2011-03-09 03:07:40 +0000 |
---|---|---|
committer | cash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2011-03-09 03:07:40 +0000 |
commit | bdb5d2b95792782ebc379e3348cad1812c1980b4 (patch) | |
tree | c923d740327b3aeb62a24246f3725ced8677a5f7 /mod/likes/actions | |
parent | 9ea30ea494cea4c950894a0ac1131eefda10868b (diff) | |
download | elgg-bdb5d2b95792782ebc379e3348cad1812c1980b4.tar.gz elgg-bdb5d2b95792782ebc379e3348cad1812c1980b4.tar.bz2 |
Fixes #3058 pulls likes out as a plugin
git-svn-id: http://code.elgg.org/elgg/trunk@8639 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/likes/actions')
-rw-r--r-- | mod/likes/actions/likes/add.php | 64 | ||||
-rw-r--r-- | mod/likes/actions/likes/delete.php | 29 |
2 files changed, 93 insertions, 0 deletions
diff --git a/mod/likes/actions/likes/add.php b/mod/likes/actions/likes/add.php new file mode 100644 index 000000000..f56493864 --- /dev/null +++ b/mod/likes/actions/likes/add.php @@ -0,0 +1,64 @@ +<?php +/** + * Elgg add like action + * + */ + +$entity_guid = (int) get_input('guid'); + +//check to see if the user has already liked the item +if (elgg_annotation_exists($entity_guid, 'likes')) { + system_message(elgg_echo("likes:alreadyliked")); + forward(REFERER); +} +// Let's see if we can get an entity with the specified GUID +$entity = get_entity($entity_guid); +if (!$entity) { + register_error(elgg_echo("likes:notfound")); + forward(REFERER); +} + +// cannot like your own stuff +if (!$entity->canAnnotate(0, 'likes')) { + // plugins should register the error message to explain why liking isn't allowed + forward(REFERER); +} + +$user = elgg_get_logged_in_user_entity(); +$annotation = create_annotation($entity->guid, + 'likes', + "likes", + "", + $user->guid, + $entity->access_id); + +// tell user annotation didn't work if that is the case +if (!$annotation) { + register_error(elgg_echo("likes:failure")); + forward(REFERER); +} + +// notify if poster wasn't owner +if ($entity->owner_guid != $user->guid) { + + notify_user($entity->owner_guid, + $user->guid, + elgg_echo('likes:email:subject'), + elgg_echo('likes:email:body', array( + $user->name, + $entity->title, + //$comment_text, + $entity->getURL(), + $user->name, + $user->getURL() + )) + ); +} + +system_message(elgg_echo("likes:likes")); + +//add to river +add_to_river('annotation/annotatelike', 'likes', $user->guid, $entity->guid, "", 0, $annotation); + +// Forward back to the page where the user 'liked' the object +forward(REFERER); diff --git a/mod/likes/actions/likes/delete.php b/mod/likes/actions/likes/delete.php new file mode 100644 index 000000000..867d5dfef --- /dev/null +++ b/mod/likes/actions/likes/delete.php @@ -0,0 +1,29 @@ +<?php +/** + * Elgg delete like action + * + */ + +// Ensure we're logged in +if (!elgg_is_logged_in()) { + forward(); +} + +// Make sure we can get the comment in question +$annotation_id = (int) get_input('annotation_id'); +if ($likes = elgg_get_annotation_from_id($annotation_id)) { + + $entity = get_entity($likes->entity_guid); + + if ($likes->canEdit()) { + $likes->delete(); + system_message(elgg_echo("likes:deleted")); + forward(REFERER); + } + +} else { + $url = ""; +} + +register_error(elgg_echo("likes:notdeleted")); +forward(REFERER);
\ No newline at end of file |