Skip to:
Content
Pages
Categories
Search
Top
Bottom

Replies In The Activity Stream. Are They Confusing To Members?


  • rossagrant
    Participant

    @rossagrant

    Hi guys, I’ve never really thought before but if someone posts a new forum topic and it appears in the activity stream they can hit reply to reply to that thread. The thing is though they are only replying IN THE ACTIVITY stream and not in the actual thread.

    Do you think this is confusing and may result in huge listings in the activity and not in the actual forum topic?

Viewing 3 replies - 1 through 3 (of 3 total)

  • @mercime
    Keymaster

    @mercime

    Yes it could be confusing and personally, I want replies posted in original blog and forum posts.

    Network Admin dashboard – BuddyPress > General Settings:
    choose option “Disable activity stream commenting on blog and forum posts?”


    rossagrant
    Participant

    @rossagrant

    @mercime you legend! Haha, didn’t even know that option existed! I think that should be set by default. Make it so much more straight forward!

    Thank you.


    Virtuali
    Participant

    @gunju2221

    or, :) you can redirect the “Reply” button to the “Leave a reply” textarea in the forums, and so on in the comments:

    `
    function cac_insert_comment_reply_links( $has_comments ) {
    global $activities_template, $wpdb, $bbdb;

    do_action( ‘bbpress_init’ );

    $topics_data = array();
    $posts_data = array();
    foreach( $activities_template->activities as $key => $activity ) {
    if ( $activity->type == ‘new_forum_topic’ ) {
    $topic_id = $activity->secondary_item_id;
    $topics_data[$topic_id] = $activity->primary_link;
    $topics_data[$topic_id] = $key;
    }

    if ( $activity->type == ‘new_forum_post’ ) {
    $post_id = $activity->secondary_item_id;
    $posts_data[$post_id] = array_pop( array_reverse( explode( ‘#’, $activity->primary_link ) ) );
    $posts_data[$post_id] = $key;
    }
    }

    // In cases where we only have the post id, we must do an extra query to get topic ids
    if ( !empty( $posts_data ) ) {
    $post_ids = array_keys( $posts_data );
    $post_ids_sql = implode( ‘,’, $post_ids );
    $sql = $wpdb->prepare( “SELECT topic_id, post_id FROM {$bbdb->posts} WHERE post_id IN ({$post_ids_sql})” );
    $post_topic_ids = $wpdb->get_results( $sql );

    // Now that we have the topic IDs, we can add that info to $topics_data for the main query
    foreach( $post_topic_ids as $post_topic ) {
    $topics_data[$post_topic->topic_id] = $posts_data[$post_topic->post_id];
    }
    }

    // Now for the main event
    // First, make a topic list and get all the associated posts
    $topic_ids = implode( ‘,’, array_keys( $topics_data ) );
    $sql = $wpdb->prepare( “SELECT topic_id, post_id FROM {$bbdb->posts} WHERE topic_id IN ({$topic_ids})” );
    $posts = $wpdb->get_results( $sql );

    // Now we get counts. BTW it sucks to do it this way
    $counter = array();
    foreach( $posts as $post ) {
    if ( empty( $counter[$post->topic_id] ) )
    $counter[$post->topic_id] = 1;
    else
    $counter[$post->topic_id]++;
    }

    // Finally, concatenate the reply url and put it in the activities_template
    foreach( $topics_data as $topic_id => $data ) {
    $total_pages = ceil( $counter[$topic_id] / 15 );
    $reply_url = cac_forum_reply_url( $data, $total_pages, 15 );
    $key = $data;
    $activities_template->activities[$key]->reply_url = $reply_url;
    }

    return $has_comments;
    }
    add_action( ‘bp_has_activities’, ‘cac_insert_comment_reply_links’ );

    /**
    * Filters the url of the activity reply link to use reply_url, if present
    */
    function cac_filter_activity_reply_link( $link ) {
    global $activities_template;

    if ( !empty( $activities_template->activity->reply_url ) )
    return $activities_template->activity->reply_url;
    else
    return $link;
    }
    add_action( ‘bp_get_activity_comment_link’, ‘cac_filter_activity_reply_link’ );

    /**
    * Echoes the proper CSS class for the activity reply link. This is necessary to ensure that
    * the JS slider does not appear when we have a custom reply_url.
    */
    function cac_activity_reply_link_class() {
    global $activities_template;

    if ( !empty( $activities_template->activity->reply_url ) )
    echo ‘class=”acomment-reply-nojs”‘;
    else
    echo ‘class=”acomment-reply”‘;
    }

    /**
    * A replacement for bp_activity_can_comment(). Todo: deprecate into a filter when BP 1.3 comes out
    */
    function cac_activity_can_comment() {
    global $activities_template, $bp;

    if ( false === $activities_template->disable_blogforum_replies || (int)$activities_template->disable_blogforum_replies ) {
    // If we’ve got a manually created reply_url (see cac_insert_comment_reply_links(), return true
    if ( !empty( $activities_template->activity->reply_url ) )
    return true;

    if ( ‘new_blog_post’ == bp_get_activity_action_name() || ‘new_blog_comment’ == bp_get_activity_action_name() || ‘new_forum_topic’ == bp_get_activity_action_name() || ‘new_forum_post’ == bp_get_activity_action_name() )
    return false;
    }

    return true;
    }`

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Replies In The Activity Stream. Are They Confusing To Members?’ is closed to new replies.
Skip to toolbar