Skip to:
Content

bbPress.org

Ticket #1925: 1925.patch

File 1925.patch, 10.4 KB (added by johnjamesjacoby, 11 years ago)

Includes _update_ functions, removes phpdoc changes from previous patches

  • plugins/bbpress/includes/common/widgets.php

    diff --git a/plugins/bbpress/includes/common/widgets.php b/plugins/bbpress/includes/common/widgets.php
    index 3204dc7..9866888 100644
    a b  
    743743                                        'post_status'         => array( bbp_get_public_status_id(), bbp_get_closed_status_id() ),
    744744                                        'ignore_sticky_posts' => true,
    745745                                        'no_found_rows'       => true,
    746                                         'meta_key'            => '_bbp_last_active_time',
    747                                         'orderby'             => 'meta_value',
     746                                        'orderby'             => 'modified',
    748747                                        'order'               => 'DESC',
    749748                                );
    750749                                break;
  • plugins/bbpress/includes/forums/functions.php

    diff --git a/plugins/bbpress/includes/forums/functions.php b/plugins/bbpress/includes/forums/functions.php
    index 050791d..37eea24 100644
    a b  
    11671167                        }
    11681168                }
    11691169
    1170                 // Setup recent topic query vars
    1171                 $post_vars = array(
     1170                // Get the most recent topic in this forum_id
     1171                $recent_topic = get_posts( array(
    11721172                        'post_parent' => $forum_id,
    11731173                        'post_type'   => bbp_get_topic_post_type(),
    1174                         'meta_key'    => '_bbp_last_active_time',
    1175                         'orderby'     => 'meta_value',
     1174                        'orderby'     => 'modified',
     1175                        'order'       => 'DESC',
    11761176                        'numberposts' => 1
    1177                 );
     1177                ) );
    11781178
    1179                 // Get the most recent topic in this forum_id
    1180                 $recent_topic = get_posts( $post_vars );
    11811179                if ( !empty( $recent_topic ) ) {
    11821180                        $topic_id = $recent_topic[0]->ID;
    11831181                }
     
    13471345        if ( empty( $new_time ) )
    13481346                $new_time = get_post_field( 'post_date', bbp_get_forum_last_active_id( $forum_id ) );
    13491347
    1350         // Update only if there is a time
    1351         if ( !empty( $new_time ) )
     1348        // Update only if published
     1349        if ( !empty( $new_time ) ) {
     1350
     1351                // Update forum's meta - not used since 2.6
    13521352                update_post_meta( $forum_id, '_bbp_last_active_time', $new_time );
     1353
     1354                // Update forum's post_modified date - since 2.6
     1355                wp_update_post( array(
     1356                        'ID'                => $forum_id,
     1357                        'post_modified'     => $new_time,
     1358                        'post_modified_gmt' => get_gmt_from_date( $new_time )
     1359                ) );
     1360        }
    13531361
    13541362        return (int) apply_filters( 'bbp_update_forum_last_active', $new_time, $forum_id );
    13551363}
     
    19061914 * @return Position change based on sort
    19071915 */
    19081916function _bbp_forum_query_usort_subforum_ids( $a = 0, $b = 0 ) {
    1909         $ta = get_post_meta( $a, '_bbp_last_active_time', true );
    1910         $tb = get_post_meta( $b, '_bbp_last_active_time', true );
     1917        $ta = get_post_field( 'post_modified', $a );
     1918        $tb = get_post_field( 'post_modified', $b );
    19111919        return ( $ta < $tb ) ? -1 : 1;
    19121920}
    19131921
  • plugins/bbpress/includes/forums/template.php

    diff --git a/plugins/bbpress/includes/forums/template.php b/plugins/bbpress/includes/forums/template.php
    index 890dbe0..3ea300b 100644
    a b  
    447447 * Allow forum rows to have adminstrative actions
    448448 *
    449449 * @since bbPress (r3653)
     450 *
    450451 * @uses do_action()
    451452 * @todo Links and filter
    452453 */
     
    502503         *
    503504         * @param int $forum_id Optional. Forum id
    504505         * @uses bbp_get_forum_id() To get the forum id
    505          * @uses get_post_meta() To retrieve forum last active meta
    506506         * @uses bbp_get_forum_last_reply_id() To get forum's last reply id
    507507         * @uses get_post_field() To get the post date of the reply
    508508         * @uses bbp_get_forum_last_topic_id() To get forum's last topic id
     
    515515         * @return string Forum last update date/time (freshness)
    516516         */
    517517        function bbp_get_forum_last_active_time( $forum_id = 0 ) {
     518                $forum_id      = bbp_get_forum_id( $forum_id );
     519                $post_modified = get_post_field( 'post_modified', $forum_id );
     520                $last_active   = bbp_get_time_since( bbp_convert_date( $post_modified ) );
    518521
    519                 // Verify forum and get last active meta
    520                 $forum_id    = bbp_get_forum_id( $forum_id );
    521                 $last_active = get_post_meta( $forum_id, '_bbp_last_active_time', true );
    522 
    523                 if ( empty( $last_active ) ) {
    524                         $reply_id = bbp_get_forum_last_reply_id( $forum_id );
    525                         if ( !empty( $reply_id ) ) {
    526                                 $last_active = get_post_field( 'post_date', $reply_id );
    527                         } else {
    528                                 $topic_id = bbp_get_forum_last_topic_id( $forum_id );
    529                                 if ( !empty( $topic_id ) ) {
    530                                         $last_active = bbp_get_topic_last_active_time( $topic_id );
    531                                 }
    532                         }
    533                 }
    534 
    535                 $active_time = !empty( $last_active ) ? bbp_get_time_since( bbp_convert_date( $last_active ) ) : '';
    536 
    537                 return apply_filters( 'bbp_get_forum_last_active', $active_time, $forum_id );
     522                return apply_filters( 'bbp_get_forum_last_active', $last_active, $forum_id );
    538523        }
    539524
    540525/**
  • plugins/bbpress/includes/search/template.php

    diff --git a/plugins/bbpress/includes/search/template.php b/plugins/bbpress/includes/search/template.php
    index c22b887..212717f 100644
    a b  
    5050                'post_type'           => $default_post_type,         // Forums, topics, and replies
    5151                'posts_per_page'      => bbp_get_replies_per_page(), // This many
    5252                'paged'               => bbp_get_paged(),            // On this page
    53                 'orderby'             => 'date',                     // Sorted by date
     53                'orderby'             => 'modified',                 // Sorted by date
    5454                'order'               => 'DESC',                     // Most recent first
    5555                'ignore_sticky_posts' => true,                       // Stickies not supported
    5656                's'                   => bbp_get_search_terms(),     // This is a search
  • plugins/bbpress/includes/topics/functions.php

    diff --git a/plugins/bbpress/includes/topics/functions.php b/plugins/bbpress/includes/topics/functions.php
    index d097d22..df38911 100644
    a b  
    798798 * @uses bbp_get_current_user_id() To get the current user id
    799799 * @yses bbp_get_topic_forum_id() To get the topic forum id
    800800 * @uses update_post_meta() To update the topic metas
    801  * @uses get_post_field() To get the topic's last active time
    802801 * @uses set_transient() To update the flood check transient for the ip
    803802 * @uses bbp_update_user_last_posted() To update the users last posted time
    804803 * @uses bbp_is_subscriptions_active() To check if the subscriptions feature is
     
    888887                update_post_meta( $topic_id, '_bbp_author_ip', bbp_current_author_ip(), false );
    889888
    890889                // Last active time
    891                 $last_active = current_time( 'mysql' );
     890                $last_active = get_post_field( 'post_date', $topic_id );
    892891
    893892                // Reply topic meta
    894893                bbp_update_topic_last_reply_id      ( $topic_id, 0            );
     
    25252524
    25262525        // Update only if published
    25272526        if ( !empty( $new_time ) ) {
     2527
     2528                // Update topic's meta - not used since 2.6
    25282529                update_post_meta( $topic_id, '_bbp_last_active_time', $new_time );
     2530
     2531                // Update topic's post_modified date - since 2.6
     2532                wp_update_post( array(
     2533                        'ID'                => $topic_id,
     2534                        'post_modified'     => $new_time,
     2535                        'post_modified_gmt' => get_gmt_from_date( $new_time )
     2536                ) );
    25292537        }
    25302538
    25312539        return apply_filters( 'bbp_update_topic_last_active_time', $new_time, $topic_id );
     
    34563464                                        <guid><?php bbp_topic_permalink(); ?></guid>
    34573465                                        <title><![CDATA[<?php bbp_topic_title(); ?>]]></title>
    34583466                                        <link><?php bbp_topic_permalink(); ?></link>
    3459                                         <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_meta( bbp_get_topic_id(), '_bbp_last_active_time', true ) ); ?></pubDate>
     3467                                        <pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_field( 'post_modified', bbp_get_topic_id() ) ); ?></pubDate>
    34603468                                        <dc:creator><?php the_author() ?></dc:creator>
    34613469
    34623470                                        <?php if ( !post_password_required() ) : ?>
  • plugins/bbpress/includes/topics/template.php

    diff --git a/plugins/bbpress/includes/topics/template.php b/plugins/bbpress/includes/topics/template.php
    index 98fe48d..bb97266 100644
    a b  
    9797 * - New Style: Topics appear as "lead" posts, ahead of replies
    9898 *
    9999 * @since bbPress (r2954)
     100 *
    100101 * @param $show_lead Optional. Default false
    101102 * @return bool Yes if the topic appears as a lead, otherwise false
    102103 */
     
    151152        $default = array(
    152153                'post_type'      => bbp_get_topic_post_type(), // Narrow query down to bbPress topics
    153154                'post_parent'    => $default_post_parent,      // Forum ID
    154                 'meta_key'       => '_bbp_last_active_time',   // Make sure topic has some last activity time
    155                 'orderby'        => 'meta_value',              // 'meta_value', 'author', 'date', 'title', 'modified', 'parent', rand',
     155                'orderby'        => 'modified',                // 'meta_value', 'author', 'date', 'title', 'modified', 'parent', rand',
    156156                'order'          => 'DESC',                    // 'ASC', 'DESC'
    157157                'posts_per_page' => bbp_get_topics_per_page(), // Topics per page
    158158                'paged'          => bbp_get_paged(),           // Page Number
     
    279279                                $sticky_query = array(
    280280                                        'post_type'   => bbp_get_topic_post_type(),
    281281                                        'post_parent' => 'any',
    282                                         'meta_key'    => '_bbp_last_active_time',
    283                                         'orderby'     => 'meta_value',
     282                                        'orderby'     => 'modified',
    284283                                        'order'       => 'DESC',
    285284                                        'include'     => $stickies
    286285                                );
     
    17781777         * @since bbPress (r2625)
    17791778         *
    17801779         * @param int $topic_id Optional. Topic id
    1781          * @uses bbp_get_topic_id() To get topic id
    1782          * @uses get_post_meta() To get the topic lst active meta
    1783          * @uses bbp_get_topic_last_reply_id() To get topic last reply id
    1784          * @uses get_post_field() To get the post date of topic/reply
     1780         * @uses bbp_get_topic_id() To verify the topic id
     1781         * @uses get_post_field() To get the post date of topic
    17851782         * @uses bbp_convert_date() To convert date
    17861783         * @uses bbp_get_time_since() To get time in since format
    17871784         * @uses apply_filters() Calls 'bbp_get_topic_last_active' with topic
     
    17891786         * @return string Topic freshness
    17901787         */
    17911788        function bbp_get_topic_last_active_time( $topic_id = 0 ) {
    1792                 $topic_id = bbp_get_topic_id( $topic_id );
    1793 
    1794                 // Try to get the most accurate freshness time possible
    1795                 $last_active = get_post_meta( $topic_id, '_bbp_last_active_time', true );
    1796                 if ( empty( $last_active ) ) {
    1797                         $reply_id = bbp_get_topic_last_reply_id( $topic_id );
    1798                         if ( !empty( $reply_id ) ) {
    1799                                 $last_active = get_post_field( 'post_date', $reply_id );
    1800                         } else {
    1801                                 $last_active = get_post_field( 'post_date', $topic_id );
    1802                         }
    1803                 }
    1804 
    1805                 $last_active = !empty( $last_active ) ? bbp_get_time_since( bbp_convert_date( $last_active ) ) : '';
     1789                $topic_id      = bbp_get_topic_id( $topic_id );
     1790                $post_modified = get_post_field( 'post_modified', $topic_id );
     1791                $last_active   = bbp_get_time_since( bbp_convert_date( $post_modified ) );
    18061792
    18071793                // Return the time since
    18081794                return apply_filters( 'bbp_get_topic_last_active', $last_active, $topic_id );