PluginProbe
bbPress / 2.2.1
bbPress v2.2.1
2.6.17 trunk 2.0 2.0-beta-1 2.0-beta-2b 2.0-beta-3 2.0-beta-3b 2.0-rc-2 2.0-rc-3 2.0-rc-4 2.0-rc-5 2.0.1 2.0.2 2.0.3 2.1 2.1-beta-1 2.1-rc1 2.1-rc2 2.1-rc3 2.1-rc4 2.1.1 2.1.2 2.1.3 2.2 2.2.1 All 72 releases
bbpress / includes / extend / buddypress / members.php

members.php in bbPress 2.2.1, at includes/extend/buddypress/members.php

144 lines 3.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * bbPress BuddyPress Members Class
5 *
6 * @package bbPress
7 * @subpackage BuddyPress
8 */
9
10 // Exit if accessed directly
11 if ( !defined( 'ABSPATH' ) ) exit;
12
13 if ( !class_exists( 'BBP_Forums_Members' ) ) :
14 /**
15 * Member profile modifications
16 *
17 * @since bbPress (r4395)
18 *
19 * @package bbPress
20 * @subpackage BuddyPress
21 */
22 class BBP_BuddyPress_Members {
23
24 /**
25 * Main constructor for modifying bbPress profile links
26 *
27 * @since bbPress (r4395)
28 */
29 public function __construct() {
30 $this->setup_actions();
31 $this->setup_filters();
32 }
33
34 /**
35 * Setup the actions
36 *
37 * @since bbPress (r4395)
38 *
39 * @access private
40 * @uses add_filter() To add various filters
41 * @uses add_action() To add various actions
42 */
43 private function setup_actions() {
44
45 /** Favorites *********************************************************/
46
47 // Move handler to 'bp_actions' - BuddyPress bypasses template_loader
48 remove_action( 'template_redirect', 'bbp_favorites_handler', 1 );
49 add_action( 'bp_actions', 'bbp_favorites_handler', 1 );
50
51 /** Subscriptions *****************************************************/
52
53 // Move handler to 'bp_actions' - BuddyPress bypasses template_loader
54 remove_action( 'template_redirect', 'bbp_subscriptions_handler', 1 );
55 add_action( 'bp_actions', 'bbp_subscriptions_handler', 1 );
56 }
57
58 /**
59 * Setup the filters
60 *
61 * @since bbPress (r4395)
62 *
63 * @access private
64 * @uses add_filter() To add various filters
65 * @uses add_action() To add various actions
66 */
67 private function setup_filters() {
68 add_filter( 'bbp_pre_get_user_profile_url', array( $this, 'user_profile_url' ) );
69 add_filter( 'bbp_get_favorites_permalink', array( $this, 'get_favorites_permalink' ), 10, 2 );
70 add_filter( 'bbp_get_subscriptions_permalink', array( $this, 'get_subscriptions_permalink' ), 10, 2 );
71 }
72
73 /** Filters ***************************************************************/
74
75 /**
76 * Override bbPress profile URL with BuddyPress profile URL
77 *
78 * @since bbPress (r3401)
79 * @param string $url
80 * @param int $user_id
81 * @param string $user_nicename
82 * @return string
83 */
84 public function user_profile_url( $user_id ) {
85
86 // Define local variable(s)
87 $profile_url = '';
88
89 // Special handling for forum component
90 if ( bp_is_current_component( 'forums' ) ) {
91
92 // Empty action or 'topics' action
93 if ( !bp_current_action() || bp_is_current_action( 'topics' ) ) {
94 $profile_url = bp_core_get_user_domain( $user_id ) . 'forums/topics';
95
96 // Empty action or 'topics' action
97 } elseif ( bp_is_current_action( 'replies' ) ) {
98 $profile_url = bp_core_get_user_domain( $user_id ) . 'forums/replies';
99
100 // 'favorites' action
101 } elseif ( bbp_is_favorites_active() && bp_is_current_action( 'favorites' ) ) {
102 $profile_url = $this->get_favorites_permalink( '', $user_id );
103
104 // 'subscriptions' action
105 } elseif ( bbp_is_subscriptions_active() && bp_is_current_action( 'subscriptions' ) ) {
106 $profile_url = $this->get_subscriptions_permalink( '', $user_id );
107 }
108
109 // Not in users' forums area
110 } else {
111 $profile_url = bp_core_get_user_domain( $user_id );
112 }
113
114 return trailingslashit( $profile_url );
115 }
116
117 /**
118 * Override bbPress favorites URL with BuddyPress profile URL
119 *
120 * @since bbPress (r3721)
121 * @param string $url
122 * @param int $user_id
123 * @return string
124 */
125 public function get_favorites_permalink( $url, $user_id ) {
126 $url = trailingslashit( bp_core_get_user_domain( $user_id ) . 'forums/favorites' );
127 return $url;
128 }
129
130 /**
131 * Override bbPress subscriptions URL with BuddyPress profile URL
132 *
133 * @since bbPress (r3721)
134 * @param string $url
135 * @param int $user_id
136 * @return string
137 */
138 public function get_subscriptions_permalink( $url, $user_id ) {
139 $url = trailingslashit( bp_core_get_user_domain( $user_id ) . 'forums/subscriptions' );
140 return $url;
141 }
142 }
143 endif;
144