Changeset 2769
- Timestamp:
- 01/07/2011 09:20:44 PM (14 years ago)
- Location:
- branches/plugin
- Files:
-
- 1 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/plugin/bbp-includes/bbp-functions.php
r2768 r2769 91 91 $args = array( $forums, $depth, $r, $current ); 92 92 return call_user_func_array( array( &$walker, 'walk' ), $args ); 93 } 94 95 /** 96 * Get the forum statistics 97 * 98 * @since bbPress (r2769) 99 * 100 * @param mixed $args Optional. The function supports these arguments (all 101 * default to true): 102 * - count_users: Count users? 103 * - count_forums: Count forums? 104 * - count_topics: Count topics? If set to false, private, spammed and trashed 105 * topics are also not counted. 106 * - count_private_topics: Count private topics? (only counted if the current 107 * user has read_private_topics cap) 108 * - count_spammed_topics: Count spammed topics? (only counted if the current 109 * user has edit_others_topics cap) 110 * - count_trashed_topics: Count trashed topics? (only counted if the current 111 * user has view_trash cap) 112 * - count_replies: Count replies? If set to false, private, spammed and 113 * trashed replies are also not counted. 114 * - count_private_replies: Count private replies? (only counted if the current 115 * user has read_private_replies cap) 116 * - count_spammed_replies: Count spammed replies? (only counted if the current 117 * user has edit_others_replies cap) 118 * - count_trashed_replies: Count trashed replies? (only counted if the current 119 * user has view_trash cap) 120 * - count_tags: Count tags? If set to false, empty tags are also not counted 121 * - count_empty_tags: Count empty tags? 122 * @uses bbp_count_users() To count the number of registered users 123 * @uses wp_count_posts() To count the number of forums, topics and replies 124 * @uses wp_count_terms() To count the number of topic tags 125 * @uses current_user_can() To check if the user is capable of doing things 126 * @uses number_format_i18n() To format the number 127 * @uses apply_filters() Calls 'bbp_get_statistics' with the statistics and args 128 * @return object Walked forum tree 129 */ 130 function bbp_get_statistics( $args = '' ) { 131 global $bbp; 132 133 $defaults = array ( 134 'count_users' => true, 135 'count_forums' => true, 136 'count_topics' => true, 137 'count_private_topics' => true, 138 'count_spammed_topics' => true, 139 'count_trashed_topics' => true, 140 'count_replies' => true, 141 'count_private_replies' => true, 142 'count_spammed_replies' => true, 143 'count_trashed_replies' => true, 144 'count_tags' => true, 145 'count_empty_tags' => true 146 ); 147 148 $r = wp_parse_args( $args, $defaults ); 149 extract( $r ); 150 151 // Users 152 if ( !empty( $count_users ) ) 153 $user_count = bbp_get_total_users(); 154 155 // Forums 156 if ( !empty( $count_forums ) ) { 157 $forum_count = wp_count_posts( $bbp->forum_id ); 158 $forum_count = $forum_count->publish; 159 } 160 161 // Topics 162 if ( !empty( $count_topics ) ) { 163 164 $all_topics = wp_count_posts( $bbp->topic_id ); 165 166 // Published (publish + closed) 167 $topic_count = $all_topics->publish + $all_topics->{$bbp->closed_status_id}; 168 169 if ( current_user_can( 'read_private_topics' ) || current_user_can( 'edit_others_topics' ) || current_user_can( 'view_trash' ) ) { 170 171 // Private 172 $private_topics = ( !empty( $count_private_topics ) && current_user_can( 'read_private_topics' ) ) ? (int) $all_topics->private : 0; 173 174 // Spam 175 $spammed_topics = ( !empty( $count_spammed_topics ) && current_user_can( 'edit_others_topics' ) ) ? (int) $all_topics->{$bbp->spam_status_id} : 0; 176 177 // Trash 178 $trashed_topics = ( !empty( $count_trashed_topics ) && current_user_can( 'view_trash' ) ) ? (int) $all_topics->{$bbp->trash_status_id} : 0; 179 180 // Total hidden (private + spam + trash) 181 $hidden_topic_count = $private_topics + $spammed_topics + $trashed_topics; 182 183 // Generate the hidden topic count's title attribute 184 $hidden_topic_title = !empty( $private_topics ) ? sprintf( __( 'Private: %s | ', 'bbpress' ), number_format_i18n( $private_topics ) ) : ''; 185 $hidden_topic_title .= !empty( $spammed_topics ) ? sprintf( __( 'Spammed: %s | ', 'bbpress' ), number_format_i18n( $spammed_topics ) ) : ''; 186 $hidden_topic_title .= !empty( $trashed_topics ) ? sprintf( __( 'Trashed: %s', 'bbpress' ), number_format_i18n( $trashed_topics ) ) : ''; 187 188 } 189 190 } 191 192 // Replies 193 if ( !empty( $count_replies ) ) { 194 195 $all_replies = wp_count_posts( $bbp->reply_id ); 196 197 // Published 198 $reply_count = $all_replies->publish; 199 200 if ( current_user_can( 'read_private_replies' ) || current_user_can( 'edit_others_replies' ) || current_user_can( 'view_trash' ) ) { 201 202 // Private 203 $private_replies = ( !empty( $count_private_replies ) && current_user_can( 'read_private_replies' ) ) ? (int) $all_replies->private : 0; 204 205 // Spam 206 $spammed_replies = ( !empty( $count_spammed_replies ) && current_user_can( 'edit_others_replies' ) ) ? (int) $all_replies->{$bbp->spam_status_id} : 0; 207 208 // Trash 209 $trashed_replies = ( !empty( $count_trashed_replies ) && current_user_can( 'view_trash' ) ) ? (int) $all_replies->{$bbp->trash_status_id} : 0; 210 211 // Total hidden (private + spam + trash) 212 $hidden_reply_count = $private_replies + $spammed_replies + $trashed_replies; 213 214 // Generate the hidden reply count's title attribute 215 $hidden_reply_title = !empty( $private_replies ) ? sprintf( __( 'Private: %s | ', 'bbpress' ), number_format_i18n( $private_replies ) ) : ''; 216 $hidden_reply_title .= !empty( $spammed_replies ) ? sprintf( __( 'Spammed: %s | ', 'bbpress' ), number_format_i18n( $spammed_replies ) ) : ''; 217 $hidden_reply_title .= !empty( $trashed_replies ) ? sprintf( __( 'Trashed: %s', 'bbpress' ), number_format_i18n( $trashed_replies ) ) : ''; 218 219 } 220 221 } 222 223 // Topic Tags 224 if ( !empty( $count_tags ) ) { 225 $topic_tag_count = wp_count_terms( $bbp->topic_tag_id, array( 'hide_empty' => true ) ); 226 227 if ( !empty( $count_empty_tags ) && current_user_can( 'edit_topic_tags' ) ) 228 $empty_topic_tag_count = wp_count_terms( $bbp->topic_tag_id ) - $topic_tag_count; 229 } 230 231 $statistics = compact( 'user_count', 'forum_count', 'topic_count', 'hidden_topic_count', 'reply_count', 'hidden_reply_count', 'topic_tag_count', 'empty_topic_tag_count' ); 232 $statistics = array_map( 'absint', $statistics ); 233 $statistics = array_map( 'number_format_i18n', $statistics ); 234 235 // Add the hidden (topic/reply) count title attribute strings because we don't need to run the math functions on these (see above) 236 if ( isset( $hidden_topic_title ) ) 237 $statistics['hidden_topic_title'] = $hidden_topic_title; 238 239 if ( isset( $hidden_reply_title ) ) 240 $statistics['hidden_reply_title'] = $hidden_reply_title; 241 242 return apply_filters( 'bbp_get_statistics', $statistics, $args ); 93 243 } 94 244 -
branches/plugin/bbp-includes/bbp-topic-template.php
r2768 r2769 65 65 // Ignore sticky topics? 66 66 'ignore_sticky_topics' => false, 67 68 // Maximum number of pages to show 69 'max_num_pages' => false, 67 70 ); 68 71 … … 86 89 } 87 90 91 // Limited the number of pages shown 92 if ( !empty( $max_num_pages ) ) 93 $bbp->topic_query->max_num_pages = $max_num_pages; 94 88 95 // Put sticky posts at the top of the posts array, much part of code taken from query.php in wp-includes 89 96 if ( empty( $ignore_sticky_topics ) && ( is_page() || bbp_is_forum() ) && bbp_get_paged() <= 1 ) { … … 154 161 // Only add pagination if query returned results 155 162 if ( ( (int) $bbp->topic_query->post_count || (int) $bbp->topic_query->found_posts ) && (int) $bbp->topic_query->posts_per_page ) { 163 164 // Limited the number of topics shown based on maximum allowed pages 165 if ( ( !empty( $max_num_pages ) ) && $bbp->topic_query->found_posts > $bbp->topic_query->max_num_pages * $bbp->topic_query->post_count ) 166 $bbp->topic_query->found_posts = $bbp->topic_query->max_num_pages * $bbp->topic_query->post_count; 156 167 157 168 // If pretty permalinks are enabled, make our pagination pretty … … 162 173 else 163 174 $base = add_query_arg( 'paged', '%#%' ); 175 164 176 165 177 // Pagination settings with filter -
branches/plugin/bbp-includes/bbp-users.php
r2758 r2769 518 518 } 519 519 520 /** 521 * Get the total number of users on the forums 522 * 523 * - Checks for a global $bbp_total_users, if it is set, then that is returned. 524 * - Runs the filter 'bbp_get_total_users', if we get anything other than false 525 * (strict check ===), then that is returned. 526 * - Runs its own query to count the users 527 * 528 * @since bbPress (r2769) 529 * 530 * @uses wp_cache_get() Check if query is in cache 531 * @uses apply_filters() Calls 'bbp_get_total_users' with bool false 532 * @uses wp_cache_set() Set the query in the cache 533 * @uses wpdb::get_var() To execute our query and get the var back 534 * @return int Total number of users 535 */ 536 function bbp_get_total_users() { 537 global $wpdb, $bbp_total_users; 538 539 if ( $bbp_total_users = wp_cache_get( 'bbp_total_users', 'bbpress' ) ) 540 return $bbp_total_users; 541 542 $bbp_total_users = $wpdb->get_var( "SELECT COUNT(ID) FROM {$wpdb->users} USE INDEX (PRIMARY);" ); 543 544 wp_cache_set( 'bbp_total_users', $bbp_total_users, 'bbpress' ); 545 546 return apply_filters( 'bbp_get_total_users', (int) $bbp_total_users ); 547 } 548 520 549 ?> -
branches/plugin/bbpress.php
r2768 r2769 62 62 63 63 /** 64 * @var string Closed post status id. Used by forums andtopics.64 * @var string Closed post status id. Used by topics. 65 65 */ 66 66 var $closed_status_id;
Note: See TracChangeset
for help on using the changeset viewer.