| @@ -1,18 +1,10 @@ | ||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | -//new shortcodes first | |
| 4 | -// then versions of bbpress ones with filtering | |
| 3 | +//shortcodes | |
| 5 | 4 | |
| 6 | - | |
| 7 | - | |
| 8 | -//******************** NEW SHORTCODES *************** | |
| 9 | 5 | add_shortcode('list-pg-users', 'list_pg_users'); |
| 10 | -add_shortcode('pg-single-forum', 'pg_single_forum'); | |
| 11 | -add_shortcode('pg-single-topic', 'pg_display_topic'); | |
| 12 | -add_shortcode('pg-single-reply', 'pg_display_reply'); | |
| 13 | 6 | |
| 14 | - | |
| 15 | 7 | function list_pg_users ($attr) { |
| 16 | 8 | global $rpg_groups ; |
| 17 | 9 | $users= get_users() ; |
| 18 | 10 | if ( !empty( $attr['group'] ) ) { |
| @@ -43,245 +35,4 @@ | ||
| 43 | 35 | echo '</ul>' ; |
| 44 | 36 | } |
| 45 | 37 | } |
| 46 | 38 | } |
| 47 | - | |
| 48 | - | |
| 49 | -//*********************** NEW PG VERSIONS OF EXISTING SHORTCODES ***************** | |
| 50 | - | |
| 51 | - | |
| 52 | -/** | |
| 53 | - * Display the contents of a specific forum ID in an output buffer | |
| 54 | - * and return to ensure that post/page contents are displayed first. | |
| 55 | - * | |
| 56 | - * @since bbPress (r3031) | |
| 57 | - * | |
| 58 | - * @param array $attr | |
| 59 | - * @param string $content | |
| 60 | - * @uses get_template_part() | |
| 61 | - * @uses bbp_single_forum_description() | |
| 62 | - * @return string | |
| 63 | - */ | |
| 64 | - function pg_single_forum( $attr, $content = '' ) { | |
| 65 | - | |
| 66 | - // Sanity check required info | |
| 67 | - if ( !empty( $content ) || ( empty( $attr['id'] ) || !is_numeric( $attr['id'] ) ) ) | |
| 68 | - return $content; | |
| 69 | - | |
| 70 | - // Set passed attribute to $forum_id for clarity | |
| 71 | - $forum_id = bbpress()->current_forum_id = $attr['id']; | |
| 72 | - | |
| 73 | - // Bail if ID passed is not a forum | |
| 74 | - if ( !bbp_is_forum( $forum_id ) ) | |
| 75 | - return $content; | |
| 76 | - | |
| 77 | - // Start output buffer | |
| 78 | - pg_start( 'bbp_single_forum' ); | |
| 79 | - | |
| 80 | - //check if pg user cannot view forum | |
| 81 | - if (!private_groups_can_user_view_post_id($forum_id)) { | |
| 82 | - if (!empty($attr['message'])) { | |
| 83 | - echo $attr['message'] ; | |
| 84 | - } | |
| 85 | - return pg_end() ; | |
| 86 | - } | |
| 87 | - | |
| 88 | - | |
| 89 | - // Check forum caps | |
| 90 | - if ( bbp_user_can_view_forum( array( 'forum_id' => $forum_id ) ) ) { | |
| 91 | - bbp_get_template_part( 'content', 'single-forum' ); | |
| 92 | - | |
| 93 | - // Forum is private and user does not have caps | |
| 94 | - } elseif ( bbp_is_forum_private( $forum_id, false ) ) { | |
| 95 | - bbp_get_template_part( 'feedback', 'no-access' ); | |
| 96 | - } | |
| 97 | - | |
| 98 | - // Return contents of output buffer | |
| 99 | - return pg_end(); | |
| 100 | - } | |
| 101 | - | |
| 102 | -/** | |
| 103 | - * Display the contents of a specific topic ID in an output buffer | |
| 104 | - * and return to ensure that post/page contents are displayed first. | |
| 105 | - * | |
| 106 | - * @since bbPress (r3031) | |
| 107 | - * | |
| 108 | - * @param array $attr | |
| 109 | - * @param string $content | |
| 110 | - * @uses get_template_part() | |
| 111 | - * @return string | |
| 112 | - */ | |
| 113 | -function pg_display_topic( $attr, $content = '' ) { | |
| 114 | - | |
| 115 | - // Sanity check required info | |
| 116 | - if ( !empty( $content ) || ( empty( $attr['id'] ) || !is_numeric( $attr['id'] ) ) ) | |
| 117 | - return $content; | |
| 118 | - | |
| 119 | - // Unset globals | |
| 120 | - pg_unset_globals(); | |
| 121 | - | |
| 122 | - // Set passed attribute to $forum_id for clarity | |
| 123 | - $topic_id = bbpress()->current_topic_id = $attr['id']; | |
| 124 | - $forum_id = bbp_get_topic_forum_id( $topic_id ); | |
| 125 | - | |
| 126 | - // Bail if ID passed is not a topic | |
| 127 | - if ( !bbp_is_topic( $topic_id ) ) | |
| 128 | - return $content; | |
| 129 | - | |
| 130 | - // Reset the queries if not in theme compat | |
| 131 | - if ( !bbp_is_theme_compat_active() ) { | |
| 132 | - | |
| 133 | - $bbp = bbpress(); | |
| 134 | - | |
| 135 | - // Reset necessary forum_query attributes for topics loop to function | |
| 136 | - $bbp->forum_query->query_vars['post_type'] = bbp_get_forum_post_type(); | |
| 137 | - $bbp->forum_query->in_the_loop = true; | |
| 138 | - $bbp->forum_query->post = get_post( $forum_id ); | |
| 139 | - | |
| 140 | - // Reset necessary topic_query attributes for topics loop to function | |
| 141 | - $bbp->topic_query->query_vars['post_type'] = bbp_get_topic_post_type(); | |
| 142 | - $bbp->topic_query->in_the_loop = true; | |
| 143 | - $bbp->topic_query->post = get_post( $topic_id ); | |
| 144 | - } | |
| 145 | - | |
| 146 | - // Start output buffer | |
| 147 | - pg_start( 'bbp_single_topic' ); | |
| 148 | - | |
| 149 | - //check if pg user cannot view post | |
| 150 | - $post_id = $attr['id'] ; | |
| 151 | - $post_type = get_post_type( $post_id ) ; | |
| 152 | - $forum_id = private_groups_get_forum_id_from_post_id($post_id, $post_type ); | |
| 153 | - if (!private_groups_can_user_view_post_id($forum_id) || topic_permissions_check ($post_id) == false) { | |
| 154 | - if (!empty($attr['message'])) { | |
| 155 | - echo $attr['message'] ; | |
| 156 | - } | |
| 157 | - return pg_end() ; | |
| 158 | - } | |
| 159 | - | |
| 160 | - // Check forum caps | |
| 161 | - if ( bbp_user_can_view_forum( array( 'forum_id' => $forum_id ) ) ) { | |
| 162 | - bbp_get_template_part( 'content', 'single-topic' ); | |
| 163 | - | |
| 164 | - // Forum is private and user does not have caps | |
| 165 | - } elseif ( bbp_is_forum_private( $forum_id, false ) ) { | |
| 166 | - bbp_get_template_part( 'feedback', 'no-access' ); | |
| 167 | - } | |
| 168 | - | |
| 169 | - // Return contents of output buffer | |
| 170 | - return pg_end(); | |
| 171 | -} | |
| 172 | - | |
| 173 | - | |
| 174 | - | |
| 175 | - | |
| 176 | - /** | |
| 177 | - * Display the contents of a specific reply ID in an output buffer | |
| 178 | - * and return to ensure that post/page contents are displayed first. | |
| 179 | - * | |
| 180 | - * @since bbPress (r3031) | |
| 181 | - * | |
| 182 | - * @param array $attr | |
| 183 | - * @param string $content | |
| 184 | - * @uses get_template_part() | |
| 185 | - * @return string | |
| 186 | - */ | |
| 187 | -function pg_display_reply( $attr, $content = '' ) { | |
| 188 | - | |
| 189 | - // Sanity check required info | |
| 190 | - if ( !empty( $content ) || ( empty( $attr['id'] ) || !is_numeric( $attr['id'] ) ) ) | |
| 191 | - return $content; | |
| 192 | - | |
| 193 | - // Unset globals | |
| 194 | - pg_unset_globals(); | |
| 195 | - | |
| 196 | - // Set passed attribute to $reply_id for clarity | |
| 197 | - $reply_id = bbpress()->current_reply_id = $attr['id']; | |
| 198 | - $forum_id = bbp_get_reply_forum_id( $reply_id ); | |
| 199 | - | |
| 200 | - // Bail if ID passed is not a reply | |
| 201 | - if ( !bbp_is_reply( $reply_id ) ) | |
| 202 | - return $content; | |
| 203 | - | |
| 204 | - // Reset the queries if not in theme compat | |
| 205 | - if ( !bbp_is_theme_compat_active() ) { | |
| 206 | - | |
| 207 | - $bbp = bbpress(); | |
| 208 | - | |
| 209 | - // Reset necessary forum_query attributes for replys loop to function | |
| 210 | - $bbp->forum_query->query_vars['post_type'] = bbp_get_forum_post_type(); | |
| 211 | - $bbp->forum_query->in_the_loop = true; | |
| 212 | - $bbp->forum_query->post = get_post( $forum_id ); | |
| 213 | - | |
| 214 | - // Reset necessary reply_query attributes for replys loop to function | |
| 215 | - $bbp->reply_query->query_vars['post_type'] = bbp_get_reply_post_type(); | |
| 216 | - $bbp->reply_query->in_the_loop = true; | |
| 217 | - $bbp->reply_query->post = get_post( $reply_id ); | |
| 218 | - } | |
| 219 | - | |
| 220 | - // Start output buffer | |
| 221 | - pg_start( 'bbp_single_reply' ); | |
| 222 | - | |
| 223 | - //check if pg user cannot view post | |
| 224 | - $post_type = get_post_type( $reply_id ) ; | |
| 225 | - $forum_id = private_groups_get_forum_id_from_post_id($reply_id, $post_type ); | |
| 226 | - if (!private_groups_can_user_view_post_id($forum_id) || topic_permissions_check ($reply_id) == false) { | |
| 227 | - if (!empty($attr['message'])) { | |
| 228 | - echo $attr['message'] ; | |
| 229 | - } | |
| 230 | - return pg_end() ; | |
| 231 | - } | |
| 232 | - | |
| 233 | - // Check forum caps | |
| 234 | - if ( bbp_user_can_view_forum( array( 'forum_id' => $forum_id ) ) ) { | |
| 235 | - bbp_get_template_part( 'content', 'single-reply' ); | |
| 236 | - | |
| 237 | - // Forum is private and user does not have caps | |
| 238 | - } elseif ( bbp_is_forum_private( $forum_id, false ) ) { | |
| 239 | - bbp_get_template_part( 'feedback', 'no-access' ); | |
| 240 | - } | |
| 241 | - | |
| 242 | - // Return contents of output buffer | |
| 243 | - return pg_end(); | |
| 244 | - } | |
| 245 | - | |
| 246 | -//*********************** START END UNSET PG VERSIONS ***************** | |
| 247 | - | |
| 248 | - function pg_start( $query_name = '' ) { | |
| 249 | - | |
| 250 | - // Set query name | |
| 251 | - bbp_set_query_name( $query_name ); | |
| 252 | - | |
| 253 | - // Start output buffer | |
| 254 | - ob_start(); | |
| 255 | - } | |
| 256 | - | |
| 257 | - function pg_end() { | |
| 258 | - | |
| 259 | - // Unset globals | |
| 260 | - pg_unset_globals(); | |
| 261 | - | |
| 262 | - // Reset the query name | |
| 263 | - bbp_reset_query_name(); | |
| 264 | - | |
| 265 | - // Return and flush the output buffer | |
| 266 | - return ob_get_clean(); | |
| 267 | - } | |
| 268 | - | |
| 269 | - function pg_unset_globals() { | |
| 270 | - $bbp = bbpress(); | |
| 271 | - | |
| 272 | - // Unset global queries | |
| 273 | - $bbp->forum_query = new WP_Query(); | |
| 274 | - $bbp->topic_query = new WP_Query(); | |
| 275 | - $bbp->reply_query = new WP_Query(); | |
| 276 | - $bbp->search_query = new WP_Query(); | |
| 277 | - | |
| 278 | - // Unset global ID's | |
| 279 | - $bbp->current_view_id = 0; | |
| 280 | - $bbp->current_forum_id = 0; | |
| 281 | - $bbp->current_topic_id = 0; | |
| 282 | - $bbp->current_reply_id = 0; | |
| 283 | - $bbp->current_topic_tag_id = 0; | |
| 284 | - | |
| 285 | - // Reset the post data | |
| 286 | - wp_reset_postdata(); | |
| 287 | - } | |