Changeset 8189 for trunk/bp-blogs/bp-blogs-activity.php
- Timestamp:
- 03/28/2014 10:33:16 PM (12 years ago)
- File:
-
- 1 edited
-
trunk/bp-blogs/bp-blogs-activity.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/bp-blogs/bp-blogs-activity.php
r8126 r8189 346 346 ) ); 347 347 } 348 349 /** 350 * Check if a blog post's activity item should be closed from commenting. 351 * 352 * This mirrors the {@link comments_open()} and {@link _close_comments_for_old_post()} 353 * functions, but for use with the BuddyPress activity stream to be as 354 * lightweight as possible. 355 * 356 * By lightweight, we actually mirror a few of the blog's commenting settings 357 * to blogmeta and checks the values in blogmeta instead. This is to prevent 358 * multiple {@link switch_to_blog()} calls in the activity stream. 359 * 360 * @since BuddyPress (2.0.0) 361 * 362 * @param object $activity The BP_Activity_Activity object 363 * @return bool 364 */ 365 function bp_blogs_comments_open( $activity ) { 366 $open = true; 367 368 $blog_id = $activity->item_id; 369 370 // see if we've mirrored the close comments option before 371 $days_old = bp_blogs_get_blogmeta( $blog_id, 'close_comments_days_old' ); 372 373 // we've never cached these items before, so do it now 374 if ( '' === $days_old ) { 375 switch_to_blog( $blog_id ); 376 377 // use comments_open() 378 remove_filter( 'comments_open', 'bp_comments_open', 10, 2 ); 379 $open = comments_open( $activity->secondary_item_id ); 380 add_filter( 'comments_open', 'bp_comments_open', 10, 2 ); 381 382 // might as well mirror values to blogmeta since we're here! 383 $thread_depth = get_option( 'thread_comments' ); 384 if ( ! empty( $thread_depth ) ) { 385 $thread_depth = get_option( 'thread_comments_depth' ); 386 } else { 387 // perhaps filter this? 388 $thread_depth = 1; 389 } 390 391 bp_blogs_update_blogmeta( $blog_id, 'close_comments_for_old_posts', get_option( 'close_comments_for_old_posts' ) ); 392 bp_blogs_update_blogmeta( $blog_id, 'close_comments_days_old', get_option( 'close_comments_days_old' ) ); 393 bp_blogs_update_blogmeta( $blog_id, 'thread_comments_depth', $thread_depth ); 394 395 restore_current_blog(); 396 397 // check blogmeta and manually check activity item 398 // basically a copy of _close_comments_for_old_post() 399 } else { 400 401 // comments are closed 402 if ( 'closed' == bp_activity_get_meta( $activity->id, 'post_comment_status' ) ) { 403 return false; 404 } 405 406 if ( ! bp_blogs_get_blogmeta( $blog_id, 'close_comments_for_old_posts' ) ) { 407 return $open; 408 } 409 410 $days_old = (int) $days_old; 411 if ( ! $days_old ) { 412 return $open; 413 } 414 415 /* commenting out for now - needs some more thought... 416 should we add the post type to activity meta? 417 418 $post = get_post($post_id); 419 420 // This filter is documented in wp-includes/comment.php 421 $post_types = apply_filters( 'close_comments_for_post_types', array( 'post' ) ); 422 if ( ! in_array( $post->post_type, $post_types ) ) 423 return $open; 424 */ 425 426 if ( time() - strtotime( $activity->date_recorded ) > ( $days_old * DAY_IN_SECONDS ) ) { 427 return false; 428 } 429 430 return $open; 431 } 432 433 return $open; 434 }
Note: See TracChangeset
for help on using the changeset viewer.