Changeset 6036 for trunk/src/includes/topics/functions.php
- Timestamp:
- 05/30/2016 10:28:36 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/includes/topics/functions.php
r6032 r6036 70 70 // Update the topic and hierarchy 71 71 bbp_update_topic( $topic_id, $topic_meta['forum_id'], array(), $topic_data['post_author'], false ); 72 73 /** 74 * Fires after topic has been inserted via `bbp_insert_topic`. 75 * 76 * @since 2.6.0 bbPress (r6036) 77 * 78 * @param int $topic_id The topic id. 79 * @param int $topic_meta['forum_id'] The topic forum meta. 80 */ 81 do_action( 'bbp_insert_topic', (int) $topic_id, (int) $topic_meta['forum_id'] ); 72 82 73 83 // Return new topic ID … … 1022 1032 * up the old and new branches and updating the counts. 1023 1033 * 1024 * @param int $topic_id Topic id 1025 * @param int $old_forum_id Old forum id 1026 * @param int $new_forum_id New forum id 1034 * @since 2.0.0 bbPress (r2907) 1035 * 1036 * @param int $topic_id The topic id. 1037 * @param int $old_forum_id Old forum id. 1038 * @param int $new_forum_id New forum id. 1027 1039 * @uses bbp_get_topic_id() To get the topic id 1028 1040 * @uses bbp_get_forum_id() To get the forum id 1041 * @uses bbp_clean_post_cache() To clean the old and new forum post caches 1042 * @uses bbp_update_topic_forum_id() To update the topic forum id 1029 1043 * @uses wp_update_post() To update the topic post parent` 1030 1044 * @uses bbp_get_stickies() To get the old forums sticky topics … … 1033 1047 * @uses bbp_stick_topic() To stick the topic in the new forum 1034 1048 * @uses bbp_get_reply_post_type() To get the reply post type 1035 * @uses bbp_get_all_child_ids() To get the publicchild ids1049 * @uses bbp_get_all_child_ids() To get all the child ids 1036 1050 * @uses bbp_update_reply_forum_id() To update the reply forum id 1037 * @uses bbp_update_topic_forum_id() To update the topic forum id1038 1051 * @uses get_post_ancestors() To get the topic's ancestors 1052 * @uses bbp_get_public_child_ids() To get all the public child ids 1053 * @uses get_post_field() To get the topic's post status 1054 * @uses bbp_get_public_status_id() To get the public status id 1055 * @uses bbp_decrease_forum_topic_count() To bump the forum topic count by -1 1056 * @uses bbp_bump_forum_reply_count() To bump the forum reply count 1057 * @uses bbp_increase_forum_topic_count() To bump the forum topic count by 1 1058 * @uses bbp_decrease_forum_topic_count_hidden() To bump the forum topic hidden count by -1 1059 * @uses bbp_increase_forum_topic_count_hidden() To bump the forum topic hidden count by 1 1039 1060 * @uses bbp_is_forum() To check if the ancestor is a forum 1040 1061 * @uses bbp_update_forum() To update the forum … … 1110 1131 // Get topic ancestors 1111 1132 $old_forum_ancestors = array_values( array_unique( array_merge( array( $old_forum_id ), (array) get_post_ancestors( $old_forum_id ) ) ) ); 1133 1134 // Get reply count. 1135 $public_reply_count = count( bbp_get_public_child_ids( $topic_id, bbp_get_reply_post_type() ) ); 1136 1137 // Topic status. 1138 $topic_status = get_post_field( 'post_status', $topic_id ); 1139 1140 // Update old/new forum counts. 1141 if ( $topic_status === bbp_get_public_status_id() ) { 1142 1143 // Update old forum counts. 1144 bbp_decrease_forum_topic_count( $old_forum_id ); 1145 bbp_bump_forum_reply_count( $old_forum_id, -$public_reply_count ); 1146 1147 // Update new forum counts. 1148 bbp_increase_forum_topic_count( $new_forum_id ); 1149 bbp_bump_forum_reply_count( $new_forum_id, $public_reply_count ); 1150 } else { 1151 1152 // Update old forum counts. 1153 bbp_decrease_forum_topic_count_hidden( $old_forum_id ); 1154 1155 // Update new forum counts. 1156 bbp_increase_forum_topic_count_hidden( $new_forum_id ); 1157 } 1112 1158 1113 1159 // Loop through ancestors and update them … … 2379 2425 2380 2426 /** 2427 * Increase the total reply count of a topic by one. 2428 * 2429 * @since 2.6.0 bbPress (r6036) 2430 * 2431 * @param int $topic_id The topic id. 2432 * 2433 * @uses bbp_is_reply() To check if the passed topic id is a reply 2434 * @uses bbp_get_reply_topic_id() To get the replies topic id 2435 * @uses bbp_is_reply_published() To check if the reply is published 2436 * @uses bbp_increase_topic_reply_count_hidden() To increase the topics reply 2437 * hidden count by 1 2438 * @uses bbp_bump_topic_reply_count() To bump the topic reply count 2439 * 2440 * @return void 2441 */ 2442 function bbp_increase_topic_reply_count( $topic_id = 0 ) { 2443 2444 // Bail early if no id is passed. 2445 if ( empty( $topic_id ) ) { 2446 return; 2447 } 2448 2449 // If it's a reply, get the topic id. 2450 if ( bbp_is_reply( $topic_id ) ) { 2451 $reply_id = $topic_id; 2452 $topic_id = bbp_get_reply_topic_id( $reply_id ); 2453 2454 // If this is a new, unpublished, reply, update hidden count and bail. 2455 if ( 'bbp_new_reply' === current_filter() && ! bbp_is_reply_published( $reply_id ) ) { 2456 bbp_increase_topic_reply_count_hidden( $topic_id ); 2457 return; 2458 } 2459 } 2460 2461 bbp_bump_topic_reply_count( $topic_id ); 2462 } 2463 2464 /** 2465 * Decrease the total reply count of a topic by one. 2466 * 2467 * @since 2.6.0 bbPress (r6036) 2468 * 2469 * @param int $topic_id The topic id. 2470 * 2471 * @uses bbp_is_reply() To check if the passed topic id is a reply 2472 * @uses bbp_get_reply_topic_id() To get the replies topic id 2473 * @uses bbp_bump_topic_reply_count() To bump the topic reply count 2474 * 2475 * @return void 2476 */ 2477 function bbp_decrease_topic_reply_count( $topic_id = 0 ) { 2478 2479 // Bail early if no id is passed. 2480 if ( empty( $topic_id ) ) { 2481 return; 2482 } 2483 2484 // If it's a reply, get the topic id. 2485 if ( bbp_is_reply( $topic_id ) ) { 2486 $topic_id = bbp_get_reply_topic_id( $topic_id ); 2487 } 2488 2489 bbp_bump_topic_reply_count( $topic_id, -1 ); 2490 } 2491 2492 /** 2381 2493 * Bump the total hidden reply count of a topic 2382 2494 * … … 2409 2521 2410 2522 return (int) apply_filters( 'bbp_bump_topic_reply_count_hidden', $new_count, $topic_id, $difference ); 2523 } 2524 2525 /** 2526 * Increase the total hidden reply count of a topic by one. 2527 * 2528 * @since 2.6.0 bbPress (r6036) 2529 * 2530 * @param int $topic_id The topic id. 2531 * 2532 * @uses bbp_is_reply() To check if the passed topic id is a reply 2533 * @uses bbp_get_reply_topic_id() To get the topic id 2534 * @uses bbp_bump_topic_reply_count_hidden() To bump topic hidden reply count 2535 * 2536 * @return void 2537 */ 2538 function bbp_increase_topic_reply_count_hidden( $topic_id = 0 ) { 2539 2540 // Bail early if no id is passed. 2541 if ( empty( $topic_id ) ) { 2542 return; 2543 } 2544 2545 // If it's a reply, get the topic id. 2546 if ( bbp_is_reply( $topic_id ) ) { 2547 $topic_id = bbp_get_reply_topic_id( $topic_id ); 2548 } 2549 2550 bbp_bump_topic_reply_count_hidden( $topic_id ); 2551 } 2552 2553 /** 2554 * Decrease the total hidden reply count of a topic by one. 2555 * 2556 * @since 2.6.0 bbPress (r6036) 2557 * 2558 * @param int $topic_id The topic id. 2559 * 2560 * @uses bbp_is_reply() To check if the passed topic id is a reply 2561 * @uses bbp_get_reply_topic_id() To get the topic id 2562 * @uses bbp_bump_topic_reply_count_hidden() To bump topic hidden reply count 2563 * 2564 * @return void 2565 */ 2566 function bbp_decrease_topic_reply_count_hidden( $topic_id = 0 ) { 2567 2568 // Bail early if no id is passed. 2569 if ( empty( $topic_id ) ) { 2570 return; 2571 } 2572 2573 // If it's a reply, get the topic id. 2574 if ( bbp_is_reply( $topic_id ) ) { 2575 $topic_id = bbp_get_reply_topic_id( $topic_id ); 2576 } 2577 2578 bbp_bump_topic_reply_count_hidden( $topic_id, -1 ); 2579 } 2580 2581 /** 2582 * Update counts after a topic is inserted via `bbp_insert_topic`. 2583 * 2584 * @since 2.6.0 bbPress (r6036) 2585 * 2586 * @param int $reply_id The reply id. 2587 * @param int $topic_id The topic id. 2588 * 2589 * @uses bbp_get_topic_status() To get the post status 2590 * @uses bbp_get_public_status_id() To get the public status id 2591 * @uses bbp_increase_forum_topic_count() To bump the topic's forum topic count by 1 2592 * @uses bbp_increase_forum_topic_count_hidden() To bump the topic's forum topic 2593 * hidden count by 1 2594 * 2595 * @return void 2596 */ 2597 function bbp_insert_topic_update_counts( $topic_id = 0, $forum_id = 0 ) { 2598 2599 // If the topic is public, update the forum topic counts. 2600 if ( bbp_get_topic_status( $topic_id ) === bbp_get_public_status_id() ) { 2601 bbp_increase_forum_topic_count( $forum_id ); 2602 2603 // If the topic isn't public only update the forum topic hidden count. 2604 } else { 2605 bbp_increase_forum_topic_count_hidden( $forum_id ); 2606 } 2411 2607 } 2412 2608
Note: See TracChangeset
for help on using the changeset viewer.