Skip to:
Content

bbPress.org

Changeset 4096


Ignore:
Timestamp:
07/20/2012 02:33:10 PM (12 years ago)
Author:
johnjamesjacoby
Message:

Topic Split:

  • When splitting a topic, calculate new reply positions.
  • Set last active ID to last reply ID.
  • Update last reply and active ID/time of source topic.
  • Fixes #1898.
  • For 2.1 branch.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.1/bbp-includes/bbp-topic-functions.php

    r4059 r4096  
    14421442    }
    14431443
    1444     // Bail ir there are errors
     1444    // Bail if there are errors
    14451445    if ( bbp_has_errors() )
    14461446        return;
     
    15071507    if ( !empty( $replies ) && !is_wp_error( $replies ) ) {
    15081508
     1509        // Calculate starting point for reply positions
     1510        switch ( $split_option ) {
     1511
     1512            // Get topic reply count for existing topic
     1513            case 'existing' :
     1514                $reply_position = bbp_get_topic_reply_count( $destination_topic->ID );
     1515                break;
     1516
     1517            // Account for new lead topic
     1518            case 'reply'    :
     1519                $reply_position = 1;
     1520                break;
     1521        }
     1522
    15091523        // Change the post_parent of each reply to the destination topic id
    15101524        foreach ( $replies as $reply ) {
    15111525
     1526            // Bump the reply position each iteration through the loop
     1527            $reply_position++;
     1528
    15121529            // New reply data
    15131530            $postarr = array(
    1514                 'ID'          => $reply->ID,
    1515                 'post_title'  => sprintf( __( 'Reply To: %s', 'bbpress' ), $destination_topic->post_title ),
    1516                 'post_name'   => false, // will be automatically generated
    1517                 'post_parent' => $destination_topic->ID,
    1518                 'guid'        => ''
     1531                'ID'            => $reply->ID,
     1532                'post_title'    => sprintf( __( 'Reply To: %s', 'bbpress' ), $destination_topic->post_title ),
     1533                'post_name'     => false, // will be automatically generated
     1534                'post_parent'   => $destination_topic->ID,
     1535                'post_position' => $reply_position,
     1536                'guid'          => ''
    15191537            );
    15201538
     
    15291547            do_action( 'bbp_split_topic_reply', $reply->ID, $destination_topic->ID );
    15301548        }
     1549
     1550        // Set the last reply ID and freshness
     1551        $last_reply_id = $reply->ID;
     1552        $freshness     = $reply->post_date;
     1553
     1554    // Set the last reply ID and freshness to the from_reply
     1555    } else {
     1556        $last_reply_id = $from_reply->ID;
     1557        $freshness     = $from_reply->post_date;
    15311558    }
    15321559
     
    15341561    // the topic display in bbp_has_topics() list
    15351562    if ( 'reply' == $split_option ) {
    1536         $last_reply_id = ( empty( $reply ) || empty( $reply->ID        ) ) ? 0  : $reply->ID;
    1537         $freshness     = ( empty( $reply ) || empty( $reply->post_date ) ) ? '' : $reply->post_date;
    1538 
    15391563        bbp_update_topic_last_reply_id   ( $destination_topic->ID, $last_reply_id );
     1564        bbp_update_topic_last_active_id  ( $destination_topic->ID, $last_reply_id );
    15401565        bbp_update_topic_last_active_time( $destination_topic->ID, $freshness     );
    15411566    }
    15421567
     1568    // Update source topic ID last active
     1569    bbp_update_topic_last_reply_id   ( $source_topic->ID );
     1570    bbp_update_topic_last_active_id  ( $source_topic->ID );
     1571    bbp_update_topic_last_active_time( $source_topic->ID );
     1572   
    15431573    /** Successful Split ******************************************************/
    15441574
Note: See TracChangeset for help on using the changeset viewer.