]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Refs #2679 can comment on discussion forums in river now
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sun, 6 Mar 2011 01:39:23 +0000 (01:39 +0000)
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sun, 6 Mar 2011 01:39:23 +0000 (01:39 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@8610 36083f99-b078-4883-b0ff-0f9b5a30f544

engine/lib/river.php
mod/groups/start.php
mod/groups/views/default/forms/discussion/reply/save.php
mod/groups/views/default/river/object/groupforumtopic/create.php
views/default/river/item/controls.php

index 656b496b57db2a8f2f6c19cbbb9abf675759125c..c934e99320856ff73d017c9c3bb026478dc01571 100644 (file)
@@ -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);
index d83ff467eb1ad443cd2156fa9c4ab08c69d57127..08c0d1966cb89a212b910a57c1516b1ca116f1c9 100644 (file)
@@ -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
  *
index 6281e941ca66b18a3403ef1cdb8df5fc5b9a9785..be258b8fe1c5ebccfc83f10273f7a10ef58c6c05 100644 (file)
@@ -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 {
 ?>
        <div>
                <label><?php echo elgg_echo("reply"); ?></label>
                <?php echo elgg_view('input/longtext', array('name' => 'group_topic_post')); ?>
        </div>
 <?php
-       echo elgg_view('input/submit', array('value' => 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(),
        ));
 }
index 1ca871b581392612782e3abae2e3af10a710d517..2c914c3f8755a7c4223033b4a1910dce04c41e7b 100644 (file)
@@ -33,3 +33,10 @@ if ($excerpt) {
        echo $excerpt;
        echo '</div>';
 }
+
+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));
+}
index d3f8c6fc06d7ca844dd534803a192124d521ab78..188d01b5a080d5a4008d6e21c6dea1e72d552259 100644 (file)
@@ -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',
+));