Changeset 6804
- Timestamp:
- 04/22/2018 11:08:01 PM (8 years ago)
- File:
-
- 1 edited
-
trunk/src/includes/extend/buddypress/members.php (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/includes/extend/buddypress/members.php
r6583 r6804 67 67 */ 68 68 private function setup_filters() { 69 add_filter( 'bbp_pre_get_user_profile_url', array( $this, 'user_profile_url' ) ); 70 add_filter( 'bbp_pre_get_user_engagements_url', array( $this, 'get_engagements_permalink' ) ); 71 add_filter( 'bbp_get_favorites_permalink', array( $this, 'get_favorites_permalink' ), 10, 2 ); 72 add_filter( 'bbp_get_subscriptions_permalink', array( $this, 'get_subscriptions_permalink' ), 10, 2 ); 69 add_filter( 'bbp_pre_get_user_profile_url', array( $this, 'get_user_profile_url' ) ); 70 add_filter( 'bbp_pre_get_user_topics_created_url', array( $this, 'get_topics_created_url' ) ); 71 add_filter( 'bbp_pre_get_user_replies_created_url', array( $this, 'get_replies_created_url' ) ); 72 add_filter( 'bbp_pre_get_user_engagements_url', array( $this, 'get_engagements_permalink' ) ); 73 add_filter( 'bbp_pre_get_favorites_permalink', array( $this, 'get_favorites_permalink' ) ); 74 add_filter( 'bbp_pre_get_subscriptions_permalink', array( $this, 'get_subscriptions_permalink' ) ); 73 75 } 74 76 … … 81 83 * @since 2.6.0 bbPress (r6320) Add engagements support 82 84 * 83 * @param string $url 84 * @param int $user_id 85 * @param string $user_nicename 86 * @return string 87 */ 88 public function user_profile_url( $user_id ) { 89 90 // Do not filter if not on BuddyPress root blog 91 if ( ! bp_is_root_blog() ) { 92 return false; 93 } 94 95 // Define local variable(s) 96 $profile_url = ''; 97 $component_slug = bbpress()->extend->buddypress->slug; 98 $profile_url = bp_core_get_user_domain( $user_id ); 99 100 // Special handling for forum component 101 if ( bp_is_current_component( $component_slug ) ) { 102 103 // Empty action or 'topics' action 104 if ( ! bp_current_action() || bp_is_current_action( bbp_get_topic_archive_slug() ) ) { 105 $profile_url = $profile_url . $component_slug . '/' . bbp_get_topic_archive_slug(); 106 107 // Empty action or 'topics' action 108 } elseif ( bp_is_current_action( bbp_get_reply_archive_slug() ) ) { 109 $profile_url = $profile_url . $component_slug . '/' . bbp_get_reply_archive_slug(); 110 111 // 'favorites' action 112 } elseif ( bbp_is_favorites_active() && bp_is_current_action( bbp_get_user_favorites_slug() ) ) { 113 $profile_url = $this->get_favorites_permalink( '', $user_id ); 114 115 // 'subscriptions' action 116 } elseif ( bbp_is_subscriptions_active() && bp_is_current_action( bbp_get_user_subscriptions_slug() ) ) { 117 $profile_url = $this->get_subscriptions_permalink( '', $user_id ); 118 119 // 'engagements' action 120 } elseif ( bbp_is_engagements_active() && bp_is_current_action( bbp_get_user_engagements_slug() ) ) { 121 $profile_url = $this->get_engagements_permalink( $user_id ); 122 } 123 } 124 125 return trailingslashit( $profile_url ); 85 * @param int $user_id 86 * @return string 87 */ 88 public function get_user_profile_url( $user_id = 0 ) { 89 return $this->get_profile_url( $user_id ); 90 } 91 92 /** 93 * Override bbPress topics created URL with BuddyPress profile URL 94 * 95 * @since 2.6.0 bbPress (r3721) 96 * @since 2.6.0 bbPress (r6803) Use private method 97 * 98 * @param int $user_id 99 * @return string 100 */ 101 public function get_topics_created_url( $user_id = 0 ) { 102 return $this->get_profile_url( $user_id, bbp_get_topic_archive_slug() ); 103 } 104 105 /** 106 * Override bbPress replies created URL with BuddyPress profile URL 107 * 108 * @since 2.6.0 bbPress (r3721) 109 * @since 2.6.0 bbPress (r6803) Use private method 110 * 111 * @param int $user_id 112 * @return string 113 */ 114 public function get_replies_created_url( $user_id = 0 ) { 115 return $this->get_profile_url( $user_id, bbp_get_reply_archive_slug() ); 126 116 } 127 117 … … 130 120 * 131 121 * @since 2.1.0 bbPress (r3721) 132 * 133 * @param string $url 134 * @param int $user_id 135 * @return string 136 */ 137 public function get_favorites_permalink( $url, $user_id ) { 138 139 // Do not filter if not on BuddyPress root blog 140 if ( ! bp_is_root_blog() ) { 141 return false; 142 } 143 144 $component_slug = bbpress()->extend->buddypress->slug; 145 $url = trailingslashit( bp_core_get_user_domain( $user_id ) . $component_slug . '/' . bbp_get_user_favorites_slug() ); 146 147 return $url; 122 * @since 2.6.0 bbPress (r6803) Use private method 123 * 124 * @param int $user_id 125 * @return string 126 */ 127 public function get_favorites_permalink( $user_id = 0 ) { 128 return $this->get_profile_url( $user_id, bbp_get_user_favorites_slug() ); 148 129 } 149 130 … … 152 133 * 153 134 * @since 2.1.0 bbPress (r3721) 154 * 155 * @param string $url 156 * @param int $user_id 157 * @return string 158 */ 159 public function get_subscriptions_permalink( $url, $user_id ) { 160 161 // Do not filter if not on BuddyPress root blog 162 if ( ! bp_is_root_blog() ) { 163 return false; 164 } 165 166 $component_slug = bbpress()->extend->buddypress->slug; 167 $url = trailingslashit( bp_core_get_user_domain( $user_id ) . $component_slug . '/' . bbp_get_user_subscriptions_slug() ); 168 169 return $url; 135 * @since 2.6.0 bbPress (r6803) Use private method 136 * 137 * @param int $user_id 138 * @return string 139 */ 140 public function get_subscriptions_permalink( $user_id = 0 ) { 141 return $this->get_profile_url( $user_id, bbp_get_user_subscriptions_slug() ); 170 142 } 171 143 … … 175 147 * @since 2.6.0 bbPress (r6320) 176 148 * 177 * @param string $url 178 * @param int $user_id 179 * @return string 180 */ 181 public function get_engagements_permalink( $user_id ) { 182 183 // Do not filter if not on BuddyPress root blog 184 if ( ! bp_is_root_blog() ) { 185 return false; 186 } 187 188 $component_slug = bbpress()->extend->buddypress->slug; 189 $url = trailingslashit( bp_core_get_user_domain( $user_id ) . $component_slug . '/' . bbp_get_user_engagements_slug() ); 190 191 return $url; 149 * @param int $user_id 150 * @return string 151 */ 152 public function get_engagements_permalink( $user_id = 0 ) { 153 return $this->get_profile_url( $user_id, bbp_get_user_engagements_slug() ); 192 154 } 193 155 … … 197 159 * 198 160 * @since 2.3.0 bbPress (r4615) 199 * @since 2.6.0 bbPress (r6320) Add engagements support161 * @since 2.6.0 bbPress (r6320) Support all profile sections 200 162 * 201 163 * @global WP_Query $wp_query … … 212 174 $wp_query = bbp_get_wp_query(); 213 175 176 // 'topics' action 177 if ( bp_is_current_action( bbp_get_topic_archive_slug() ) ) { 178 $wp_query->bbp_is_single_user_topics = true; 179 180 // 'replies' action 181 } elseif ( bp_is_current_action( bbp_get_reply_archive_slug() ) ) { 182 $wp_query->bbp_is_single_user_replies = true; 183 214 184 // 'favorites' action 215 if ( bbp_is_favorites_active() && bp_is_current_action( bbp_get_user_favorites_slug() ) ) {185 } elseif ( bbp_is_favorites_active() && bp_is_current_action( bbp_get_user_favorites_slug() ) ) { 216 186 $wp_query->bbp_is_single_user_favs = true; 217 187 … … 225 195 } 226 196 } 197 198 /** Private Methods *******************************************************/ 199 200 /** 201 * Private method used to concatenate user IDs and slugs into URLs 202 * 203 * @since 2.6.0 bbPress (r6803) 204 * 205 * @param int $user_id 206 * @param string $slug 207 * 208 * @return string 209 */ 210 private function get_profile_url( $user_id = 0, $slug = '' ) { 211 212 // Do not filter if not on BuddyPress root blog 213 if ( empty( $user_id ) || ! bp_is_root_blog() ) { 214 return false; 215 } 216 217 // Setup profile URL 218 $url = array( 219 bp_core_get_user_domain( $user_id ), 220 bbpress()->extend->buddypress->slug 221 ); 222 223 // Maybe push slug to end of URL array 224 if ( ! empty( $slug ) ) { 225 array_push( $url, $slug ); 226 } 227 228 // Slash it 229 $url = array_map( 'trailingslashit', $url ); 230 231 // Return 232 return implode( '', $url ); 233 } 227 234 } 228 235 endif;
Note: See TracChangeset
for help on using the changeset viewer.