Skip to:
Content

BuddyPress.org

Changeset 9726


Ignore:
Timestamp:
04/09/2015 07:25:22 PM (11 years ago)
Author:
johnjamesjacoby
Message:

Members: Improvements to BP_Core_Recently_Active_Widget

  • Escape gettext output
  • Add missing semicolons after PHP execution
  • Introduce parse_settings() method for setting smart default values
  • Remove extract() usages
  • Code formatting improvements

Fixes #6363.

File:
1 edited

Legend:

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

    r9725 r9726  
    5656         * @see WP_Widget::widget() for description of parameters.
    5757         *
    58          * @param array $args Widget arguments.
     58         * @param array $args     Widget arguments.
    5959         * @param array $instance Widget settings, as saved by the user.
    6060         */
     
    153153         * Update the Members widget options.
    154154         *
    155          * @param array $new_instance The new instance options.
    156          * @param array $old_instance The old instance options.
    157          * @return array $instance The parsed options to be saved.
     155         * @param  array $new_instance The new instance options.
     156         * @param  array $old_instance The old instance options.
     157         * @return array $instance     The parsed options to be saved.
    158158         */
    159159        public function update( $new_instance, $old_instance ) {
     
    258258         * @see WP_Widget::widget() for description of parameters.
    259259         *
    260          * @param array $args Widget arguments.
     260         * @param array $args     Widget arguments.
    261261         * @param array $instance Widget settings, as saved by the user.
    262262         */
     
    321321         * Update the Who's Online widget options.
    322322         *
    323          * @param array $new_instance The new instance options.
    324          * @param array $old_instance The old instance options.
    325          * @return array $instance The parsed options to be saved.
     323         * @param  array $new_instance The new instance options.
     324         * @param  array $old_instance The old instance options.
     325         * @return array $instance     The parsed options to be saved.
    326326         */
    327327        public function update( $new_instance, $old_instance ) {
     
    388388         * Constructor method.
    389389         */
    390         function __construct() {
    391                 $widget_ops = array(
    392                         'description' => __( 'Profile photos of recently active members', 'buddypress' ),
    393                         'classname' => 'widget_bp_core_recently_active_widget buddypress widget',
    394                 );
    395                 parent::__construct( false, $name = _x( '(BuddyPress) Recently Active Members', 'widget name', 'buddypress' ), $widget_ops );
     390        public function __construct() {
     391                $name        = _x( '(BuddyPress) Recently Active Members', 'widget name', 'buddypress' );
     392                $description = __( 'Profile photos of recently active members', 'buddypress' );
     393                parent::__construct( false, $name, array(
     394                        'description' => $description,
     395                        'classname'   => 'widget_bp_core_recently_active_widget buddypress widget',
     396                ) );
    396397        }
    397398
     
    401402         * @see WP_Widget::widget() for description of parameters.
    402403         *
    403          * @param array $args Widget arguments.
     404         * @param array $args     Widget arguments.
    404405         * @param array $instance Widget settings, as saved by the user.
    405406         */
    406         function widget( $args, $instance ) {
    407 
    408                 extract( $args );
     407        public function widget( $args, $instance ) {
     408
     409                // Get widget settings
     410                $settings = $this->parse_settings( $instance );
    409411
    410412                /**
     
    415417                 *
    416418                 * @param string $title    The widget title.
    417                  * @param array  $instance The settings for the particular instance of the widget.
     419                 * @param array  $settings The settings for the particular instance of the widget.
    418420                 * @param string $id_base  Root ID for all widgets of this type.
    419421                 */
    420                 $title = apply_filters( 'widget_title', $instance['title'], $instance, $this->id_base );
    421 
    422                 echo $before_widget;
    423                 echo $before_title
     422                $title = apply_filters( 'widget_title', $settings['title'], $settings, $this->id_base );
     423
     424                echo $args['before_widget'];
     425                echo $args['before_title']
    424426                   . $title
    425                    . $after_title;
    426 
     427                   . $args['after_title'];
     428
     429                // Setup args for querying members
    427430                $members_args = array(
    428431                        'user_id'         => 0,
    429432                        'type'            => 'active',
    430                         'per_page'        => $instance['max_members'],
    431                         'max'             => $instance['max_members'],
     433                        'per_page'        => $settings['max_members'],
     434                        'max'             => $settings['max_members'],
    432435                        'populate_extras' => true,
    433436                        'search_terms'    => false,
    434                 );
    435 
    436                 ?>
     437                ); ?>
    437438
    438439                <?php if ( bp_has_members( $members_args ) ) : ?>
     440
    439441                        <div class="avatar-block">
     442
    440443                                <?php while ( bp_members() ) : bp_the_member(); ?>
     444
    441445                                        <div class="item-avatar">
    442                                                 <a href="<?php bp_member_permalink() ?>" title="<?php bp_member_name() ?>"><?php bp_member_avatar() ?></a>
     446                                                <a href="<?php bp_member_permalink(); ?>" title="<?php bp_member_name(); ?>"><?php bp_member_avatar(); ?></a>
    443447                                        </div>
     448
    444449                                <?php endwhile; ?>
     450
    445451                        </div>
     452
    446453                <?php else: ?>
    447454
    448455                        <div class="widget-error">
    449                                 <?php _e( 'There are no recently active members', 'buddypress' ) ?>
     456                                <?php esc_html_e( 'There are no recently active members', 'buddypress' ); ?>
    450457                        </div>
    451458
    452459                <?php endif; ?>
    453460
    454                 <?php echo $after_widget; ?>
    455         <?php
     461                <?php echo $args['after_widget'];
    456462        }
    457463
     
    463469         * @return array $instance The parsed options to be saved.
    464470         */
    465         function update( $new_instance, $old_instance ) {
    466                 $instance = $old_instance;
    467                 $instance['title'] = strip_tags( $new_instance['title'] );
     471        public function update( $new_instance, $old_instance ) {
     472                $instance                = $old_instance;
     473                $instance['title']       = strip_tags( $new_instance['title'] );
    468474                $instance['max_members'] = strip_tags( $new_instance['max_members'] );
    469475
     
    476482         * @param $instance Settings for this widget.
    477483         */
    478         function form( $instance ) {
    479                 $defaults = array(
    480                         'title' => __( 'Recently Active Members', 'buddypress' ),
    481                         'max_members' => 15
    482                 );
    483                 $instance = wp_parse_args( (array) $instance, $defaults );
    484 
    485                 $title = strip_tags( $instance['title'] );
    486                 $max_members = strip_tags( $instance['max_members'] );
    487                 ?>
    488 
    489                 <p><label for="bp-core-widget-members-title"><?php _e('Title:', '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>
    490 
    491                 <p><label for="bp-core-widget-members-max"><?php _e('Max Members to show:', 'buddypress'); ?> <input class="widefat" id="<?php echo $this->get_field_id( 'max_members' ); ?>" name="<?php echo $this->get_field_name( 'max_members' ); ?>" type="text" value="<?php echo esc_attr( $max_members ); ?>" style="width: 30%" /></label></p>
     484        public function form( $instance ) {
     485
     486                // Get widget settings
     487                $settings    = $this->parse_settings( $instance );
     488                $title       = strip_tags( $settings['title'] );
     489                $max_members = strip_tags( $settings['max_members'] ); ?>
     490
     491                <p>
     492                        <label for="bp-core-widget-members-title">
     493                                <?php esc_html_e( 'Title:', 'buddypress' ); ?>
     494                                <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%" />
     495                        </label>
     496                </p>
     497
     498                <p>
     499                        <label for="bp-core-widget-members-max">
     500                                <?php esc_html_e( 'Max Members to show:', 'buddypress' ); ?>
     501                                <input class="widefat" id="<?php echo $this->get_field_id( 'max_members' ); ?>" name="<?php echo $this->get_field_name( 'max_members' ); ?>" type="text" value="<?php echo esc_attr( $max_members ); ?>" style="width: 30%" />
     502                        </label>
     503                </p>
     504
    492505        <?php
     506        }
     507
     508        /**
     509         * Merge the widget settings into defaults array.
     510         *
     511         * @since BuddyPress (2.3.0)
     512         *
     513         * @param $instance Instance
     514         * @uses bp_parse_args() To merge widget settings into defaults
     515         */
     516        public function parse_settings( $instance = array() ) {
     517                return bp_parse_args( $instance, array(
     518                        'title'              => __( 'Recently Active Members', 'buddypress' ),
     519                        'max_members'    => 15,
     520                ), 'recently_active_members_widget_settings' );
    493521        }
    494522}
Note: See TracChangeset for help on using the changeset viewer.