Changeset 5675 for sites/trunk/wordpress.org/public_html/wp-content/plugins/support-forums/inc/class-dropin.php
- Timestamp:
- 07/17/2017 11:27:44 AM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/wp-content/plugins/support-forums/inc/class-dropin.php
r5674 r5675 26 26 remove_action( 'bbp_unapproved_reply', 'bbp_update_reply_walker' ); 27 27 28 add_action( 'bbp_trashed_reply', array( $this, 'bbp_update_reply_walker' ) ); 29 add_action( 'bbp_untrashed_reply', array( $this, 'bbp_update_reply_walker' ) ); 30 add_action( 'bbp_deleted_reply', array( $this, 'bbp_update_reply_walker' ) ); 31 add_action( 'bbp_spammed_reply', array( $this, 'bbp_update_reply_walker' ) ); 32 add_action( 'bbp_unspammed_reply', array( $this, 'bbp_update_reply_walker' ) ); 33 add_action( 'bbp_approved_reply', array( $this, 'bbp_update_reply_walker' ) ); 34 add_action( 'bbp_unapproved_reply', array( $this, 'bbp_update_reply_walker' ) ); 28 add_action( 'bbp_trashed_reply', array( $this, 'update_reply_topic_meta' ) ); 29 add_action( 'bbp_untrashed_reply', array( $this, 'update_reply_topic_meta' ) ); 30 add_action( 'bbp_deleted_reply', array( $this, 'update_reply_topic_meta' ) ); 31 add_action( 'bbp_spammed_reply', array( $this, 'update_reply_topic_meta' ) ); 32 add_action( 'bbp_unspammed_reply', array( $this, 'update_reply_topic_meta' ) ); 33 add_action( 'bbp_approved_reply', array( $this, 'update_reply_topic_meta' ) ); 34 add_action( 'bbp_unapproved_reply', array( $this, 'update_reply_topic_meta' ) ); 35 36 add_action( 'bbp_edit_topic', array( $this, 'update_old_topic_meta' ) ); 35 37 36 38 // Avoid bbp_update_topic_walker(). … … 57 59 * @param int $reply_id Reply ID. 58 60 */ 59 function bbp_update_reply_walker( $reply_id ) { 60 // Get the topic ID 61 function update_reply_topic_meta( $reply_id ) { 61 62 $topic_id = bbp_get_reply_topic_id( $reply_id ); 62 63 63 // Make every effort to get topic id64 // Make every effort to get topic ID. 64 65 // https://bbpress.trac.wordpress.org/ticket/2529 65 66 if ( empty( $topic_id ) && ( current_filter() === 'bbp_deleted_reply' ) ) { … … 67 68 } 68 69 69 // Last reply and active ID's70 70 bbp_update_topic_last_reply_id( $topic_id ); 71 71 bbp_update_topic_last_active_id( $topic_id ); 72 73 // Get the last active time74 72 bbp_update_topic_last_active_time( $topic_id ); 75 76 // Counts77 73 bbp_update_topic_voice_count( $topic_id ); 74 } 75 76 /** 77 * Adjust the total hidden reply count of a topic (hidden includes trashed, 78 * spammed, pending, and archived replies). 79 * 80 * Extends the native bbPress bbp_update_topic_reply_count_hidden() function 81 * to include 'archived' status. 82 * 83 * @see https://bbpress.trac.wordpress.org/ticket/3128 84 * 85 * @param int $topic_id Optional. Topic ID to update. 86 * @param int $reply_count Optional. Set the reply count manually. 87 * @return int Topic hidden reply count. 88 */ 89 function bbp_update_topic_reply_count_hidden( $topic_id = 0, $reply_count = 0 ) { 90 91 // If it's a reply, then get the parent (topic id) 92 $topic_id = bbp_is_reply( $topic_id ) 93 ? bbp_get_reply_topic_id( $topic_id ) 94 : bbp_get_topic_id( $topic_id ); 95 96 // Get replies of topic 97 if ( empty( $reply_count ) ) { 98 $statuses = array( bbp_get_trash_status_id(), bbp_get_spam_status_id(), bbp_get_pending_status_id(), Moderators::ARCHIVED ); 99 $post_status = "'" . implode( "','", $statuses ) . "'"; 100 $bbp_db = bbp_db(); 101 $query = $bbp_db->prepare( "SELECT COUNT(ID) FROM {$bbp_db->posts} WHERE post_parent = %d AND post_status IN ( {$post_status} ) AND post_type = %s", $topic_id, bbp_get_reply_post_type() ); 102 $reply_count = $bbp_db->get_var( $query ); 103 } 104 105 $reply_count = (int) $reply_count; 106 107 update_post_meta( $topic_id, '_bbp_reply_count_hidden', $reply_count ); 108 109 // Filter & return 110 return (int) apply_filters( 'bbp_update_topic_reply_count_hidden', $reply_count, $topic_id ); 111 } 112 113 /** 114 * Update the necessary meta data when editing a topic created before 115 * 2017-07-17, as those topics can have potentially inaccurate data. 116 * 117 * @see https://meta.trac.wordpress.org/ticket/1971 118 * @see https://meta.trac.wordpress.org/ticket/2043 119 * 120 * @param int $topic_id Topic ID. 121 */ 122 function update_old_topic_meta( $topic_id ) { 123 // Only run on topics older than 2017-07-17. 124 if ( get_post_field( 'post_date', $topic_id ) >= '2017-07-17' ) { 125 return; 126 } 127 128 bbp_update_topic_last_reply_id( $topic_id ); 129 bbp_update_topic_last_active_id( $topic_id ); 130 bbp_update_topic_last_active_time( $topic_id ); 131 bbp_update_topic_voice_count( $topic_id ); 132 133 bbp_update_topic_reply_count( $topic_id ); 134 $this->bbp_update_topic_reply_count_hidden( $topic_id ); 78 135 } 79 136
Note: See TracChangeset
for help on using the changeset viewer.