WordPress.org

Making WordPress.org

Ticket #2043: 2043.3.patch

File 2043.3.patch, 2.8 KB (added by SergeyBiryukov, 17 months ago)
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/support-forums/inc/class-dropin.php

     
    4040                if ( is_admin() ) {
    4141                        remove_filter( 'the_title', 'bbp_get_reply_title_fallback', 2 );
    4242                }
     43
     44                // Filter out hidden reply references from public views
     45                add_filter( 'bbp_get_topic_last_reply_id',   array( $this, 'get_last_public_reply_id' ), 10, 2 );
     46                add_filter( 'bbp_get_topic_last_active',     array( $this, 'get_last_public_post_time' ), 10, 2 );
     47                add_filter( 'bbp_get_topic_last_active_id',  array( $this, 'get_last_public_post_id' ), 10, 2 );
     48                add_filter( 'bbp_get_topic_reply_count_int', array( $this, 'get_public_reply_count' ), 10, 2 );
    4349        }
    4450
    4551        /**
     
    328334                        }
    329335                }
    330336        }
     337
     338        /**
     339         * Return the ID of the last public reply in a topic.
     340         *
     341         * @param int $reply_id Reply ID.
     342         * @param int $topic_id Topic ID.
     343         * @return int Last public reply ID.
     344         */
     345        function get_last_public_reply_id( $reply_id, $topic_id ) {
     346                if ( 'publish' !== get_post_status( $reply_id ) ) {
     347                        $reply_id = bbp_get_public_child_last_id( $topic_id, bbp_get_reply_post_type() );
     348                }
     349
     350                return $reply_id;
     351        }
     352
     353        /**
     354         * Return last public activity time for a topic.
     355         *
     356         * @param string $last_active Last activity time.
     357         * @param int $topic_id Topic ID.
     358         * @return string Last public activity time.
     359         */
     360        function get_last_public_post_time( $last_active, $topic_id ) {
     361                if ( bbp_get_topic_reply_count_hidden( $topic_id ) ) {
     362                        $reply_id = bbp_get_topic_last_reply_id( $topic_id );
     363
     364                        $last_active = get_post_field( 'post_date', $reply_id );
     365                        $last_active = ! empty( $last_active ) ? bbp_get_time_since( bbp_convert_date( $last_active ) ) : '';
     366                }
     367
     368                return $last_active;
     369        }
     370
     371        /**
     372         * Return the ID of the last public post in a topic.
     373         *
     374         * @param int $active_id Last post ID.
     375         * @param int $topic_id Topic ID.
     376         * @return int Last public post ID.
     377         */
     378        function get_last_public_post_id( $active_id, $topic_id ) {
     379                if ( bbp_get_topic_reply_count_hidden( $topic_id ) ) {
     380                        $active_id = bbp_get_topic_last_reply_id( $topic_id );
     381                }
     382
     383                return $active_id;
     384        }
     385
     386        /**
     387         * Return public reply count for a topic.
     388         *
     389         * @param int $replies Reply count.
     390         * @param int $topic_id Topic ID.
     391         * @return int Public reply count.
     392         */
     393        function get_public_reply_count( $replies, $topic_id ) {
     394                if ( bbp_get_topic_reply_count_hidden( $topic_id ) ) {
     395                        $replies = bbp_get_public_child_count( $topic_id, bbp_get_reply_post_type() );
     396                }
     397
     398                return $replies;
     399        }
     400
    331401}