From 3c083f6c4ff4d354a546e03477e7a4acbb16d4a9 Mon Sep 17 00:00:00 2001 From: cash Date: Wed, 29 Dec 2010 18:16:54 +0000 Subject: rewrote the display of likes git-svn-id: http://code.elgg.org/elgg/trunk@7748 36083f99-b078-4883-b0ff-0f9b5a30f544 --- views/default/annotation/likes.php | 76 ++++++++------- views/default/core/likes/display.php | 61 ++++++++++++ views/default/core/river/controls.php | 24 ++++- views/default/css/screen.php | 21 +++++ views/default/forms/likes/edit.php | 57 ----------- views/default/js/elgg.php | 173 ---------------------------------- 6 files changed, 146 insertions(+), 266 deletions(-) create mode 100644 views/default/core/likes/display.php delete mode 100644 views/default/forms/likes/edit.php (limited to 'views/default') diff --git a/views/default/annotation/likes.php b/views/default/annotation/likes.php index 3fdf2349b..20965f456 100644 --- a/views/default/annotation/likes.php +++ b/views/default/annotation/likes.php @@ -1,40 +1,48 @@ owner_guid); +if (!isset($vars['annotation'])) { + return true; +} -?> -
-
- $owner, - 'size' => 'tiny' - )); - ?> -
- -
- canEdit()) { - ?> - - -

- name; ?> " . elgg_view_friendly_time($vars['annotation']->time_created) . ""; ?> -

-
-
\ No newline at end of file + )); + $delete_button = "$delete_button"; +} + +$body = << + $delete_button + $user_link $likes_string + + $friendlytime + +

