From 1d59e5fc4bcc10151831456436019aef90de2bd3 Mon Sep 17 00:00:00 2001 From: cash Date: Sun, 6 Mar 2011 01:39:23 +0000 Subject: Refs #2679 can comment on discussion forums in river now git-svn-id: http://code.elgg.org/elgg/trunk@8610 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/river.php | 3 +++ mod/groups/start.php | 30 ++++++++++++++++++++++ .../views/default/forms/discussion/reply/save.php | 15 ++++++++--- .../river/object/groupforumtopic/create.php | 7 +++++ views/default/river/item/controls.php | 5 +++- 5 files changed, 55 insertions(+), 5 deletions(-) diff --git a/engine/lib/river.php b/engine/lib/river.php index 656b496b5..c934e9932 100644 --- a/engine/lib/river.php +++ b/engine/lib/river.php @@ -521,6 +521,7 @@ function elgg_river_add_menu_items($hook, $type, $return, $params) { 'href' => "#comments-add-$object->guid", 'text' => elgg_echo('generic_comments:text'), 'class' => "elgg-toggler", + 'priority' => 50, ); $return[] = ElggMenuItem::factory($options); } @@ -534,6 +535,7 @@ function elgg_river_add_menu_items($hook, $type, $return, $params) { 'href' => $url, 'text' => elgg_echo('likes:likethis'), 'is_action' => true, + 'priority' => 100, ); } else { $likes = elgg_get_annotations(array( @@ -547,6 +549,7 @@ function elgg_river_add_menu_items($hook, $type, $return, $params) { 'href' => $url, 'text' => elgg_echo('likes:remove'), 'is_action' => true, + 'priority' => 100, ); } $return[] = ElggMenuItem::factory($options); diff --git a/mod/groups/start.php b/mod/groups/start.php index d83ff467e..08c0d1966 100644 --- a/mod/groups/start.php +++ b/mod/groups/start.php @@ -543,6 +543,9 @@ function discussion_init() { // Register for search. elgg_register_entity_type('object', 'groupforumtopic'); + // because replies are not comments, need of our menu item + elgg_register_plugin_hook_handler('register', 'menu:river', 'discussion_add_to_river_menu'); + // add the forum tool option add_group_tool_option('forum', elgg_echo('groups:enableforum'), true); elgg_extend_view('groups/tool_latest', 'discussion/group_module'); @@ -624,6 +627,33 @@ function discussion_owner_block_menu($hook, $type, $return, $params) { return $return; } +/** + * Add the reply button for the river + */ +function discussion_add_to_river_menu($hook, $type, $return, $params) { + if (elgg_is_logged_in()) { + $item = $params['item']; + $object = $item->getObjectEntity(); + if (elgg_instanceof($object, 'object', 'groupforumtopic')) { + if ($item->annotation_id == 0) { + $group = $object->getContainerEntity(); + if ($group->isMember() || elgg_is_admin_logged_in()) { + $options = array( + 'name' => 'reply', + 'href' => "#groups-reply-$object->guid", + 'text' => elgg_echo('reply'), + 'class' => "elgg-toggler", + 'priority' => 50, + ); + $return[] = ElggMenuItem::factory($options); + } + } + } + } + + return $return; +} + /** * Event handler for group forum posts * diff --git a/mod/groups/views/default/forms/discussion/reply/save.php b/mod/groups/views/default/forms/discussion/reply/save.php index 6281e941c..be258b8fe 100644 --- a/mod/groups/views/default/forms/discussion/reply/save.php +++ b/mod/groups/views/default/forms/discussion/reply/save.php @@ -2,21 +2,28 @@ /** * Discussion topic reply form bofy * - * @uses $vars['entity'] + * @uses $vars['entity'] A discussion topic object + * @uses $vars['inline'] Display a shortened form? */ if (isset($vars['entity']) && elgg_is_logged_in()) { + $inline = elgg_extract('inline', $vars, false); + + if ($inline) { + echo elgg_view('input/text', array('name' => 'group_topic_post')); + echo elgg_view('input/submit', array('value' => elgg_echo('reply'))); + } else { ?>
'group_topic_post')); ?>
elgg_echo('reply'))); - + echo elgg_view('input/submit', array('value' => elgg_echo('reply'))); + } echo elgg_view('input/hidden', array( 'name' => 'entity_guid', - 'value' => $vars['entity']->getGUID() + 'value' => $vars['entity']->getGUID(), )); } diff --git a/mod/groups/views/default/river/object/groupforumtopic/create.php b/mod/groups/views/default/river/object/groupforumtopic/create.php index 1ca871b58..2c914c3f8 100644 --- a/mod/groups/views/default/river/object/groupforumtopic/create.php +++ b/mod/groups/views/default/river/object/groupforumtopic/create.php @@ -33,3 +33,10 @@ if ($excerpt) { echo $excerpt; echo ''; } + +if (elgg_is_logged_in() && $container->isMember(elgg_get_logged_in_user_entity())) { + // inline comment form + echo elgg_view_form('discussion/reply/save', array( + 'id' => "groups-reply-{$object->getGUID()}", + ), array('entity' => $object, 'inline' => true)); +} diff --git a/views/default/river/item/controls.php b/views/default/river/item/controls.php index d3f8c6fc0..188d01b5a 100644 --- a/views/default/river/item/controls.php +++ b/views/default/river/item/controls.php @@ -5,4 +5,7 @@ * @uses $vars['item'] */ -echo elgg_view_menu('river', array('item' => $vars['item'])); +echo elgg_view_menu('river', array( + 'item' => $vars['item'], + 'sort_by' => 'priority', +)); -- cgit v1.2.3