Skip to:
Content

bbPress.org

Ticket #1918: widgets_inc_new_topics.diff

File widgets_inc_new_topics.diff, 6.0 KB (added by netweb, 9 years ago)
  • includes/core/widgets.php

    class BBP_Replies_Widget extends WP_Widget { 
    750750       $show_date  = !empty( $instance['show_date'] ) ? 'on'                   : false;
    751751       $show_user  = !empty( $instance['show_user'] ) ? 'on'                   : false;
    752752       $post_types = !empty( $instance['post_type'] ) ? array( bbp_get_topic_post_type(), bbp_get_reply_post_type() ) : bbp_get_reply_post_type();
     753       $inc_fresh_topics     = !empty( $instance['inc_fresh_topics']     ) ? $instance['inc_fresh_topics']        : false;
     754
     755       // Do we want to include fresh topics with no replies
     756       switch ( $inc_fresh_topics ) {
     757
     758           // Include new topics with no replies with replies created most recently
     759           case 'yes' :
     760               $replies_query = array(
     761                   'post_type'      => $post_types,
     762                   'post_status'    => join( ',', array( bbp_get_public_status_id(), bbp_get_closed_status_id() ) ),
     763                   'posts_per_page' => $max_shown,
     764                   'meta_query'     => array( bbp_exclude_forum_ids( 'meta_query' ) )
     765               );
     766               break;
     767
     768           // Show replies created most recently
     769           case 'no' :
     770           default :
     771               $replies_query = array(
     772                   'post_type'      => $post_types,
     773                   'post_status'    => join( ',', array( bbp_get_public_status_id(), bbp_get_closed_status_id() ) ),
     774                   'posts_per_page' => $max_shown,
     775                   'meta_query'     => array( bbp_exclude_forum_ids( 'meta_query' ) )
     776               );     
     777               break;
     778       }
    753779
    754780       // Note: private and hidden forums will be excluded via the
    755781       // bbp_pre_get_posts_exclude_forums filter and function.
    class BBP_Replies_Widget extends WP_Widget { 
    829855    * @param array $old_instance The old instance options
    830856    */
    831857   public function update( $new_instance, $old_instance ) {
    832        $instance              = $old_instance;
    833        $instance['title']     = strip_tags( $new_instance['title']     );
    834        $instance['max_shown'] = strip_tags( $new_instance['max_shown'] );
    835        $instance['show_date'] = strip_tags( $new_instance['show_date'] );
    836        $instance['show_user'] = strip_tags( $new_instance['show_user'] );
     858       $instance                     = $old_instance;
     859       $instance['title']            = strip_tags( $new_instance['title']           );
     860       $instance['max_shown']        = strip_tags( $new_instance['max_shown']       );
     861       $instance['show_date']        = strip_tags( $new_instance['show_date']       );
     862       $instance['show_user']        = strip_tags( $new_instance['show_user']       );
     863       $instance['inc_fresh_topics'] = strip_tags( $new_instance['inc_fresh_topics']);
    837864
    838865       return $instance;
    839866   }
    class BBP_Replies_Widget extends WP_Widget { 
    848875    * @uses BBP_Replies_Widget::get_field_name() To output the field name
    849876    */
    850877   public function form( $instance ) {
    851        $title     = !empty( $instance['title']     ) ? esc_attr( $instance['title']     ) : '';
    852        $max_shown = !empty( $instance['max_shown'] ) ? esc_attr( $instance['max_shown'] ) : '';
    853        $show_date = !empty( $instance['show_date'] ) ? esc_attr( $instance['show_date'] ) : '';
    854        $show_user = !empty( $instance['show_user'] ) ? esc_attr( $instance['show_user'] ) : ''; ?>
     878       $title            = !empty( $instance['title']            ) ? esc_attr( $instance['title']            ) : '';
     879       $max_shown        = !empty( $instance['max_shown']        ) ? esc_attr( $instance['max_shown']        ) : '';
     880       $show_date        = !empty( $instance['show_date']        ) ? esc_attr( $instance['show_date']        ) : '';
     881       $show_user        = !empty( $instance['show_user']        ) ? esc_attr( $instance['show_user']        ) : '';
     882       $inc_fresh_topics = !empty( $instance['inc_fresh_topics'] ) ? esc_attr( $instance['inc_fresh_topics'] ) : ''; ?> ?>
    855883
    856884       <p><label for="<?php echo $this->get_field_id( 'title'     ); ?>"><?php _e( 'Title:',                   'bbpress' ); ?> <input class="widefat" id="<?php echo $this->get_field_id( 'title'     ); ?>" name="<?php echo $this->get_field_name( 'title'     ); ?>" type="text" value="<?php echo $title; ?>" /></label></p>
    857885       <p><label for="<?php echo $this->get_field_id( 'max_shown' ); ?>"><?php _e( 'Maximum replies to show:', 'bbpress' ); ?> <input class="widefat" id="<?php echo $this->get_field_id( 'max_shown' ); ?>" name="<?php echo $this->get_field_name( 'max_shown' ); ?>" type="text" value="<?php echo $max_shown; ?>" /></label></p>
    858886       <p><label for="<?php echo $this->get_field_id( 'show_date' ); ?>"><?php _e( 'Show post date:',          'bbpress' ); ?> <input type="checkbox" id="<?php echo $this->get_field_id( 'show_date' ); ?>" name="<?php echo $this->get_field_name( 'show_date' ); ?>" <?php checked( 'on', $show_date ); ?> /></label></p>
    859887       <p><label for="<?php echo $this->get_field_id( 'show_user' ); ?>"><?php _e( 'Show reply author:',       'bbpress' ); ?> <input type="checkbox" id="<?php echo $this->get_field_id( 'show_user' ); ?>" name="<?php echo $this->get_field_name( 'show_user' ); ?>" <?php checked( 'on', $show_user ); ?> /></label></p>
     888       <p>
     889           <label for="<?php echo $this->get_field_id( 'inc_fresh_topics' ); ?>"><?php _e( 'Include fresh topics with no replies:',        'bbpress' ); ?></label>
     890           <select name="<?php echo $this->get_field_name( 'inc_fresh_topics' ); ?>" id="<?php echo $this->get_field_name( 'inc_fresh_topics' ); ?>">
     891               <option <?php selected( $inc_fresh_topics, 'no' );   ?> value="no"><?php _e( 'No',                'bbpress' ); ?></option>
     892               <option <?php selected( $inc_fresh_topics, 'yes' );   ?> value="yes"><?php _e( 'Yes',               'bbpress' ); ?></option>
     893               
     894           </select>
     895       </p>
    860896
    861897       <?php
    862898   }