Skip to:
Content

BuddyPress.org

Changeset 2128


Ignore:
Timestamp:
11/25/2009 08:38:56 PM (14 years ago)
Author:
apeatling
Message:

Activity stream commenting updates

Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-activity.php

    r2114 r2128  
    241241
    242242        'search_terms' => false, // Pass search terms as a string
     243        'show_hidden' => false, // Show activity items that are hidden site-wide?
    243244
    244245        /**
     
    258259    extract( $r, EXTR_SKIP );
    259260
    260     return apply_filters( 'bp_activity_get_sitewide', BP_Activity_Activity::get_sitewide_activity( $max, $page, $per_page, $sort, $search_terms, $filter, $display_comments ), &$r );
     261    return apply_filters( 'bp_activity_get_sitewide', BP_Activity_Activity::get_sitewide_activity( $max, $page, $per_page, $sort, $search_terms, $filter, $display_comments, $show_hidden ), &$r );
    261262}
    262263
     
    273274
    274275        'search_terms' => false, // Pass search terms as a string
     276        'show_hidden' => false, // Show activity items that are hidden site-wide?
     277
     278        /* See bp_activity_get_sitewide() for filters */
    275279        'filter' => array()
    276280    );
     
    279283    extract( $r, EXTR_SKIP );
    280284
    281     return apply_filters( 'bp_activity_get_for_user', BP_Activity_Activity::get_activity_for_user( $user_id, $max, $page, $per_page, $sort, $search_terms, $filter, $display_comments ), &$r );
     285    return apply_filters( 'bp_activity_get_for_user', BP_Activity_Activity::get_activity_for_user( $user_id, $max, $page, $per_page, $sort, $search_terms, $filter, $display_comments, $show_hidden ), &$r );
    282286}
    283287
  • trunk/bp-activity/bp-activity-classes.php

    r2114 r2128  
    163163    }
    164164
    165     function get_activity_for_user( $user_id, $max = false, $page = 1, $per_page = 25, $sort = 'DESC', $search_terms = false, $filter = false, $display_comments = false ) {
     165    function get_activity_for_user( $user_id, $max = false, $page = 1, $per_page = 25, $sort = 'DESC', $search_terms = false, $filter = false, $display_comments = false, $show_hidden = false ) {
    166166        global $wpdb, $bp;
    167167
     
    247247    }
    248248
    249     function get_sitewide_activity( $max = false, $page = 1, $per_page = 25, $sort = 'DESC', $search_terms = false, $filter = false, $display_comments = false ) {
    250         global $wpdb, $bp;
     249    function get_sitewide_activity( $max = false, $page = 1, $per_page = 25, $sort = 'DESC', $search_terms = false, $filter = false, $display_comments = false, $show_hidden = false ) {
     250        global $wpdb, $bp;
     251
     252        $where_conditions = array();
    251253
    252254        if ( $per_page && $page )
     
    259261        if ( $search_terms ) {
    260262            $search_terms = $wpdb->escape( $search_terms );
    261             $search_sql = "AND content LIKE '%%" . like_escape( $search_terms ) . "%%'";
     263            $where_conditions['search_sql'] = "content LIKE '%%" . like_escape( $search_terms ) . "%%'";
    262264        }
    263265
    264266        /* Filtering */
    265         if ( $filter )
    266             $filter_sql = BP_Activity_Activity::get_filter_sql( $filter );
     267        if ( $filter && $filter_sql = BP_Activity_Activity::get_filter_sql( $filter ) )
     268            $where_conditions['filter_sql'] = $filter_sql;
    267269
    268270        /* Sorting */
     
    270272            $sort = 'DESC';
    271273
     274        /* Hide Hidden Items? */
     275        if ( !$show_hidden )
     276            $where_conditions['hidden_sql'] = "hide_sitewide = 0";
     277
    272278        /* Alter the query based on whether we want to show activity item comments in the stream like normal comments or threaded below the activity */
    273279        if ( !$display_comments || 'threaded' == $display_comments ) {
     280            $where_conditions[] = "component_action != 'activity_comment'";
     281            $where_sql = 'WHERE ' . join( ' AND ', $where_conditions );
     282
    274283            if ( $per_page && $page && $max )
    275                 $activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE hide_sitewide = 0 {$search_sql} {$filter_sql} AND component_action != 'activity_comment' ORDER BY date_recorded {$sort} {$pag_sql}" ) );
     284                $activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} {$where_sql} ORDER BY date_recorded {$sort} {$pag_sql}" ) );
    276285            else
    277                 $activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE hide_sitewide = 0 {$search_sql} {$filter_sql} AND component_action != 'activity_comment' ORDER BY date_recorded {$sort} {$pag_sql} {$max_sql}" ) );
    278 
    279             $total_activities = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM {$bp->activity->table_name} WHERE hide_sitewide = 0 {$search_sql} {$filter_sql} AND component_action != 'activity_comment' ORDER BY date_recorded {$sort} {$max_sql}" ) );
     286                $activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} {$where_sql} ORDER BY date_recorded {$sort} {$pag_sql} {$max_sql}" ) );
     287
     288            $total_activities = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM {$bp->activity->table_name} {$where_sql} ORDER BY date_recorded {$sort} {$max_sql}" ) );
    280289
    281290            if ( $activities && $display_comments )
     
    286295             * we will need to do things slightly differently.
    287296             */
     297            if ( !empty( $where_conditions ) )
     298                $where_sql = 'WHERE ' . join( ' AND ', $where_conditions );
     299
    288300             if ( !empty( $filter_sql ) ) {
    289                 $all_activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE hide_sitewide = 0 {$search_sql} {$filter_sql} ORDER BY id {$sort}" ) );
     301                $all_activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} {$where_sql} ORDER BY id {$sort}" ) );
    290302
    291303                foreach ( (array)$all_activities as $activity ) {
     
    296308
    297309                /* Fetch the comments for the activity items */
    298                 $all_comments = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE hide_sitewide = 0 AND item_id IN ({$activity_ids}) {$search_sql} ORDER BY id {$sort}" ) );
     310                $search_sql = $where_conditions['search_sql'];
     311                $all_comments = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE item_id IN ({$activity_ids}) {$search_sql} ORDER BY id {$sort}" ) );
    299312
    300313                foreach ( (array)$all_comments as $comment ) {
     
    313326             } else {
    314327                if ( $per_page && $page && $max )
    315                     $activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE hide_sitewide = 0 {$search_sql} {$filter_sql} ORDER BY id {$sort} {$pag_sql}" ) );
     328                    $activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} {$where_sql} ORDER BY id {$sort} {$pag_sql}" ) );
    316329                else
    317                     $activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} WHERE hide_sitewide = 0 {$search_sql} {$filter_sql} ORDER BY id {$sort} {$pag_sql} {$max_sql}" ) );
    318 
    319                 $total_activities = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM {$bp->activity->table_name} WHERE hide_sitewide = 0 {$search_sql} {$filter_sql} ORDER BY date_recorded {$sort} {$max_sql}" ) );
     330                    $activities = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$bp->activity->table_name} {$where_sql} ORDER BY id {$sort} {$pag_sql} {$max_sql}" ) );
     331
     332                $total_activities = $wpdb->get_var( $wpdb->prepare( "SELECT count(id) FROM {$bp->activity->table_name} {$where_sql} ORDER BY date_recorded {$sort} {$max_sql}" ) );
    320333             }
    321334
     
    449462        if ( !empty( $filter_array['object'] ) ) {
    450463            $object_filter = explode( ',', $filter_array['object'] );
    451             $object_sql = ' AND ( ';
     464            $object_sql = ' ( ';
    452465
    453466            $counter = 1;
     
    462475
    463476            $object_sql .= ' )';
     477            $filter_sql[] = $object_sql;
    464478        }
    465479
    466480        if ( !empty( $filter_array['action'] ) ) {
    467481            $action_filter = explode( ',', $filter_array['action'] );
    468             $action_sql = ' AND ( ';
     482            $action_sql = ' ( ';
    469483
    470484            $counter = 1;
     
    479493
    480494            $action_sql .= ' )';
     495            $filter_sql[] = $action_sql;
    481496        }
    482497
    483498        if ( !empty( $filter_array['primary_id'] ) ) {
    484499            $pid_filter = explode( ',', $filter_array['primary_id'] );
    485             $pid_sql = ' AND ( ';
     500            $pid_sql = ' ( ';
    486501
    487502            $counter = 1;
     
    496511
    497512            $pid_sql .= ' )';
     513            $filter_sql[] = $pid_sql;
    498514        }
    499515
    500516        if ( !empty( $filter_array['secondary_id'] ) ) {
    501517            $sid_filter = explode( ',', $filter_array['secondary_id'] );
    502             $sid_sql = ' AND ( ';
     518            $sid_sql = ' ( ';
    503519
    504520            $counter = 1;
     
    513529
    514530            $sid_sql .= ' )';
    515         }
    516 
    517         return $object_sql . $action_sql . $pid_sql . $sid_sql;
     531            $filter_sql[] = $sid_sql;
     532        }
     533
     534        if ( empty($filter_sql) )
     535            return false;
     536
     537        return join( ' AND ', $filter_sql );
    518538    }
    519539
  • trunk/bp-activity/bp-activity-templatetags.php

    r2114 r2128  
    1717    var $full_name;
    1818
    19     function bp_activity_template( $type, $user_id, $per_page, $max, $include, $sort, $filter, $search_terms, $display_comments ) {
     19    function bp_activity_template( $type, $user_id, $per_page, $max, $include, $sort, $filter, $search_terms, $display_comments, $show_hidden ) {
    2020        global $bp;
    2121
     
    2929        } else {
    3030            if ( $type == 'sitewide' )
    31                 $this->activities = bp_activity_get_sitewide( array( 'display_comments' => $display_comments, 'max' => $max, 'per_page' => $this->pag_num, 'page' => $this->pag_page, 'sort' => $sort, 'search_terms' => $search_terms, 'filter' => $filter ) );
     31                $this->activities = bp_activity_get_sitewide( array( 'display_comments' => $display_comments, 'max' => $max, 'per_page' => $this->pag_num, 'page' => $this->pag_page, 'sort' => $sort, 'search_terms' => $search_terms, 'filter' => $filter, 'show_hidden' => $show_hidden ) );
    3232
    3333            if ( $type == 'personal' )
     
    129129        'per_page' => 25, // number of items per page
    130130        'max' => false, // max number to return
     131        'show_hidden' => false, // Show activity items that are hidden site-wide?
    131132
    132133        /* Filtering */
     
    157158        $filter = array( 'object' => $object, 'action' => $action, 'primary_id' => $primary_id, 'secondary_id' => $secondary_id );
    158159
    159     $activities_template = new BP_Activity_Template( $type, $user_id, $per_page, $max, $include, $sort, $filter, $search_terms, $display_comments );
     160    $activities_template = new BP_Activity_Template( $type, $user_id, $per_page, $max, $include, $sort, $filter, $search_terms, $display_comments, $show_hidden );
    160161
    161162    return apply_filters( 'bp_has_activities', $activities_template->has_activities(), &$activities_template );
     
    481482
    482483        foreach ( (array) $component_names as $component_name ) {
     484            /* Skip the activity comment filter */
     485            if ( 'activity' == $component_name )
     486                continue;
     487
    483488            if ( isset( $_GET['afilter'] ) && $component_name == $_GET['afilter'] )
    484489                $selected = ' class="selected"';
  • trunk/bp-activity/bp-activity-widgets.php

    r2077 r2128  
    2323           . $after_title; ?>
    2424
    25     <?php if ( bp_has_activities( 'type=sitewide&max=' . $instance['max_items'] . '&per_page=' . $instance['per_page'] ) ) : ?>
     25    <?php if ( bp_has_activities( 'type=sitewide&max=' . $instance['max_items'] . '&per_page=' . $instance['per_page'] . '&display_comments=threaded' ) ) : ?>
    2626
    2727        <?php if ( !file_exists( WP_CONTENT_DIR . '/bp-themes' ) ) : ?>
     
    4343        <ul id="site-wide-stream" class="activity-list">
    4444        <?php while ( bp_activities() ) : bp_the_activity(); ?>
    45             <li class="<?php bp_activity_css_class() ?>">
    46                 <?php if ( !file_exists( WP_CONTENT_DIR . '/bp-themes' ) ) : ?>
    47                     <div class="activity-avatar">
    48                         <?php bp_activity_avatar() ?>
     45            <li class="<?php bp_activity_css_class() ?>" id="activity-<?php bp_activity_id() ?>">
     46                <div class="activity-avatar">
     47                    <?php bp_activity_avatar('width=40&height=40') ?>
     48                </div>
     49
     50                <div class="activity-content">
     51                    <?php bp_activity_content() ?>
     52
     53                    <?php if ( is_user_logged_in() ) : ?>
     54                    <div class="activity-meta">
     55                        <a href="#acomment-<?php bp_activity_id() ?>" class="acomment-reply" id="acomment-comment-<?php bp_activity_id() ?>"><?php _e( 'Comment', 'buddypress' ) ?> (<?php bp_activity_comment_count() ?>)</a>
    4956                    </div>
    50                 <?php endif; ?>
     57                    <?php endif; ?>
     58                </div>
    5159
    52                 <?php bp_activity_content() ?>
     60                <div class="activity-comments">
     61                    <?php bp_activity_comments() ?>
     62
     63                    <?php if ( is_user_logged_in() ) : ?>
     64                    <form action="" method="post" name="activity-comment-form" id="ac-form-<?php bp_activity_id() ?>" class="ac-form">
     65                        <div class="ac-reply-avatar"><?php bp_loggedin_user_avatar( 'width=25&height=25' ) ?></div>
     66                        <div class="ac-reply-content">
     67                            <textarea id="ac-input-<?php bp_activity_id() ?>" class="ac-input" name="ac-input-<?php bp_activity_id() ?>"></textarea>
     68                            <input type="submit" name="ac-form-submit" value="<?php _e( 'Post', 'buddypress' ) ?> &rarr;" />
     69                        </div>
     70                        <?php wp_nonce_field( 'new_activity_comment', '_wpnonce_new_activity_comment' ) ?>
     71                    </form>
     72                    <?php endif; ?>
     73                </div>
     74
    5375            </li>
    5476        <?php endwhile; ?>
  • trunk/bp-core.php

    r2114 r2128  
    132132
    133133    /* The default component to use if none are set and someone visits: http://domain.com/members/andy */
    134     if ( defined( 'BP_XPROFILE_SLUG' ) )
    135         $bp->default_component = BP_XPROFILE_SLUG;
    136     else
    137         $bp->default_component = 'profile';
     134    if ( !defined( 'BP_DEFAULT_COMPONENT' ) ) {
     135        if ( defined( 'BP_ACTIVITY_SLUG' ) )
     136            $bp->default_component = BP_ACTIVITY_SLUG;
     137        else
     138            $bp->default_component = 'profile';
     139    } else {
     140        $bp->default_component = BP_DEFAULT_COMPONENT;
     141    }
    138142
    139143    /* Sets up the array container for the component navigation rendered by bp_get_nav() */
     
    13371341    $since = $newer_date - $older_date;
    13381342
     1343    /* Something went wrong with date calculation and we ended up with a negative date. */
    13391344    if ( 0 > $since )
    1340         return __( '[Use GMT Timezone]', 'buddypress' );
     1345        return __( 'sometime', 'buddypress' );
    13411346
    13421347    /**
  • trunk/bp-core/bp-core-templatetags.php

    r2114 r2128  
    464464        return true;
    465465
    466     if ( !$is_member_page && !in_array( $bp->current_component, $bp->root_components ) )
     466    if ( is_front_page() || ( !$is_member_page && !in_array( $bp->current_component, $bp->root_components ) ) )
    467467        return true;
    468468
  • trunk/bp-core/js/admin-bar.js

    r1678 r2128  
    33        jQuery(this).addClass('sfhover');
    44    });
    5    
     5
    66    jQuery("#wp-admin-bar ul.main-nav li").mouseout( function() {
    77        jQuery(this).removeClass('sfhover');
  • trunk/bp-friends/bp-friends-templatetags.php

    r2077 r2128  
    194194    }
    195195
    196 function bp_friend_avatar_thumb() {
    197     echo bp_get_friend_avatar_thumb();
    198 }
    199     function bp_get_friend_avatar_thumb() {
    200         global $friends_template;
    201 
    202         return apply_filters( 'bp_get_friend_avatar_thumb', $friends_template->friendship->friend->avatar_thumb );
     196function bp_friend_avatar_thumb( $args = '' ) {
     197    echo bp_get_friend_avatar_thumb( $args );
     198}
     199    function bp_get_friend_avatar_thumb( $args = '' ) {
     200        global $bp, $friends_template;
     201
     202        $defaults = array(
     203            'type' => 'thumb',
     204            'width' => false,
     205            'height' => false,
     206            'class' => 'avatar',
     207            'id' => false,
     208            'alt' => __( 'Group avatar', 'buddypress' )
     209        );
     210
     211        $r = wp_parse_args( $args, $defaults );
     212        extract( $r, EXTR_SKIP );
     213
     214        return apply_filters( 'bp_get_friend_avatar_thumb', bp_core_fetch_avatar( array( 'item_id' => $friends_template->friendship->friend->id, 'type' => $type, 'alt' => $alt, 'width' => $width, 'height' => $height, 'class' => $class ) ) );
    203215    }
    204216
  • trunk/bp-groups.php

    r2114 r2128  
    14701470        return false;
    14711471
    1472     /* If the group is not public, no recording of activity please. */
    1473     if ( 'public' != $bp->groups->current_group->status )
    1474         return false;
     1472    /* If the group is not public, hide the activity sitewide, or basically when not looking at the group feed. */
     1473    if ( 'public' == $bp->groups->current_group->status )
     1474        $hide_sitewide = false;
     1475    else
     1476        $hide_sitewide = true;
    14751477
    14761478    $defaults = array(
     
    14831485        'secondary_item_id' => false,
    14841486        'recorded_time' => time(),
    1485         'hide_sitewide' => false
     1487        'hide_sitewide' => $hide_sitewide
    14861488    );
    14871489
Note: See TracChangeset for help on using the changeset viewer.