Skip to:
Content

bbPress.org

Changeset 6320


Ignore:
Timestamp:
02/26/2017 07:12:34 PM (10 years ago)
Author:
johnjamesjacoby
Message:

Engagements: First pass at:

  • User profile section
  • Template parts changes
  • Rewrite rules support
  • Repair & upgrade tools
  • BuddyPress support
  • engagement slug setting

See #3068.

Location:
trunk/src
Files:
1 added
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bbpress.php

    r6302 r6320  
    247247
    248248                // Other identifiers
    249                 $this->user_id           = apply_filters( 'bbp_user_id',   'bbp_user'   );
    250                 $this->tops_id           = apply_filters( 'bbp_tops_id',   'bbp_tops'   );
    251                 $this->reps_id           = apply_filters( 'bbp_reps_id',   'bbp_reps'   );
    252                 $this->favs_id           = apply_filters( 'bbp_favs_id',   'bbp_favs'   );
    253                 $this->subs_id           = apply_filters( 'bbp_subs_id',   'bbp_subs'   );
    254                 $this->view_id           = apply_filters( 'bbp_view_id',   'bbp_view'   );
    255                 $this->edit_id           = apply_filters( 'bbp_edit_id',   'edit'       );
    256                 $this->paged_id          = apply_filters( 'bbp_paged_id',  'paged'      );
    257                 $this->search_id         = apply_filters( 'bbp_search_id', 'bbp_search' );
     249                $this->user_id           = apply_filters( 'bbp_user_id',        'bbp_user'        );
     250                $this->tops_id           = apply_filters( 'bbp_tops_id',        'bbp_tops'        );
     251                $this->reps_id           = apply_filters( 'bbp_reps_id',        'bbp_reps'        );
     252                $this->favs_id           = apply_filters( 'bbp_favs_id',        'bbp_favs'        );
     253                $this->subs_id           = apply_filters( 'bbp_subs_id',        'bbp_subs'        );
     254                $this->view_id           = apply_filters( 'bbp_view_id',        'bbp_view'        );
     255                $this->edit_id           = apply_filters( 'bbp_edit_id',        'edit'            );
     256                $this->paged_id          = apply_filters( 'bbp_paged_id',       'paged'           );
     257                $this->search_id         = apply_filters( 'bbp_search_id',      'bbp_search'      );
     258                $this->engagements_id    = apply_filters( 'bbp_engagements_id', 'bbp_engagements' );
    258259
    259260                /** Queries ***********************************************************/
    … …  
    837838                add_rewrite_tag( '%' . bbp_get_user_favorites_rewrite_id()     . '%', '([1]{1,})' ); // User Favorites tag
    838839                add_rewrite_tag( '%' . bbp_get_user_subscriptions_rewrite_id() . '%', '([1]{1,})' ); // User Subscriptions tag
     840                add_rewrite_tag( '%' . bbp_get_user_engagements_rewrite_id()   . '%', '([1]{1,})' ); // User Engagements tag
    839841                add_rewrite_tag( '%' . bbp_get_user_topics_rewrite_id()        . '%', '([1]{1,})' ); // User Topics Tag
    840842                add_rewrite_tag( '%' . bbp_get_user_replies_rewrite_id()       . '%', '([1]{1,})' ); // User Replies Tag
    … …  
    878880                $user_favs_slug     = bbp_get_user_favorites_slug();
    879881                $user_subs_slug     = bbp_get_user_subscriptions_slug();
     882                $user_engs_slug     = bbp_get_user_engagements_slug();
    880883
    881884                // Unique rewrite ID's
    … …  
    890893                $user_tops_id       = bbp_get_user_topics_rewrite_id();
    891894                $user_reps_id       = bbp_get_user_replies_rewrite_id();
     895                $user_engs_id       = bbp_get_user_engagements_rewrite_id();
    892896
    893897                // Rewrite rule matches used repeatedly below
    … …  
    908912                $favs_rule       = '/([^/]+)/' . $user_favs_slug     . '/?$';
    909913                $subs_rule       = '/([^/]+)/' . $user_subs_slug     . '/?$';
     914                $engs_rule       = '/([^/]+)/' . $user_engs_slug     . '/?$';
    910915                $tops_paged_rule = '/([^/]+)/' . $topic_archive_slug . '/' . $paged_slug . '/?([0-9]{1,})/?$';
    911916                $reps_paged_rule = '/([^/]+)/' . $reply_archive_slug . '/' . $paged_slug . '/?([0-9]{1,})/?$';
    912917                $favs_paged_rule = '/([^/]+)/' . $user_favs_slug     . '/' . $paged_slug . '/?([0-9]{1,})/?$';
    913918                $subs_paged_rule = '/([^/]+)/' . $user_subs_slug     . '/' . $paged_slug . '/?([0-9]{1,})/?$';
     919                $engs_paged_rule = '/([^/]+)/' . $user_engs_slug     . '/' . $paged_slug . '/?([0-9]{1,})/?$';
    914920
    915921                // Edit Forum|Topic|Reply|Topic-tag
    … …  
    924930                add_rewrite_rule( $user_slug . $favs_paged_rule, 'index.php?' . $user_id  . '=$matches[1]&' . $user_favs_id . '=1&' . $paged_id . '=$matches[2]', $priority );
    925931                add_rewrite_rule( $user_slug . $subs_paged_rule, 'index.php?' . $user_id  . '=$matches[1]&' . $user_subs_id . '=1&' . $paged_id . '=$matches[2]', $priority );
     932                add_rewrite_rule( $user_slug . $engs_paged_rule, 'index.php?' . $user_id  . '=$matches[1]&' . $user_engs_id . '=1&' . $paged_id . '=$matches[2]', $priority );
    926933                add_rewrite_rule( $user_slug . $tops_rule,       'index.php?' . $user_id  . '=$matches[1]&' . $user_tops_id . '=1',                               $priority );
    927934                add_rewrite_rule( $user_slug . $reps_rule,       'index.php?' . $user_id  . '=$matches[1]&' . $user_reps_id . '=1',                               $priority );
    928935                add_rewrite_rule( $user_slug . $favs_rule,       'index.php?' . $user_id  . '=$matches[1]&' . $user_favs_id . '=1',                               $priority );
    929936                add_rewrite_rule( $user_slug . $subs_rule,       'index.php?' . $user_id  . '=$matches[1]&' . $user_subs_id . '=1',                               $priority );
     937                add_rewrite_rule( $user_slug . $engs_rule,       'index.php?' . $user_id  . '=$matches[1]&' . $user_engs_id . '=1',                               $priority );
    930938                add_rewrite_rule( $user_slug . $edit_rule,       'index.php?' . $user_id  . '=$matches[1]&' . $edit_id      . '=1',                               $priority );
    931939                add_rewrite_rule( $user_slug . $root_rule,       'index.php?' . $user_id  . '=$matches[1]',                                                       $priority );
  • trunk/src/includes/admin/settings.php

    r6277 r6320  
    390390                                'sanitize_callback' => 'bbp_sanitize_slug',
    391391                                'args'              => array( 'label_for'=>'_bbp_user_subs_slug' )
     392                        ),
     393
     394                        // Engagements slug setting
     395                        '_bbp_user_engagements_slug' => array(
     396                                'title'             => __( 'Engagements', 'bbpress' ),
     397                                'callback'          => 'bbp_admin_setting_callback_user_engagements_slug',
     398                                'sanitize_callback' => 'bbp_sanitize_slug',
     399                                'args'              => array( 'label_for'=>'_bbp_user_engagements_slug' )
    392400                        )
    393401                ),
    … …  
    10601068        // Slug Check
    10611069        bbp_form_slug_conflict_check( '_bbp_user_subs_slug', 'subscriptions' );
     1070}
     1071
     1072/**
     1073 * Engagements slug setting field
     1074 *
     1075 * @since 2.6.0 bbPress (r6320)
     1076 *
     1077 * @uses bbp_form_option() To output the option value
     1078 */
     1079function bbp_admin_setting_callback_user_engagements_slug() {
     1080?>
     1081
     1082        <input name="_bbp_user_engagements_slug" id="_bbp_user_engagements_slug" type="text" class="regular-text code" value="<?php bbp_form_option( '_bbp_user_engagements_slug', 'engagements', true ); ?>"<?php bbp_maybe_admin_setting_disabled( '_bbp_user_engagements_slug' ); ?> />
     1083
     1084<?php
     1085        // Slug Check
     1086        bbp_form_slug_conflict_check( '_bbp_user_engagements_slug', 'engagements' );
    10621087}
    10631088
  • trunk/src/includes/admin/tools.php

    r6283 r6320  
    244244                'callback'    => 'bbp_admin_repair_topic_voice_count',
    245245                'priority'    => 65,
    246                 'overhead'    => 'medium',
     246                'overhead'    => 'high',
    247247                'components'  => array( bbp_get_topic_post_type(), bbp_get_user_rewrite_id() )
    248248        ) );
    … …  
    358358        ) );
    359359
     360        // Migrate topic engagements to post-meta
     361        bbp_register_repair_tool( array(
     362                'id'          => 'bbp-user-topic-engagements-move',
     363                'type'        => 'upgrade',
     364                'description' => __( 'Upgrade topic engagements', 'bbpress' ),
     365                'callback'    => 'bbp_admin_upgrade_user_engagements',
     366                'priority'    => 120,
     367                'overhead'    => 'medium',
     368                'components'  => array( bbp_get_user_rewrite_id(), bbp_get_user_engagements_rewrite_id() )
     369        ) );
     370
    360371        // Remove favorites from user-meta
    361372        bbp_register_repair_tool( array(
    … …  
    364375                'description' => __( 'Remove favorites from user-meta', 'bbpress' ),
    365376                'callback'    => 'bbp_admin_upgrade_remove_favorites_from_usermeta',
    366                 'priority'    => 120,
     377                'priority'    => 125,
    367378                'overhead'    => 'medium',
    368379                'components'  => array( bbp_get_user_rewrite_id(), bbp_get_user_favorites_rewrite_id() )
    … …  
    375386                'description' => __( 'Remove topic subscriptions from user-meta', 'bbpress' ),
    376387                'callback'    => 'bbp_admin_upgrade_remove_topic_subscriptions_from_usermeta',
    377                 'priority'    => 125,
     388                'priority'    => 130,
    378389                'overhead'    => 'medium',
    379390                'components'  => array( bbp_get_user_rewrite_id(), bbp_get_user_subscriptions_rewrite_id() )
    … …  
    386397                'description' => __( 'Remove forum subscriptions from user-meta', 'bbpress' ),
    387398                'callback'    => 'bbp_admin_upgrade_remove_forum_subscriptions_from_usermeta',
    388                 'priority'    => 130,
     399                'priority'    => 135,
    389400                'overhead'    => 'medium',
    390401                'components'  => array( bbp_get_user_rewrite_id(), bbp_get_user_subscriptions_rewrite_id() )
  • trunk/src/includes/admin/tools/common.php

    r6282 r6320  
    313313                case bbp_get_user_subscriptions_rewrite_id() :
    314314                        $name = esc_html__( 'Subscriptions', 'bbpress' );
     315                        break;
     316                case bbp_get_user_engagements_rewrite_id() :
     317                        $name = esc_html__( 'Engagements', 'bbpress' );
    315318                        break;
    316319                default :
  • trunk/src/includes/admin/tools/repair.php

    r6282 r6320  
    233233        $result    = __( 'Failed!', 'bbpress' );
    234234
    235         $sql_delete = "DELETE FROM `{$bbp_db->postmeta}` WHERE `meta_key` = '_bbp_voice_count'";
     235        $sql_delete = "DELETE FROM {$bbp_db->postmeta} WHERE meta_key IN ('_bbp_voice_count', '_bbp_engagement')";
    236236        if ( is_wp_error( $bbp_db->query( $sql_delete ) ) ) {
    237237                return array( 1, sprintf( $statement, $result ) );
    … …  
    244244        $cps = bbp_get_closed_status_id();
    245245
    246         $sql = "INSERT INTO `{$bbp_db->postmeta}` (`post_id`, `meta_key`, `meta_value`) (
    247                         SELECT `postmeta`.`meta_value`, '_bbp_voice_count', COUNT(DISTINCT `post_author`) as `meta_value`
    248                                 FROM `{$bbp_db->posts}` AS `posts`
    249                                 LEFT JOIN `{$bbp_db->postmeta}` AS `postmeta`
    250                                         ON `posts`.`ID` = `postmeta`.`post_id`
    251                                         AND `postmeta`.`meta_key` = '_bbp_topic_id'
    252                                 WHERE `posts`.`post_type` IN ( '{$tpt}', '{$rpt}' )
    253                                         AND `posts`.`post_status` IN ( '{$pps}', '{$cps}' )
    254                                         AND `posts`.`post_author` != '0'
    255                                 GROUP BY `postmeta`.`meta_value`)";
    256 
    257         if ( is_wp_error( $bbp_db->query( $sql ) ) ) {
     246        $voice_id_sql = $bbp_db->prepare( "INSERT INTO {$bbp_db->postmeta} (post_id, meta_key, meta_value) (
     247                SELECT postmeta.meta_value, '_bbp_engagement', posts.post_author
     248                        FROM {$bbp_db->posts} AS posts
     249                        LEFT JOIN {$bbp_db->postmeta} AS postmeta
     250                                ON posts.ID = postmeta.post_id
     251                                AND postmeta.meta_key = '_bbp_topic_id'
     252                        WHERE posts.post_type IN (%s, %s)
     253                                AND posts.post_status IN (%s, %s))", $tpt, $rpt, $pps, $cps );
     254
     255        if ( is_wp_error( $bbp_db->query( $voice_id_sql ) ) ) {
    258256                return array( 2, sprintf( $statement, $result ) );
     257        }
     258
     259        $voice_count_sql = "INSERT INTO {$bbp_db->postmeta} (post_id, meta_key, meta_value) (
     260                SELECT post_id, '_bbp_voice_count', COUNT(DISTINCT meta_value)
     261                        FROM {$bbp_db->postmeta}
     262                        WHERE meta_key = '_bbp_engagement'
     263                        GROUP BY post_id ORDER BY post_id)";
     264
     265        if ( is_wp_error( $bbp_db->query( $voice_count_sql ) ) ) {
     266                return array( 3, sprintf( $statement, $result ) );
    259267        }
    260268
    … …  
    695703
    696704        // Query for users with favorites
     705        $key       = $bbp_db->prefix . '_bbp_favorites';
    697706        $users     = $bbp_db->get_results( "SELECT `user_id`, `meta_value` AS `favorites` FROM `{$bbp_db->usermeta}` WHERE `meta_key` = '{$key}'" );
    698707
  • trunk/src/includes/admin/tools/upgrades.php

    r6282 r6320  
    156156
    157157/**
     158 * Upgrade user engagements for bbPress 2.6 and higher
     159 *
     160 * @since 2.6.0 bbPress (r63010)
     161 *
     162 * @return array An array of the status code and the message
     163 */
     164function bbp_admin_upgrade_user_engagements() {
     165
     166        // Define variables
     167        $bbp_db    = bbp_db();
     168        $statement = __( 'Upgrading user engagements &hellip; %s', 'bbpress' );
     169        $result    = __( 'No engagements to upgrade.',             'bbpress' );
     170        $total     = 0;
     171
     172        // Delete previous engagements
     173        $sql_delete = "DELETE FROM {$bbp_db->postmeta} WHERE meta_key = '_bbp_engagement'";
     174        if ( is_wp_error( $bbp_db->query( $sql_delete ) ) ) {
     175                return array( 1, sprintf( $statement, $result ) );
     176        }
     177
     178        // Post types and status
     179        $tpt = bbp_get_topic_post_type();
     180        $rpt = bbp_get_reply_post_type();
     181        $pps = bbp_get_public_status_id();
     182        $cps = bbp_get_closed_status_id();
     183        $sql = $bbp_db->prepare( "SELECT postmeta.meta_value, '_bbp_engagement', posts.post_author
     184                        FROM {$bbp_db->posts} AS posts
     185                        LEFT JOIN {$bbp_db->postmeta} AS postmeta
     186                                ON posts.ID = postmeta.post_id
     187                                AND postmeta.meta_key = '_bbp_topic_id'
     188                        WHERE posts.post_type IN (%s, %s)
     189                                AND posts.post_status IN (%s, %s)", $tpt, $rpt, $pps, $cps );
     190
     191        $engagements = $bbp_db->get_results( $sql );
     192
     193        // Bail if no closed topics found
     194        if ( empty( $engagements ) || is_wp_error( $engagements ) ) {
     195                return array( 1, sprintf( $statement, $result ) );
     196        }
     197
     198        // Loop through each user's favorites
     199        foreach ( $engagements as $meta ) {
     200
     201                // Skip if already exists
     202                if ( $bbp_db->get_var( $bbp_db->prepare( "SELECT * FROM {$bbp_db->postmeta} WHERE post_id = %d AND meta_key = %s AND meta_value = %d LIMIT 1", $meta->meta_value, '_bbp_engagement', $meta->post_author ) ) ) {
     203                        continue;
     204                }
     205
     206                // Add the post meta
     207                $added = add_post_meta( $meta->meta_value, '_bbp_engagement', $meta->post_author, false );
     208
     209                // Bump counts if successfully added
     210                if ( ! empty( $added ) ) {
     211                        ++$total;
     212                }
     213        }
     214
     215        // Cleanup
     216        unset( $engagements, $added );
     217
     218        // Complete results
     219        $result = sprintf( _n( 'Complete! %d engagements upgraded.', 'Complete! %d engagements upgraded.', $total, 'bbpress' ), $total );
     220
     221        return array( 0, sprintf( $statement, $result ) );
     222}
     223
     224/**
    158225 * Upgrade user favorites for bbPress 2.6 and higher
    159226 *
  • trunk/src/includes/common/template.php

    r6299 r6320  
    615615
    616616/**
    617  * Check if current page shows the topics created by a bbPress user (profile
     617 * Check if current page shows the replies created by a bbPress user (profile
    618618 * page)
    619619 *
    620620 * @since 2.2.0 bbPress (r4225)
    621621 *
    622  * @return bool True if it's the topics created page, false if not
     622 * @return bool True if it's the replies created page, false if not
    623623 */
    624624function bbp_is_replies_created() {
    … …  
    792792
    793793        return (bool) apply_filters( 'bbp_is_single_user_replies', $retval );
     794}
     795
     796/**
     797 * Check if current page is a user engagements page
     798 *
     799 * @since 2.6.0 bbPress (r6320)
     800 *
     801 * @uses WP_Query Checks if WP_Query::bbp_is_single_user_engagements is set to true
     802 * @return bool True if it's a user's replies page, false if not
     803 */
     804function bbp_is_single_user_engagements() {
     805        global $wp_query;
     806
     807        // Assume false
     808        $retval = false;
     809
     810        // Check query
     811        if ( ! empty( $wp_query->bbp_is_single_user_engagements ) && ( true === $wp_query->bbp_is_single_user_engagements ) ) {
     812                $retval = true;
     813        }
     814
     815        return (bool) apply_filters( 'bbp_is_single_user_engagements', $retval );
    794816}
    795817
  • trunk/src/includes/core/functions.php

    r6014 r6320  
    540540
    541541/**
    542  * Return the unique ID for user caps rewrite rules
     542 * Return the unique ID for user favorites rewrite rules
    543543 *
    544544 * @since 2.2.0 bbPress (r4181)
    … …  
    551551
    552552/**
    553  * Return the unique ID for user caps rewrite rules
     553 * Return the unique ID for user subscriptions rewrite rules
    554554 *
    555555 * @since 2.2.0 bbPress (r4181)
    … …  
    559559function bbp_get_user_subscriptions_rewrite_id() {
    560560        return bbpress()->subs_id;
     561}
     562
     563/**
     564 * Return the unique ID for user engagement rewrite rules
     565 *
     566 * @since 2.6.0 bbPress (r6320)
     567 *
     568 * @return string
     569 */
     570function bbp_get_user_engagements_rewrite_id() {
     571        return bbpress()->engagements_id;
    561572}
    562573
  • trunk/src/includes/core/options.php

    r6270 r6320  
    627627
    628628/**
     629 * Return the single user engagements slug
     630 *
     631 * @since 2.6.0 bbPress (r6320)
     632 *
     633 * @return string
     634 */
     635function bbp_get_user_engagements_slug( $default = 'engagements' ) {
     636        return apply_filters( 'bbp_get_user_engagements_slug', get_option( '_bbp_user_engagements_slug', $default ) );
     637}
     638
     639/**
    629640 * Return the topic view slug
    630641 *
  • trunk/src/includes/core/template-functions.php

    r6241 r6320  
    537537                /** User Exists *******************************************************/
    538538
    539                 $is_favs    = $posts_query->get( bbp_get_user_favorites_rewrite_id()     );
    540                 $is_subs    = $posts_query->get( bbp_get_user_subscriptions_rewrite_id() );
    541                 $is_topics  = $posts_query->get( bbp_get_user_topics_rewrite_id()        );
    542                 $is_replies = $posts_query->get( bbp_get_user_replies_rewrite_id()       );
     539                $is_favs        = $posts_query->get( bbp_get_user_favorites_rewrite_id()     );
     540                $is_subs        = $posts_query->get( bbp_get_user_subscriptions_rewrite_id() );
     541                $is_topics      = $posts_query->get( bbp_get_user_topics_rewrite_id()        );
     542                $is_replies     = $posts_query->get( bbp_get_user_replies_rewrite_id()       );
     543                $is_engagements = $posts_query->get( bbp_get_user_engagements_rewrite_id()   );
    543544
    544545                // View or edit?
    … …  
    581582                } elseif ( ! empty( $is_replies ) ) {
    582583                        $posts_query->bbp_is_single_user_replies = true;
     584
     585                // User engagements
     586                } elseif ( ! empty( $is_engagements ) ) {
     587                        $posts_query->bbp_is_single_user_engagements = true;
    583588
    584589                // User profile
  • trunk/src/includes/core/update.php

    r6292 r6320  
    327327                                bbp_admin_upgrade_user_topic_subscriptions();
    328328                                bbp_admin_upgrade_user_forum_subscriptions();
     329                                bbp_admin_repair_topic_voice_count();
    329330                        }
    330331                }
  • trunk/src/includes/extend/buddypress/functions.php

    r6285 r6320  
    176176
    177177/**
     178 * Hook bbPress engagements template into plugins template
     179 *
     180 * @since 2.6.0 bbPress (r6320)
     181 *
     182 * @uses add_action() To add the content hook
     183 * @uses bp_core_load_template() To load the plugins template
     184 */
     185function bbp_member_forums_screen_engagements() {
     186        add_action( 'bp_template_content', 'bbp_member_forums_engagements_content' );
     187        bp_core_load_template( apply_filters( 'bbp_member_forums_screen_engagements', 'members/single/plugins' ) );
     188}
     189
     190/**
    178191 * Hook bbPress favorites template into plugins template
    179192 *
    … …  
    235248
    236249                <?php bbp_get_template_part( 'user', 'replies-created' ); ?>
     250
     251        </div>
     252
     253<?php
     254}
     255
     256/**
     257 * Get the topic engagements template part
     258 *
     259 * @since 2.6.0 bbPress (r6320)
     260 *
     261 * @uses bbp_get_template_part()
     262 */
     263function bbp_member_forums_engagements_content() {
     264?>
     265
     266        <div id="bbpress-forums" class="bbpress-wrapper">
     267
     268                <?php bbp_get_template_part( 'user', 'engagements' ); ?>
    237269
    238270        </div>
  • trunk/src/includes/extend/buddypress/loader.php

    r6284 r6320  
    219219                );
    220220
     221                // Engagements
     222                $sub_nav[] = array(
     223                        'name'            => __( 'Engagements', 'bbpress' ),
     224                        'slug'            => bbp_get_user_engagements_slug(),
     225                        'parent_url'      => $forums_link,
     226                        'parent_slug'     => $this->slug,
     227                        'screen_function' => 'bbp_member_forums_screen_engagements',
     228                        'position'        => 60,
     229                        'item_css_id'     => 'engagements'
     230                );
     231
    221232                // Favorite topics
    222233                if ( bbp_is_favorites_active() ){
    … …  
    227238                                'parent_slug'     => $this->slug,
    228239                                'screen_function' => 'bbp_member_forums_screen_favorites',
    229                                 'position'        => 60,
     240                                'position'        => 80,
    230241                                'item_css_id'     => 'favorites'
    231242                        );
    … …  
    240251                                'parent_slug'     => $this->slug,
    241252                                'screen_function' => 'bbp_member_forums_screen_subscriptions',
    242                                 'position'        => 60,
     253                                'position'        => 100,
    243254                                'item_css_id'     => 'subscriptions'
    244255                        );
  • trunk/src/includes/topics/template.php

    r6309 r6320  
    359359                        if ( bbp_is_single_user_topics() ) {
    360360                                $base = bbp_get_user_topics_created_url( bbp_get_displayed_user_id() );
     361
     362                        // User's engagements
     363                        } elseif ( bbp_is_single_user_engagements() ) {
     364                                $base = bbp_get_user_engagements_url( bbp_get_displayed_user_id() );
    361365
    362366                        // User's favorites
  • trunk/src/includes/users/functions.php

    r6311 r6320  
    267267 * Get the users who have engaged in a topic
    268268 *
    269  * @since 2.6.0 bbPress (r6310)
     269 * @since 2.6.0 bbPress (r6320)
    270270 *
    271271 * @param int $topic_id Optional. Topic id
    … …  
    285285 * Get a user's topic engagements
    286286 *
    287  * @since 2.6.0 bbPress (r6310)
     287 * @since 2.6.0 bbPress (r6320)
    288288 *
    289289 * @param int $user_id Optional. User id
    … …  
    311311 * Get a user's engaged topic ids
    312312 *
    313  * @since 2.6.0 bbPress (r6310)
     313 * @since 2.6.0 bbPress (r6320)
    314314 *
    315315 * @param int $user_id Optional. User id
    … …  
    340340 * Check if a user is engaged in a topic or not
    341341 *
    342  * @since 2.6.0 bbPress (r6310)
     342 * @since 2.6.0 bbPress (r6320)
    343343 *
    344344 * @param int $user_id Optional. User id
    … …  
    386386 * Add a topic to user's engagements
    387387 *
    388  * @since 2.6.0 bbPress (r6310)
     388 * @since 2.6.0 bbPress (r6320)
    389389 *
    390390 * @param int $user_id Optional. User id
    … …  
    425425 * Remove a topic from user's engagements
    426426 *
    427  * @since 2.6.0 bbPress (r6310)
     427 * @since 2.6.0 bbPress (r6320)
    428428 *
    429429 * @param int $user_id Optional. User id
  • trunk/src/includes/users/template.php

    r6319 r6320  
    10371037                        $paged = (bool) bbpress()->forum_query->in_the_loop;
    10381038                }
    1039                
     1039
    10401040                // Pretty permalinks
    10411041                if ( bbp_use_pretty_urls() ) {
    … …  
    14781478 *
    14791479 * @param int $user_id Optional. User id
    1480  * @uses bbp_get_favorites_permalink() To get the favorites permalink
     1480 * @uses bbp_get_user_topics_created_url() To get the favorites permalink
    14811481 */
    14821482function bbp_user_topics_created_url( $user_id = 0 ) {
    … …  
    14901490         * @param int $user_id Optional. User id
    14911491         * @uses bbp_get_user_profile_url() To get the user profile url
    1492          * @uses apply_filters() Calls 'bbp_get_favorites_permalink' with the
     1492         * @uses apply_filters() Calls 'bbp_get_user_topics_created_url' with the
    14931493         *                        user profile url and user id
    14941494         * @return string Permanent link to user profile page
    … …  
    15261526        }
    15271527
    1528 /** Topics Created ************************************************************/
     1528/** Replies Created ************************************************************/
    15291529
    15301530/**
    … …  
    15341534 *
    15351535 * @param int $user_id Optional. User id
    1536  * @uses bbp_get_favorites_permalink() To get the favorites permalink
     1536 * @uses bbp_get_user_replies_created_url() To get the favorites permalink
    15371537 */
    15381538function bbp_user_replies_created_url( $user_id = 0 ) {
    … …  
    15461546         * @param int $user_id Optional. User id
    15471547         * @uses bbp_get_user_profile_url() To get the user profile url
    1548          * @uses apply_filters() Calls 'bbp_get_favorites_permalink' with the
     1548         * @uses apply_filters() Calls 'bbp_get_user_replies_created_url' with the
    15491549         *                        user profile url and user id
    15501550         * @return string Permanent link to user profile page
    … …  
    15801580
    15811581                return apply_filters( 'bbp_get_user_replies_created_url', $url, $user_id );
     1582        }
     1583
     1584/** Engagements ***************************************************************/
     1585
     1586/**
     1587 * Output the link to the user's engagements
     1588 *
     1589 * @since 2.6.0 bbPress (r6320)
     1590 *
     1591 * @param int $user_id Optional. User id
     1592 * @uses bbp_get_user_engagements_url() To get the engagements permalink
     1593 */
     1594function bbp_user_engagements_url( $user_id = 0 ) {
     1595        echo esc_url( bbp_get_user_engagements_url( $user_id ) );
     1596}
     1597        /**
     1598         * Return the link to the user's engagements
     1599         *
     1600         * @since 2.6.0 bbPress (r6320)
     1601         *
     1602         * @param int $user_id Optional. User id
     1603         * @uses bbp_get_user_profile_url() To get the user profile url
     1604         * @uses apply_filters() Calls 'bbp_get_user_engagements_url' with the
     1605         *                        user profile url and user id
     1606         * @return string Permanent link to user profile page
     1607         */
     1608        function bbp_get_user_engagements_url( $user_id = 0 ) {
     1609
     1610                // Use displayed user ID if there is one, and one isn't requested
     1611                $user_id = bbp_get_user_id( $user_id );
     1612                if ( empty( $user_id ) ) {
     1613                        return false;
     1614                }
     1615
     1616                // Allow early overriding of the profile URL to cut down on processing
     1617                $early_url = apply_filters( 'bbp_pre_get_user_engagements_url', $user_id );
     1618                if ( is_string( $early_url ) ) {
     1619                        return $early_url;
     1620                }
     1621
     1622                // Get user profile URL
     1623                $profile_url = bbp_get_user_profile_url( $user_id );
     1624
     1625                // Pretty permalinks
     1626                if ( bbp_use_pretty_urls() ) {
     1627                        $url = trailingslashit( $profile_url ) . bbp_get_user_engagements_slug();
     1628                        $url = user_trailingslashit( $url );
     1629
     1630                // Unpretty permalinks
     1631                } else {
     1632                        $url = add_query_arg( array(
     1633                                bbp_get_user_engagements_rewrite_id() => '1',
     1634                        ), $profile_url );
     1635                }
     1636
     1637                return apply_filters( 'bbp_get_user_engagements_url', $url, $user_id );
    15821638        }
    15831639
  • trunk/src/templates/default/bbpress/content-single-user.php

    r6258 r6320  
    2424
    2525                <div id="bbp-user-body">
    26                         <?php if ( bbp_is_favorites()           ) bbp_get_template_part( 'user', 'favorites'       ); ?>
    27                         <?php if ( bbp_is_subscriptions()       ) bbp_get_template_part( 'user', 'subscriptions'   ); ?>
    28                         <?php if ( bbp_is_single_user_topics()  ) bbp_get_template_part( 'user', 'topics-created'  ); ?>
    29                         <?php if ( bbp_is_single_user_replies() ) bbp_get_template_part( 'user', 'replies-created' ); ?>
    30                         <?php if ( bbp_is_single_user_edit()    ) bbp_get_template_part( 'form', 'user-edit'       ); ?>
    31                         <?php if ( bbp_is_single_user_profile() ) bbp_get_template_part( 'user', 'profile'         ); ?>
     26                        <?php if ( bbp_is_favorites()               ) bbp_get_template_part( 'user', 'favorites'       ); ?>
     27                        <?php if ( bbp_is_subscriptions()           ) bbp_get_template_part( 'user', 'subscriptions'   ); ?>
     28                        <?php if ( bbp_is_single_user_engagements() ) bbp_get_template_part( 'user', 'engagements'     ); ?>
     29                        <?php if ( bbp_is_single_user_topics()      ) bbp_get_template_part( 'user', 'topics-created'  ); ?>
     30                        <?php if ( bbp_is_single_user_replies()     ) bbp_get_template_part( 'user', 'replies-created' ); ?>
     31                        <?php if ( bbp_is_single_user_edit()        ) bbp_get_template_part( 'form', 'user-edit'       ); ?>
     32                        <?php if ( bbp_is_single_user_profile()     ) bbp_get_template_part( 'user', 'profile'         ); ?>
    3233                </div>
    3334        </div>
  • trunk/src/templates/default/bbpress/user-details.php

    r6258 r6320  
    4444                        </li>
    4545
     46                        <li class="<?php if ( bbp_is_single_user_engagements() ) :?>current<?php endif; ?>">
     47                                <span class='bbp-user-engagements-created-link'>
     48                                        <a href="<?php bbp_user_engagements_url(); ?>" title="<?php printf( esc_attr__( "%s's Engagements", 'bbpress' ), bbp_get_displayed_user_field( 'display_name' ) ); ?>"><?php esc_html_e( 'Engagements', 'bbpress' ); ?></a>
     49                                </span>
     50                        </li>
     51
    4652                        <?php if ( bbp_is_favorites_active() ) : ?>
    4753                                <li class="<?php if ( bbp_is_favorites() ) :?>current<?php endif; ?>">
Note: See TracChangeset for help on using the changeset viewer.