aboutsummaryrefslogtreecommitdiff
path: root/mod/likes
diff options
context:
space:
mode:
Diffstat (limited to 'mod/likes')
-rw-r--r--mod/likes/actions/likes/add.php13
-rw-r--r--mod/likes/languages/en.php23
-rw-r--r--mod/likes/start.php49
-rw-r--r--mod/likes/views/default/likes/count.php9
-rw-r--r--mod/likes/views/default/likes/css.php2
-rw-r--r--mod/likes/views/default/likes/js.php2
6 files changed, 80 insertions, 18 deletions
diff --git a/mod/likes/actions/likes/add.php b/mod/likes/actions/likes/add.php
index b76c1bea9..a6a8d6c45 100644
--- a/mod/likes/actions/likes/add.php
+++ b/mod/likes/actions/likes/add.php
@@ -41,18 +41,7 @@ if (!$annotation) {
// 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()
- ))
- );
+ likes_notify_user($entity->getOwnerEntity(), $user, $entity);
}
system_message(elgg_echo("likes:likes"));
diff --git a/mod/likes/languages/en.php b/mod/likes/languages/en.php
index aad2a7f24..29b379506 100644
--- a/mod/likes/languages/en.php
+++ b/mod/likes/languages/en.php
@@ -17,9 +17,28 @@ $english = array(
'likes:userlikedthis' => '%s like',
'likes:userslikedthis' => '%s likes',
'likes:river:annotate' => 'likes',
- 'likes:email:body' => '%s liked %s',
- 'likes:email:subject' => 'A user liked one of your objects',
+
'river:likes' => 'likes %s %s',
+
+ // notifications. yikes.
+ 'likes:notifications:subject' => '%s likes your post "%s"',
+ 'likes:notifications:body' =>
+'Hi %1$s,
+
+%2$s likes your post "%3$s" on %4$s!
+
+See your original post here:
+
+%5$s
+
+or view %2$s\'s profile here:
+
+%6$s
+
+Thanks,
+%4$s
+',
+
);
add_translation('en', $english);
diff --git a/mod/likes/start.php b/mod/likes/start.php
index d45fb96b3..76b48a369 100644
--- a/mod/likes/start.php
+++ b/mod/likes/start.php
@@ -109,3 +109,52 @@ function likes_count($entity) {
return $entity->countAnnotations('likes');
}
}
+
+/**
+ * Notify $user that $liker liked his $entity.
+ *
+ * @param type $user
+ * @param type $liker
+ * @param type $entity
+ */
+function likes_notify_user(ElggUser $user, ElggUser $liker, ElggEntity $entity) {
+
+ if (!$user instanceof ElggUser) {
+ return false;
+ }
+
+ if (!$liker instanceof ElggUser) {
+ return false;
+ }
+
+ if (!$entity instanceof ElggEntity) {
+ return false;
+ }
+
+ $title_str = $entity->title;
+ if (!$title_str) {
+ $title_str = elgg_get_excerpt($entity->description);
+ }
+
+ $site = get_config('site');
+
+ $subject = elgg_echo('likes:notifications:subject', array(
+ $liker->name,
+ $title_str
+ ));
+
+ $body = elgg_echo('likes:notifications:body', array(
+ $user->name,
+ $liker->name,
+ $title_str,
+ $site->name,
+ $entity->getURL(),
+ $liker->getURL()
+ ));
+
+ notify_user($user->guid,
+ $liker->guid,
+ $subject,
+ $body
+ );
+} \ No newline at end of file
diff --git a/mod/likes/views/default/likes/count.php b/mod/likes/views/default/likes/count.php
index bdc50bcd1..071a069bd 100644
--- a/mod/likes/views/default/likes/count.php
+++ b/mod/likes/views/default/likes/count.php
@@ -24,8 +24,13 @@ if ($num_of_likes) {
'href' => "#likes-$guid"
);
$list = elgg_view('output/url', $params);
- $list .= "<div class='elgg-module elgg-module-popup elgg-likes-list hidden clearfix' id='likes-$guid'>";
- $list .= elgg_list_annotations(array('guid' => $guid, 'annotation_name' => 'likes', 'limit' => 99));
+ $list .= "<div class='elgg-module elgg-module-popup elgg-likes hidden clearfix' id='likes-$guid'>";
+ $list .= elgg_list_annotations(array(
+ 'guid' => $guid,
+ 'annotation_name' => 'likes',
+ 'limit' => 99,
+ 'list_class' => 'elgg-list-likes'
+ ));
$list .= "</div>";
echo $list;
}
diff --git a/mod/likes/views/default/likes/css.php b/mod/likes/views/default/likes/css.php
index fabf54e46..1ec07b366 100644
--- a/mod/likes/views/default/likes/css.php
+++ b/mod/likes/views/default/likes/css.php
@@ -7,7 +7,7 @@
/* ***************************************
Likes
*************************************** */
-.elgg-likes-list {
+.elgg-likes {
width: 345px;
position: absolute;
}
diff --git a/mod/likes/views/default/likes/js.php b/mod/likes/views/default/likes/js.php
index b7e000539..f701ebedf 100644
--- a/mod/likes/views/default/likes/js.php
+++ b/mod/likes/views/default/likes/js.php
@@ -15,7 +15,7 @@
* @return {Object}
*/
elgg.ui.likesPopupHandler = function(hook, type, params, options) {
- if (params.target.hasClass('elgg-likes-list')) {
+ if (params.target.hasClass('elgg-likes')) {
options.my = 'right bottom';
options.at = 'left top';
return options;