diff options
Diffstat (limited to 'mod/likes')
| -rw-r--r-- | mod/likes/actions/likes/delete.php | 32 | ||||
| -rw-r--r-- | mod/likes/languages/en.php | 3 | ||||
| -rw-r--r-- | mod/likes/manifest.xml | 9 | ||||
| -rw-r--r-- | mod/likes/start.php | 11 | ||||
| -rw-r--r-- | mod/likes/views/default/annotation/likes.php | 11 | ||||
| -rw-r--r-- | mod/likes/views/default/likes/button.php | 7 | ||||
| -rw-r--r-- | mod/likes/views/default/likes/count.php | 9 | ||||
| -rw-r--r-- | mod/likes/views/default/likes/css.php | 2 | ||||
| -rw-r--r-- | mod/likes/views/default/likes/js.php | 2 |
9 files changed, 55 insertions, 31 deletions
diff --git a/mod/likes/actions/likes/delete.php b/mod/likes/actions/likes/delete.php index db3036bb4..322d512e8 100644 --- a/mod/likes/actions/likes/delete.php +++ b/mod/likes/actions/likes/delete.php @@ -4,17 +4,27 @@ * */ -$likes = elgg_get_annotations(array( - 'guid' => (int) get_input('guid'), - 'annotation_owner_guid' => elgg_get_logged_in_user_guid(), - 'annotation_name' => 'likes', -)); -if ($likes) { - if ($likes[0]->canEdit()) { - $likes[0]->delete(); - system_message(elgg_echo("likes:deleted")); - forward(REFERER); - } +// Support deleting by id in case we're deleting another user's likes +$id = (int) get_input('id'); + +$like = NULL; +if ($id) { + $like = elgg_get_annotation_from_id($id); +} + +if (!$like) { + $likes = elgg_get_annotations(array( + 'guid' => (int) get_input('guid'), + 'annotation_owner_guid' => elgg_get_logged_in_user_guid(), + 'annotation_name' => 'likes', + )); + $like = $likes[0]; +} + +if ($like && $like->canEdit()) { + $like->delete(); + system_message(elgg_echo("likes:deleted")); + forward(REFERER); } register_error(elgg_echo("likes:notdeleted")); diff --git a/mod/likes/languages/en.php b/mod/likes/languages/en.php index 29b379506..bdbd2a963 100644 --- a/mod/likes/languages/en.php +++ b/mod/likes/languages/en.php @@ -17,6 +17,7 @@ $english = array( 'likes:userlikedthis' => '%s like', 'likes:userslikedthis' => '%s likes', 'likes:river:annotate' => 'likes', + 'likes:delete:confirm' => 'Are you sure you want to delete this like?', 'river:likes' => 'likes %s %s', @@ -25,7 +26,7 @@ $english = array( 'likes:notifications:body' => 'Hi %1$s, -%2$s likes your post "%3$s" on %4$s! +%2$s likes your post "%3$s" on %4$s See your original post here: diff --git a/mod/likes/manifest.xml b/mod/likes/manifest.xml index f63c643a6..62835fcf5 100644 --- a/mod/likes/manifest.xml +++ b/mod/likes/manifest.xml @@ -8,11 +8,10 @@ <description>Enables users to like content on the site.</description> <website>http://www.elgg.org/</website> <copyright>See COPYRIGHT.txt</copyright> - <license>GNU Public License version 2</license> + <license>GNU General Public License version 2</license> <requires> - <type>elgg_version</type> - <version>2010030101</version> + <type>elgg_release</type> + <version>1.8</version> </requires> <activate_on_install>true</activate_on_install> - <admin_interface>advanced</admin_interface> -</plugin_manifest>
\ No newline at end of file +</plugin_manifest> diff --git a/mod/likes/start.php b/mod/likes/start.php index 76b48a369..0f8e12159 100644 --- a/mod/likes/start.php +++ b/mod/likes/start.php @@ -60,6 +60,17 @@ function likes_entity_menu_setup($hook, $type, $return, $params) { function likes_river_menu_setup($hook, $type, $return, $params) { if (elgg_is_logged_in()) { $item = $params['item']; + + // only like group creation #3958 + if ($item->type == "group" && $item->view != "river/group/create") { + return $return; + } + + // don't like users #4116 + if ($item->type == "user") { + return $return; + } + $object = $item->getObjectEntity(); if (!elgg_in_context('widgets') && $item->annotation_id == 0) { if ($object->canAnnotate(0, 'likes')) { diff --git a/mod/likes/views/default/annotation/likes.php b/mod/likes/views/default/annotation/likes.php index e1ae20818..2b5acc520 100644 --- a/mod/likes/views/default/annotation/likes.php +++ b/mod/likes/views/default/annotation/likes.php @@ -20,6 +20,7 @@ $user_icon = elgg_view_entity_icon($user, 'tiny'); $user_link = elgg_view('output/url', array( 'href' => $user->getURL(), 'text' => $user->name, + 'is_trusted' => true, )); $likes_string = elgg_echo('likes:this'); @@ -28,11 +29,11 @@ $friendlytime = elgg_view_friendly_time($like->time_created); if ($like->canEdit()) { $delete_button = elgg_view("output/confirmlink",array( - 'href' => "action/likes/delete?annotation_id={$like->id}", - 'text' => "<span class=\"elgg-icon elgg-icon-delete right\"></span>", - 'confirm' => elgg_echo('deleteconfirm'), - 'text_encode' => false, - )); + 'href' => "action/likes/delete?id={$like->id}", + 'text' => "<span class=\"elgg-icon elgg-icon-delete float-alt\"></span>", + 'confirm' => elgg_echo('likes:delete:confirm'), + 'encode_text' => false, + )); } $body = <<<HTML diff --git a/mod/likes/views/default/likes/button.php b/mod/likes/views/default/likes/button.php index 383e1bb63..bc7c8fd8a 100644 --- a/mod/likes/views/default/likes/button.php +++ b/mod/likes/views/default/likes/button.php @@ -20,20 +20,17 @@ if (elgg_is_logged_in() && $vars['entity']->canAnnotate(0, 'likes')) { 'text' => elgg_view_icon('thumbs-up'), 'title' => elgg_echo('likes:likethis'), 'is_action' => true, + 'is_trusted' => true, ); $likes_button = elgg_view('output/url', $params); } else { - $options = array( - 'guid' => $guid, - 'annotation_name' => 'likes', - 'owner_guid' => elgg_get_logged_in_user_guid() - ); $url = elgg_get_site_url() . "action/likes/delete?guid={$guid}"; $params = array( 'href' => $url, 'text' => elgg_view_icon('thumbs-up-alt'), 'title' => elgg_echo('likes:remove'), 'is_action' => true, + 'is_trusted' => true, ); $likes_button = elgg_view('output/url', $params); } 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; |
