Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
02/05/2016 04:08:04 AM (9 years ago)
Author:
boonebgorges
Message:

Move bp-blogs classes to their own files.

See #6870.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-blogs/bp-blogs-widgets.php

    r10417 r10517  
    1111defined( 'ABSPATH' ) || exit;
    1212
     13require dirname( __FILE__ ) . '/classes/class-bp-blogs-recent-posts-widget.php';
     14
    1315/**
    1416 * Register the widgets for the Blogs component.
     
    2224}
    2325add_action( 'bp_register_widgets', 'bp_blogs_register_widgets' );
    24 
    25 /**
    26  * The Recent Networkwide Posts widget.
    27  */
    28 class BP_Blogs_Recent_Posts_Widget extends WP_Widget {
    29 
    30     /**
    31      * Constructor method.
    32      */
    33     public function __construct() {
    34         $widget_ops = array(
    35             'description' => __( 'A list of recently published posts from across your network.', 'buddypress' ),
    36             'classname'   => 'widget_bp_blogs_widget buddypress widget',
    37         );
    38         parent::__construct( false, $name = _x( '(BuddyPress) Recent Networkwide Posts', 'widget name', 'buddypress' ), $widget_ops );
    39     }
    40 
    41     /**
    42      * Display the networkwide posts widget.
    43      *
    44      * @see WP_Widget::widget() for description of parameters.
    45      *
    46      * @param array $args     Widget arguments.
    47      * @param array $instance Widget settings, as saved by the user.
    48      */
    49     public function widget( $args, $instance ) {
    50 
    51         $title = ! empty( $instance['title'] )
    52             ? esc_html( $instance['title'] )
    53             : __( 'Recent Networkwide Posts', 'buddypress' );
    54 
    55         if ( ! empty( $instance['link_title'] ) ) {
    56             $title = '<a href="' . bp_get_blogs_directory_permalink() . '">' . esc_html( $title ) . '</a>';
    57         }
    58 
    59         /**
    60          * Filters the Blogs Recent Posts widget title.
    61          *
    62          * @since 2.2.0
    63          * @since 2.3.0 Added 'instance' and 'id_base' to arguments passed to filter.
    64          *
    65          * @param string $title    The widget title.
    66          * @param array  $instance The settings for the particular instance of the widget.
    67          * @param string $id_base  Root ID for all widgets of this type.
    68          */
    69         $title = apply_filters( 'widget_title', $title, $instance, $this->id_base );
    70 
    71         echo $args['before_widget'];
    72         echo $args['before_title'] . $title . $args['after_title'];
    73 
    74         if ( empty( $instance['max_posts'] ) || empty( $instance['max_posts'] ) ) {
    75             $instance['max_posts'] = 10;
    76         }
    77 
    78         $after_widget = $args['after_widget'];
    79 
    80         // Override some of the contextually set parameters for bp_has_activities().
    81         $args = array(
    82             'action'     => 'new_blog_post',
    83             'max'        => $instance['max_posts'],
    84             'per_page'   => $instance['max_posts'],
    85             'user_id'    => 0,
    86             'scope'      => false,
    87             'object'     => false,
    88             'primary_id' => false
    89         ); ?>
    90 
    91         <?php if ( bp_has_activities( $args ) ) : ?>
    92 
    93             <ul id="blog-post-list" class="activity-list item-list">
    94 
    95                 <?php while ( bp_activities() ) : bp_the_activity(); ?>
    96 
    97                     <li>
    98                         <div class="activity-content" style="margin: 0">
    99                             <div class="activity-header"><?php bp_activity_action(); ?></div>
    100 
    101                             <?php if ( bp_get_activity_content_body() ) : ?>
    102 
    103                                 <div class="activity-inner"><?php bp_activity_content_body(); ?></div>
    104 
    105                             <?php endif; ?>
    106 
    107                         </div>
    108                     </li>
    109 
    110                 <?php endwhile; ?>
    111 
    112             </ul>
    113 
    114         <?php else : ?>
    115 
    116             <div id="message" class="info">
    117                 <p><?php _e( 'Sorry, there were no posts found. Why not write one?', 'buddypress' ); ?></p>
    118             </div>
    119 
    120         <?php endif; ?>
    121 
    122         <?php echo $after_widget; ?>
    123     <?php
    124     }
    125 
    126     /**
    127      * Update the networkwide posts widget options.
    128      *
    129      * @param array $new_instance The new instance options.
    130      * @param array $old_instance The old instance options.
    131      * @return array $instance The parsed options to be saved.
    132      */
    133     public function update( $new_instance, $old_instance ) {
    134         $instance               = $old_instance;
    135         $instance['title']      = strip_tags( $new_instance['title'] );
    136         $instance['max_posts']  = strip_tags( $new_instance['max_posts'] );
    137         $instance['link_title'] = (bool) $new_instance['link_title'];
    138 
    139         return $instance;
    140     }
    141 
    142     /**
    143      * Output the networkwide posts widget options form.
    144      *
    145      * @param array $instance Settings for this widget.
    146      *
    147      * @return void
    148      */
    149     public function form( $instance ) {
    150         $instance = wp_parse_args( (array) $instance, array(
    151             'title'      => __( 'Recent Networkwide Posts', 'buddypress' ),
    152             'max_posts'  => 10,
    153             'link_title' => false,
    154         ) );
    155 
    156         $title      = strip_tags( $instance['title'] );
    157         $max_posts  = strip_tags( $instance['max_posts'] );
    158         $link_title = (bool) $instance['link_title'];
    159 
    160         ?>
    161 
    162         <p><label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _ex( 'Title:', 'Label for the Title field of the Recent Networkwide Posts widget', 'buddypress' ); ?> <input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>" style="width: 100%;" /></label></p>
    163         <p><label for="<?php echo $this->get_field_id( 'link_title' ); ?>"><input type="checkbox" name="<?php echo $this->get_field_name( 'link_title' ); ?>" value="1" <?php checked( $link_title ); ?> /> <?php _e( 'Link widget title to Blogs directory', 'buddypress' ); ?></label></p>
    164         <p><label for="<?php echo $this->get_field_id( 'max_posts' ); ?>"><?php _e( 'Max posts to show:', 'buddypress' ); ?> <input class="widefat" id="<?php echo $this->get_field_id( 'max_posts' ); ?>" name="<?php echo $this->get_field_name( 'max_posts' ); ?>" type="text" value="<?php echo esc_attr( $max_posts ); ?>" style="width: 30%" /></label></p>
    165         <?php
    166     }
    167 }
Note: See TracChangeset for help on using the changeset viewer.