aboutsummaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2011-03-06 00:04:42 +0000
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2011-03-06 00:04:42 +0000
commit38e7d84f89340e6e0ffb40323b2c86770cf9fe4e (patch)
tree473abf8ef1ceb20c7a1e3e63b506cffb033efdd7 /engine
parentda5dd299925f4ff1a63b1dd45e34c3bdf81c01dc (diff)
downloadelgg-38e7d84f89340e6e0ffb40323b2c86770cf9fe4e.tar.gz
elgg-38e7d84f89340e6e0ffb40323b2c86770cf9fe4e.tar.bz2
Fixes #2895 river menu reimplemented using plugin hook
git-svn-id: http://code.elgg.org/elgg/trunk@8607 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine')
-rw-r--r--engine/lib/river.php54
1 files changed, 54 insertions, 0 deletions
diff --git a/engine/lib/river.php b/engine/lib/river.php
index 3a351805e..656b496b5 100644
--- a/engine/lib/river.php
+++ b/engine/lib/river.php
@@ -506,6 +506,58 @@ function update_river_access_by_object($object_guid, $access_id) {
}
/**
+ * 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
*
* @param array $page
@@ -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');