+HTML; + +echo elgg_view_image_block($user_icon, $body); diff --git a/views/default/core/likes/display.php b/views/default/core/likes/display.php new file mode 100644 index 000000000..bd0a8fa95 --- /dev/null +++ b/views/default/core/likes/display.php @@ -0,0 +1,61 @@ +getGUID(); + +// check to see if the user has already liked this +if (!elgg_annotation_exists($guid, 'likes')) { + $url = elgg_get_site_url() . "action/likes/add?guid={$guid}"; + $params = array( + 'href' => $url, + 'text' => '', + 'title' => elgg_echo('likes:likethis'), + 'is_action' => true, + 'encode_text' => false, + ); + $likes_button = elgg_view('output/url', $params); +} else { + $likes = get_annotations($guid, '', '', 'likes', '', get_loggedin_userid()); + $url = elgg_get_site_url() . "action/likes/delete?annotation_id={$likes[0]->id}"; + $params = array( + 'href' => $url, + 'text' => "", + 'title' => elgg_echo('likes:remove'), + 'is_action' => true, + 'encode_text' => false, + ); + $likes_button = elgg_view('output/url', $params); +} + +$list = ''; +$num_of_likes = elgg_count_likes($vars['entity']); +if ($num_of_likes) { + // display the number of likes + if ($num_of_likes == 1) { + $likes_string = elgg_echo('likes:userlikedthis'); + } else { + $likes_string = elgg_echo('likes:userslikedthis'); + } + $params = array( + 'text' => "$num_of_likes $likes_string", + 'title' => elgg_echo('likes:see'), + 'class' => 'elgg-like-toggle', + ); + $list = elgg_view('output/url', $params); + $list .= ""; +} + +echo $likes_button; +echo $list; diff --git a/views/default/core/river/controls.php b/views/default/core/river/controls.php index e239a2adb..66fbc5059 100644 --- a/views/default/core/river/controls.php +++ b/views/default/core/river/controls.php @@ -9,7 +9,7 @@ $object = $vars['item']->getObjectEntity(); if (isloggedin()) { - // comments and non-objects cannot be commented on + // comments and non-objects cannot be commented on or liked if ($object->getType() == 'object' && $vars['item']->annotation_id == 0) { $params = array( 'href' => '#', @@ -18,6 +18,26 @@ if (isloggedin()) { 'internalid' => "elgg-toggler-{$object->getGUID()}", ); echo elgg_view('output/url', $params); - //echo elgg_view('forms/likes/link', array('entity' => $object)); + + // like this + if (!elgg_annotation_exists($object->getGUID(), 'likes')) { + $url = "action/likes/add?guid={$object->getGUID()}"; + $params = array( + 'href' => $url, + 'text' => elgg_echo('likes:likethis'), + 'is_action' => true, + ); + echo elgg_view('output/url', $params); + } else { + $likes = get_annotations($guid, '', '', 'likes', '', get_loggedin_userid()); + $url = elgg_get_site_url() . "action/likes/delete?annotation_id={$likes[0]->id}"; + $params = array( + 'href' => $url, + 'text' => elgg_echo('likes:remove'), + 'is_action' => true, + ); + echo elgg_view('output/url', $params); + } } + } \ No newline at end of file diff --git a/views/default/css/screen.php b/views/default/css/screen.php index 3eb7e93a0..bae0404f7 100644 --- a/views/default/css/screen.php +++ b/views/default/css/screen.php @@ -760,6 +760,27 @@ a.elgg-widget-edit-button:hover, a.elgg-widget-delete-button:hover { /* *************************************** LIKES *************************************** */ +.elgg-likes-list { + background-color: white; + border:1px solid #cccccc; + width: 345px; + height: auto; + position: absolute; + text-align: left; + z-index: 9999; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + -webkit-box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.5); +} +.elgg-river-item > .elgg-alt a { + font-size: 90%; + float: right; + clear: both; +} + + + .likes-list-holder { position: relative; float:right; diff --git a/views/default/forms/likes/edit.php b/views/default/forms/likes/edit.php deleted file mode 100644 index 93c4ce983..000000000 --- a/views/default/forms/likes/edit.php +++ /dev/null @@ -1,57 +0,0 @@ -getGUID(); - $url = elgg_get_site_url() . "action/likes/add?guid={$guid}"; - - //check to see if the user has already liked - if (!elgg_annotation_exists($guid, 'likes') ) { - $params = array( - 'href' => $url, - 'text' => '', - 'title' => elgg_echo('likes:likethis'), - 'is_action' => true, - ); - echo elgg_view('output/url', $params); - $likes_classname = 'elgg-icon-likes'; - $likes_titletag = ""; - } else { - $likes_classname = 'elgg-icon-liked'; - $likes_titletag = elgg_echo('likes:remove'); - } - - //display the number of likes - $numoflikes = elgg_count_likes($vars['entity']); - if ($numoflikes != 0) { - if ($numoflikes == 1) { - $user_string = elgg_echo('likes:userlikedthis'); - } else { - $user_string = elgg_echo('likes:userslikedthis'); - } - - $params = array( - 'href' => $url, - 'text' => "" . elgg_count_likes($vars['entity']) . " " . $user_string, - 'title' => $likes_titletag, - 'is_action' => true, - ); - echo elgg_view('output/url', $params); - - //show the users who liked the object - echo ""; - } -} - - - - - diff --git a/views/default/js/elgg.php b/views/default/js/elgg.php index 3e7b30a99..f7f1e942c 100644 --- a/views/default/js/elgg.php +++ b/views/default/js/elgg.php @@ -65,86 +65,6 @@ $(function() { $(document).ready(function () { - // COLLAPSABLE WIDGETS (on Dashboard? & Profile pages) - // toggle widget box contents - $('a.toggle_box_contents').bind('click', toggleContent); - - // WIDGET GALLERY EDIT PANEL - // Sortable widgets - var els = ['#leftcolumn_widgets', '#middlecolumn_widgets', '#rightcolumn_widgets', '#widget_picker_gallery' ]; - var $els = $(els.toString()); - - $els.sortable({ - items: '.draggable_widget', - handle: '.drag-handle', - forcePlaceholderSize: true, - placeholder: 'ui-state-highlight', - cursor: 'move', - revert: true, - opacity: 0.9, - appendTo: 'body', - connectWith: els, - start:function(e,ui) { - - }, - stop: function(e,ui) { - // refresh list before updating hidden fields with new widget order - $(this).sortable( "refresh" ); - - var widgetNamesLeft = outputWidgetList('#leftcolumn_widgets'); - var widgetNamesMiddle = outputWidgetList('#middlecolumn_widgets'); - var widgetNamesRight = outputWidgetList('#rightcolumn_widgets'); - - document.getElementById('debugField1').value = widgetNamesLeft; - document.getElementById('debugField2').value = widgetNamesMiddle; - document.getElementById('debugField3').value = widgetNamesRight; - } - }); - - // bind more info buttons - called when new widgets are created - widget_moreinfo(); - - // set-up hover class for dragged widgets - $("#rightcolumn_widgets").droppable({ - accept: ".draggable_widget", - hoverClass: 'droppable-hover' - }); - $("#middlecolumn_widgets").droppable({ - accept: ".draggable_widget", - hoverClass: 'droppable-hover' - }); - $("#leftcolumn_widgets").droppable({ - accept: ".draggable_widget", - hoverClass: 'droppable-hover' - }); - - // user likes - $(".likes-list-button").click(function(event) { - if ($(this).next(".likes-list").css('display') == 'none') { // show list - // hide any other currently viewable likes lists - $('.likes-list').fadeOut(); - - var topPosition = - $(this).next(".likes-list").height(); - topPosition10 = topPosition + 10 + "px"; - topPosition = topPosition - 5 + "px"; - $('.likes-list').css('top',topPosition10); - $('.likes-list').css('left', -$('.likes-list').width()+110); - $(this).next(".likes-list").animate({opacity: "toggle", top: topPosition}, 500); - - // set up cancel for a click outside the likes list - $(document).click(function(event) { - var target = $(event.target); - if (target.parents(".likes-list-holder").length == 0) { - $(".likes-list").fadeOut(); - } - }); - - } else { // hide list - var topPosition = - $(this).next(".likes-list").height() + 5; - $(this).next(".likes-list").animate({opacity: "toggle", top: topPosition}, 500); - } - }); - elgg_system_message(); }); /* end document ready function */ @@ -170,99 +90,6 @@ function elgg_slide_toggle(activateLink, parentElement, toggleElement) { return false; } -// List active widgets for each page column -function outputWidgetList(forElement) { - return( $("input[name='handler'], input[name='guid']", forElement ).makeDelimitedList("value") ); -} - -// Make delimited list -jQuery.fn.makeDelimitedList = function(elementAttribute) { - - var delimitedListArray = new Array(); - var listDelimiter = "::"; - - // Loop over each element in the stack and add the elementAttribute to the array - this.each(function(e) { - var listElement = $(this); - // Add the attribute value to our values array - delimitedListArray[delimitedListArray.length] = listElement.attr(elementAttribute); - } - ); - - // Return value list by joining the array - return(delimitedListArray.join(listDelimiter)); -} - - -// Read each widgets collapsed/expanded state from cookie and apply -function widget_state(forWidget) { - - var thisWidgetState = $.cookie(forWidget); - - if (thisWidgetState == 'collapsed') { - forWidget = "#" + forWidget; - $(forWidget).find("div.collapsable_box_content").hide(); - $(forWidget).find("a.toggle_box_contents").html('+'); - $(forWidget).find("a.toggle_box_edit_panel").fadeOut('medium'); - }; -} - - -// Toggle widgets contents and save to a cookie -var toggleContent = function(e) { -var targetContent = $('div.collapsable_box_content', this.parentNode.parentNode); - if (targetContent.css('display') == 'none') { - targetContent.slideDown(400); - $(this).html('-'); - $(this.parentNode).children(".toggle_box_edit_panel").fadeIn('medium'); - - // set cookie for widget panel open-state - var thisWidgetName = $(this.parentNode.parentNode.parentNode).attr('id'); - $.cookie(thisWidgetName, 'expanded', { expires: 365 }); - - } else { - targetContent.slideUp(400); - $(this).html('+'); - $(this.parentNode).children(".toggle_box_edit_panel").fadeOut('medium'); - // make sure edit pane is closed - $(this.parentNode.parentNode).children(".collapsable_box_editpanel").hide(); - - // set cookie for widget panel closed-state - var thisWidgetName = $(this.parentNode.parentNode.parentNode).attr('id'); - $.cookie(thisWidgetName, 'collapsed', { expires: 365 }); - } - return false; -}; - -// More info tooltip in widget gallery edit panel -function widget_moreinfo() { - - $("img.more_info").hover(function(e) { - var widgetdescription = $("input[name='description']", this.parentNode.parentNode.parentNode ).attr('value'); - $("body").append("

"+ widgetdescription +"

"); - - if (e.pageX < 900) { - $("#widget_moreinfo") - .css("top",(e.pageY + 10) + "px") - .css("left",(e.pageX + 10) + "px") - .fadeIn("medium"); - } - else { - $("#widget_moreinfo") - .css("top",(e.pageY + 10) + "px") - .css("left",(e.pageX - 210) + "px") - .fadeIn("medium"); - } - }, - function() { - $("#widget_moreinfo").remove(); - }); - - $("img.more_info").mousemove(function(e) { - // action on mousemove - }); -}; - // ELGG DROP DOWN MENU $.fn.elgg_dropdownmenu = function(options) { -- cgit v1.2.3