aboutsummaryrefslogtreecommitdiff
path: root/actions
diff options
context:
space:
mode:
authordave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-03-21 16:22:19 +0000
committerdave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-03-21 16:22:19 +0000
commit64be91148a881f65224c583b92c407205db24634 (patch)
tree3b4eba097b3fa6e990091c7b882642fe139f86c6 /actions
parentad745e050da855d326d1b6bc3df8032c05574392 (diff)
downloadelgg-64be91148a881f65224c583b92c407205db24634.tar.gz
elgg-64be91148a881f65224c583b92c407205db24634.tar.bz2
generic like this functionality added
git-svn-id: http://code.elgg.org/elgg/trunk@5456 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'actions')
-rw-r--r--actions/likes/add.php64
-rw-r--r--actions/likes/delete.php32
2 files changed, 96 insertions, 0 deletions
diff --git a/actions/likes/add.php b/actions/likes/add.php
new file mode 100644
index 000000000..36672d3ec
--- /dev/null
+++ b/actions/likes/add.php
@@ -0,0 +1,64 @@
+<?php
+/**
+ * Elgg add like action
+ *
+ * @package Elgg
+ * @author Curverider <curverider.co.uk>
+ * @link http://elgg.org/
+ */
+
+// Make sure we're logged in; forward to the front page if not
+gatekeeper();
+
+// Get input
+$entity_guid = (int) get_input('guid');
+//check to see if the user has already liked the item
+if(elgg_already_created_annotation($entity_guid, 'likes')){
+ system_message(elgg_echo("likes:alreadyliked"));
+ forward($_SERVER['HTTP_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($_SERVER['HTTP_REFERER']);
+}
+
+$user = get_loggedin_user();
+$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($_SERVER['HTTP_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'),
+ sprintf(
+ elgg_echo('likes:email:body'),
+ $entity->title,
+ $user->name,
+ $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($_SERVER['HTTP_REFERER']);
diff --git a/actions/likes/delete.php b/actions/likes/delete.php
new file mode 100644
index 000000000..cbb89f67a
--- /dev/null
+++ b/actions/likes/delete.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Elgg delete like action
+ *
+ * @package Elgg
+ * @author Curverider <curverider.co.uk>
+ * @link http://elgg.org/
+ */
+
+// Ensure we're logged in
+if (!isloggedin()) {
+ forward();
+}
+
+// Make sure we can get the comment in question
+$annotation_id = (int) get_input('annotation_id');
+if ($likes = get_annotation($annotation_id)) {
+
+ $entity = get_entity($likes->entity_guid);
+
+ if ($likes->canEdit()) {
+ $likes->delete();
+ system_message(elgg_echo("likes:deleted"));
+ forward($entity->getURL());
+ }
+
+} else {
+ $url = "";
+}
+
+register_error(elgg_echo("likes:notdeleted"));
+forward($entity->getURL()); \ No newline at end of file