aboutsummaryrefslogtreecommitdiff
path: root/views
diff options
context:
space:
mode:
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-12-29 18:16:54 +0000
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2010-12-29 18:16:54 +0000
commit3c083f6c4ff4d354a546e03477e7a4acbb16d4a9 (patch)
tree961ad1135905070b95a51bc0c6bdbd948754b562 /views
parent298114995174acf451cc1477fdeec34a42ef608b (diff)
downloadelgg-3c083f6c4ff4d354a546e03477e7a4acbb16d4a9.tar.gz
elgg-3c083f6c4ff4d354a546e03477e7a4acbb16d4a9.tar.bz2
rewrote the display of likes
git-svn-id: http://code.elgg.org/elgg/trunk@7748 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'views')
-rw-r--r--views/default/annotation/likes.php76
-rw-r--r--views/default/core/likes/display.php61
-rw-r--r--views/default/core/river/controls.php24
-rw-r--r--views/default/css/screen.php21
-rw-r--r--views/default/forms/likes/edit.php57
-rw-r--r--views/default/js/elgg.php173
6 files changed, 146 insertions, 266 deletions
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 @@
<?php
/**
- * Elgg show the user who liked the object
+ * Elgg show the users who liked the object
+ *
+ * @uses $vars['annotation']
*/
-$owner = get_user($vars['annotation']->owner_guid);
+if (!isset($vars['annotation'])) {
+ return true;
+}
-?>
-<div class="elgg-likes-user clearfix">
- <div class="entity-listing-icon">
- <?php
- echo elgg_view("profile/icon", array(
- 'entity' => $owner,
- 'size' => 'tiny'
- ));
- ?>
- </div>
-
- <div class="entity-listing-info">
- <?php
- // if the user looking at the like listing can edit, show the delete link
- if ($vars['annotation']->canEdit()) {
- ?>
- <div class="entity-metadata"><span class="delete-button">
- <?php echo elgg_view("output/confirmlink",array(
- 'href' => "action/likes/delete?annotation_id=" . $vars['annotation']->id,
- 'text' => elgg_echo('remove'),
+$like = $vars['annotation'];
+
+$user = $like->getOwnerEntity();
+if (!$user) {
+ return true;
+}
+
+$user_icon = elgg_view("profile/icon", array('entity' => $user, 'size' => 'tiny'));
+$user_link = elgg_view('output/url', array(
+ 'href' => $user->getURL(),
+ 'text' => $user->name,
+));
+
+$likes_string = elgg_echo('likes:this');
+
+$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' => elgg_echo('delete'),
'confirm' => elgg_echo('deleteconfirm')
- ));
- ?>
- </span></div>
- <?php
- } //end of can edit if statement
- ?>
- <p class="elgg-likes-owner">
- <a href="<?php echo $owner->getURL(); ?>"><?php echo $owner->name; ?></a> <?php echo elgg_echo('likes:this') .
- " <span class=\"entity-subtext\">" . elgg_view_friendly_time($vars['annotation']->time_created) . "</span>"; ?>
- </p>
- </div>
-</div> \ No newline at end of file
+ ));
+ $delete_button = "<span class=\"delete-button\">$delete_button</span>";
+}
+
+$body = <<<HTML
+<p class="mbn">
+ $delete_button
+ $user_link $likes_string
+ <span class="elgg-list-subtitle">
+ $friendlytime
+ </span>
+</p>
+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 @@
+<?php
+/**
+ * Elgg likes display
+ *
+ * @package Elgg
+ *
+ * @uses $vars['entity']
+ */
+
+if (!isset($vars['entity'])) {
+ return true;
+}
+
+$guid = $vars['entity']->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' => '<span class="elgg-icon elgg-icon-likes"></span>',
+ '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' => "<span class=\"elgg-icon elgg-icon-liked\"></span>",
+ '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 .= "<div class='elgg-likes-list hidden clearfix'>";
+ $list .= list_annotations($guid, 'likes', 99);
+ $list .= "</div>";
+}
+
+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 @@
-<?php
-/**
- * Elgg likes add form
- *
- * @package Elgg
- *
- * @uses $vars['entity']
- */
-
-if (isset($vars['entity']) && isloggedin()) {
- $guid = $vars['entity']->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' => '<span class="elgg-icon elgg-icon-likes"></span>',
- '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' => "<span class=\"elgg-icon $likes_classname\"></span>" . 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 "<div class='likes-list hidden clearfix'>";
- echo list_annotations($vars['entity']->getGUID(), 'likes', 99);
- echo "</div>";
- }
-}
-
-
-
-
-
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("<p id='widget_moreinfo'><b>"+ widgetdescription +" </b></p>");
-
- 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) {