]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #2895 river menu reimplemented using plugin hook
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sun, 6 Mar 2011 00:04:42 +0000 (00:04 +0000)
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sun, 6 Mar 2011 00:04:42 +0000 (00:04 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@8607 36083f99-b078-4883-b0ff-0f9b5a30f544

engine/lib/river.php
views/default/river/item/controls.php

index 3a351805e25b73779b02a370273ede5bad615eaf..656b496b57db2a8f2f6c19cbbb9abf675759125c 100644 (file)
@@ -505,6 +505,58 @@ function update_river_access_by_object($object_guid, $access_id) {
        return update_data($query);
 }
 
+/**
+ * Add the comment and like links to river actions menu
+ */
+function elgg_river_add_menu_items($hook, $type, $return, $params) {
+       if (elgg_is_logged_in()) {
+               $item = $params['item'];
+               $object = $item->getObjectEntity();
+               // comments and non-objects cannot be commented on or liked
+               if ($item->annotation_id == 0) {
+                       // comments
+                       if ($object->canComment()) {
+                               $options = array(
+                                       'name' => 'comment',
+                                       'href' => "#comments-add-$object->guid",
+                                       'text' => elgg_echo('generic_comments:text'),
+                                       'class' => "elgg-toggler",
+                               );
+                               $return[] = ElggMenuItem::factory($options);
+                       }
+
+                       // like this
+                       if ($object->canAnnotate(0, 'likes')) {
+                               if (!elgg_annotation_exists($object->getGUID(), 'likes')) {
+                                       $url = "action/likes/add?guid={$object->getGUID()}";
+                                       $options = array(
+                                               'name' => 'like',
+                                               'href' => $url,
+                                               'text' => elgg_echo('likes:likethis'),
+                                               'is_action' => true,
+                                       );
+                               } else {
+                                       $likes = elgg_get_annotations(array(
+                                               'guid' => $guid,
+                                               'annotation_name' => 'likes',
+                                               'owner_guid' => elgg_get_logged_in_user_guid()
+                                       ));
+                                       $url = elgg_get_site_url() . "action/likes/delete?annotation_id={$likes[0]->id}";
+                                       $options = array(
+                                               'name' => 'like',
+                                               'href' => $url,
+                                               'text' => elgg_echo('likes:remove'),
+                                               'is_action' => true,
+                                       );
+                               }
+                               $return[] = ElggMenuItem::factory($options);
+                       }
+               }
+       }
+       
+       return $return;
+}
+
 /**
  * Page handler for activiy
  *
@@ -534,6 +586,8 @@ function elgg_river_init() {
        elgg_register_page_handler('activity', 'elgg_river_page_handler');
        $item = new ElggMenuItem('activity', elgg_echo('activity'), 'pg/activity');
        elgg_register_menu_item('site', $item);
+
+       elgg_register_plugin_hook_handler('register', 'menu:river', 'elgg_river_add_menu_items');
 }
 
 elgg_register_event_handler('init', 'system', 'elgg_river_init');
index 468983329dc90aa2f414b7754e6fde4484b9b646..d3f8c6fc06d7ca844dd534803a192124d521ab78 100644 (file)
@@ -2,49 +2,7 @@
 /**
  * Controls on an river item
  *
- *
  * @uses $vars['item']
  */
 
-$object = $vars['item']->getObjectEntity();
-
-if (elgg_is_logged_in()) {
-       // comments and non-objects cannot be commented on or liked
-       if ($vars['item']->annotation_id == 0) {
-               // comments
-               if ($object->canComment()) {
-                       $params = array(
-                               'href' => "#comments-add-$object->guid",
-                               'text' => elgg_echo('generic_comments:text'),
-                               'class' => "elgg-toggler",
-                       );
-                       echo elgg_view('output/url', $params);
-               }
-
-               // like this
-               if ($object->canAnnotate(0, 'likes')) {
-                       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,
-                               );
-                       } else {
-                               $likes = elgg_get_annotations(array(
-                                       'guid' => $guid,
-                                       'annotation_name' => 'likes',
-                                       'owner_guid' => elgg_get_logged_in_user_guid()
-                               ));
-                               $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
+echo elgg_view_menu('river', array('item' => $vars['item']));