]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #3566 separate out likes button from likes count
authorCash Costello <cash.costello@gmail.com>
Sat, 25 Jun 2011 13:52:54 +0000 (09:52 -0400)
committerCash Costello <cash.costello@gmail.com>
Sat, 25 Jun 2011 13:52:54 +0000 (09:52 -0400)
mod/likes/start.php
mod/likes/views/default/likes/button.php
mod/likes/views/default/likes/count.php [new file with mode: 0644]
mod/likes/views/default/likes/css.php
views/default/river/elements/body.php

index b2aa83260ec882cd65d4f830c8aad69aeed11ae8..df1c7b109a0f6231d57d88617a65fcfee4f054c7 100644 (file)
@@ -29,15 +29,27 @@ function likes_entity_menu_setup($hook, $type, $return, $params) {
 
        $entity = $params['entity'];
 
-       // likes
+       // likes button
        $options = array(
                'name' => 'likes',
-               'text' => elgg_view('likes/display', array('entity' => $entity)),
+               'text' => elgg_view('likes/button', array('entity' => $entity)),
                'href' => false,
                'priority' => 1000,
        );
        $return[] = ElggMenuItem::factory($options);
 
+       // likes count
+       $count = elgg_view('likes/count', array('entity' => $entity));
+       if ($count) {
+               $options = array(
+                       'name' => 'likes_count',
+                       'text' => $count,
+                       'href' => false,
+                       'priority' => 1001,
+               );
+               $return[] = ElggMenuItem::factory($options);
+       }
+
        return $return;
 }
 
@@ -50,14 +62,27 @@ function likes_river_menu_setup($hook, $type, $return, $params) {
                $object = $item->getObjectEntity();
                if (!elgg_in_context('widgets') && $item->annotation_id == 0) {
                        if ($object->canAnnotate(0, 'likes')) {
+                               // like button
                                $options = array(
                                        'name' => 'likes',
                                        'href' => false,
-                                       'text' => elgg_view('likes/display', array('entity' => $object)),
+                                       'text' => elgg_view('likes/button', array('entity' => $object)),
                                        'is_action' => true,
                                        'priority' => 100,
                                );
                                $return[] = ElggMenuItem::factory($options);
+
+                               // likes count
+                               $count = elgg_view('likes/count', array('entity' => $object));
+                               if ($count) {
+                                       $options = array(
+                                               'name' => 'likes_count',
+                                               'text' => $count,
+                                               'href' => false,
+                                               'priority' => 101,
+                                       );
+                                       $return[] = ElggMenuItem::factory($options);
+                               }
                        }
                }
        }
index 2dc50ddd0179f2189c48ba870c626eaaa8258ecb..383e1bb63796c03fadc2239c35bda378e8eb5902 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Elgg likes display
+ * Elgg likes button
  *
  * @uses $vars['entity']
  */
@@ -40,26 +40,3 @@ if (elgg_is_logged_in() && $vars['entity']->canAnnotate(0, 'likes')) {
 }
 
 echo $likes_button;
-
-$list = '';
-$num_of_likes = likes_count($vars['entity']);
-
-if ($num_of_likes) {
-       // display the number of likes
-       if ($num_of_likes == 1) {
-               $likes_string = elgg_echo('likes:userlikedthis', array($num_of_likes));
-       } else {
-               $likes_string = elgg_echo('likes:userslikedthis', array($num_of_likes));
-       }
-       $params = array(
-               'text' => $likes_string,
-               'title' => elgg_echo('likes:see'),
-               'rel' => 'popup',
-               '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>";
-       echo $list;
-}
diff --git a/mod/likes/views/default/likes/count.php b/mod/likes/views/default/likes/count.php
new file mode 100644 (file)
index 0000000..3d03fec
--- /dev/null
@@ -0,0 +1,30 @@
+<?php
+/**
+ * Count of who has liked something
+ *
+ *  @uses $vars['entity']
+ */
+
+
+$list = '';
+$num_of_likes = likes_count($vars['entity']);
+
+if ($num_of_likes) {
+       // display the number of likes
+       if ($num_of_likes == 1) {
+               $likes_string = elgg_echo('likes:userlikedthis', array($num_of_likes));
+       } else {
+               $likes_string = elgg_echo('likes:userslikedthis', array($num_of_likes));
+       }
+       $params = array(
+               'text' => $likes_string,
+               'title' => elgg_echo('likes:see'),
+               'rel' => 'popup',
+               '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>";
+       echo $list;
+}
index cb0334b7cbb5faf92c5c8982796880a63af48b7d..fabf54e4643e5b7193ea7044fa19450fb437d26b 100644 (file)
@@ -11,3 +11,7 @@
        width: 345px;
        position: absolute;
 }
+
+.elgg-menu .elgg-menu-item-likes-count {
+       margin-left: 3px;
+}
index 7eebb0c99accb9082fd9ca2755acb2fd78162bc8..6199e086188dd7e5d7abbc7b052447e629717337 100644 (file)
@@ -7,7 +7,11 @@
 
 $item = $vars['item'];
 
-$menu = elgg_view_menu('river', array('item' => $item, 'sort_by' => 'priority'));
+$menu = elgg_view_menu('river', array(
+       'item' => $item,
+       'sort_by' => 'priority',
+       'class' => 'elgg-menu-hz',
+));
 
 // river item header
 $timestamp = elgg_get_friendly_time($item->getPostedTime());