Skip to:
Content

bbPress.org

Changeset 6334


Ignore:
Timestamp:
03/01/2017 02:17:21 AM (8 years ago)
Author:
johnjamesjacoby
Message:

Engagements: Integrate the user_query into favorites, subscriptions, and engagements.

  • Add to admin metabox avatar loops
  • Fix a few bugs in BBP_User_Query, and include a custom constructor to set the loop counter

See #3068.

Location:
trunk/src/includes
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/includes/admin/metaboxes.php

    r6273 r6334  
    669669
    670670/**
     671 * See who engaged with a topic
     672 *
     673 * @since 2.6.0 bbPress (r6333)
     674 */
     675function bbp_topic_engagements_metabox( $post ) {
     676
     677    // Get user IDs
     678    $user_ids = bbp_get_topic_engagements( $post->ID );
     679
     680    // Output
     681    ?><p><?php
     682
     683        // Relationships
     684        $args = array(
     685            'include' => $user_ids
     686        );
     687
     688        // Users were found
     689        if ( ! empty( $user_ids ) && bbp_has_users( $args ) ) :
     690
     691            while ( bbp_users() ) : bbp_the_user();
     692                echo get_avatar( bbp_get_user_id(), 32 );
     693            endwhile;
     694
     695        // No users
     696        else :
     697            esc_html_e( 'No users have engaged to this topic.', 'bbpress' );
     698        endif;
     699
     700    ?></p><?php
     701
     702    do_action( 'bbp_topic_engagements_metabox', $post );
     703}
     704
     705/**
    671706 * See who marked a topic as a favorite
    672707 *
    673708 * @since 2.6.0 bbPress (r6197)
     709 * @since 2.6.0 bbPress (r6333) Updated to use BBP_User_Query
    674710 */
    675711function bbp_topic_favorites_metabox( $post ) {
     
    681717    ?><p><?php
    682718
     719        // Relationships
     720        $args = array(
     721            'include' => $user_ids
     722        );
     723
    683724        // Users were found
    684         if ( ! empty( $user_ids ) ) :
    685 
    686             foreach ( $user_ids as $user_id ) :
    687                 echo get_avatar( $user_id, 32 );
    688             endforeach;
     725        if ( ! empty( $user_ids ) && bbp_has_users( $args ) ) :
     726
     727            while ( bbp_users() ) : bbp_the_user();
     728                echo get_avatar( bbp_get_user_id(), 32 );
     729            endwhile;
    689730
    690731        // No users
     
    702743 *
    703744 * @since 2.6.0 bbPress (r6197)
     745 * @since 2.6.0 bbPress (r6333) Updated to use BBP_User_Query
    704746 */
    705747function bbp_topic_subscriptions_metabox( $post ) {
     
    711753    ?><p><?php
    712754
     755        // Relationships
     756        $args = array(
     757            'include' => $user_ids
     758        );
     759
    713760        // Users were found
    714         if ( ! empty( $user_ids ) ) :
    715 
    716             foreach ( $user_ids as $user_id ) :
    717                 echo get_avatar( $user_id, 32 );
    718             endforeach;
     761        if ( ! empty( $user_ids ) && bbp_has_users( $args ) ) :
     762
     763            while ( bbp_users() ) : bbp_the_user();
     764                echo get_avatar( bbp_get_user_id(), 32 );
     765            endwhile;
    719766
    720767        // No users
     
    732779 *
    733780 * @since 2.6.0 bbPress (r6197)
     781 * @since 2.6.0 bbPress (r6333) Updated to use BBP_User_Query
    734782 */
    735783function bbp_forum_subscriptions_metabox( $post ) {
     
    741789    ?><p><?php
    742790
     791        // Relationships
     792        $args = array(
     793            'include' => $user_ids
     794        );
     795
    743796        // Users were found
    744         if ( ! empty( $user_ids ) ) :
    745 
    746             foreach ( $user_ids as $user_id ) :
    747                 echo get_avatar( $user_id, 32 );
    748             endforeach;
     797        if ( ! empty( $user_ids ) && bbp_has_users( $args ) ) :
     798
     799            while ( bbp_users() ) : bbp_the_user();
     800                echo get_avatar( bbp_get_user_id(), 32 );
     801            endwhile;
    749802
    750803        // No users
  • trunk/src/includes/admin/topics.php

    r6312 r6334  
    8181        add_action( 'add_meta_boxes', array( $this, 'author_metabox'        ) );
    8282        add_action( 'add_meta_boxes', array( $this, 'replies_metabox'       ) );
     83        add_action( 'add_meta_boxes', array( $this, 'engagements_metabox'   ) );
    8384        add_action( 'add_meta_boxes', array( $this, 'favorites_metabox'     ) );
    8485        add_action( 'add_meta_boxes', array( $this, 'subscriptions_metabox' ) );
     
    408409            'normal',
    409410            'high'
     411        );
     412    }
     413
     414    /**
     415     * Add the engagements meta-box
     416     *
     417     * Allows viewing of users who have engaged in a topic.
     418     *
     419     * @since 2.6.0 bbPress (r6333)
     420     *
     421     * @uses add_meta_box() To add the meta-box
     422     */
     423    public function engagements_metabox() {
     424
     425        // Bail when creating a new topic
     426        if ( empty( $_GET['action'] ) || ( 'edit' !== $_GET['action'] ) ) {
     427            return;
     428        }
     429
     430        // Bail if no engagements
     431        if ( ! bbp_is_engagements_active() ) {
     432            return;
     433        }
     434
     435        // Add the meta-box
     436        add_meta_box(
     437            'bbp_topic_engagements_metabox',
     438            __( 'Engagements', 'bbpress' ),
     439            'bbp_topic_engagements_metabox',
     440            $this->post_type,
     441            'side',
     442            'low'
    410443        );
    411444    }
  • trunk/src/includes/users/template.php

    r6332 r6334  
    5757
    5858    /**
    59      * Set up the next user and iterate current user index.
     59     * PHP5 constructor.
    6060     *
    6161     * @since 2.6.0 bbPress (r6330)
    6262     * @access public
    6363     *
     64     * @param null|string|array $query Optional. The query variables.
     65     */
     66    public function __construct( $query = null ) {
     67        if ( ! empty( $query ) ) {
     68            parent::__construct( $query );
     69            $this->user_count = count( $this->results );
     70        }
     71    }
     72
     73    /**
     74     * Set up the next user and iterate current user index.
     75     *
     76     * @since 2.6.0 bbPress (r6330)
     77     * @access public
     78     *
    6479     * @return WP_User Next user.
    6580     */
    6681    public function next_user() {
    67 
    6882        $this->current_user++;
    69 
    70         $this->user = $this->users[ $this->current_user ];
     83        $this->user = $this->results[ $this->current_user ];
    7184
    7285        return $this->user;
     
    89102        // loop has just started
    90103        if ( $this->current_user === -1 ) {
     104
    91105            /**
    92106             * Fires once the loop is started.
    93107             *
    94              * @since 2.6.0 bbPress
     108             * @since 2.6.0 bbPress (r6330)
    95109             *
    96110             * @param WP_Query &$this The WP_Query instance (passed by reference).
     
    99113        }
    100114
    101         $this->user = $this->next_user();
     115        $this->next_user();
    102116    }
    103117
     
    120134             * Fires once the loop has ended.
    121135             *
    122              * @since 2.0.0
     136             * @since 2.6.0 bbPress (r6330)
    123137             *
    124138             * @param WP_Query &$this The WP_Query instance (passed by reference).
     
    145159
    146160        if ( $this->user_count > 0 ) {
    147             $this->user = $this->users[ 0 ];
     161            $this->user = $this->results[ 0 ];
    148162        }
    149163    }
     
    190204 */
    191205function bbp_users() {
    192     return bbpress()->user_query->have_users();;
     206    return bbpress()->user_query->have_users();
    193207}
    194208
     
    238252        if ( ! empty( $user_id ) && is_numeric( $user_id ) ) {
    239253            $bbp_user_id = $user_id;
     254
     255        // Currently inside a user loop
     256        } elseif ( ! empty( $bbp->user_query->in_the_loop ) && isset( $bbp->user_query->user->ID ) ) {
     257            $bbp_user_id = $bbp->user_query->user->ID;
    240258
    241259        // Currently viewing or editing a user
Note: See TracChangeset for help on using the changeset viewer.