Skip to:
Content

BuddyPress.org

Ticket #7312: group-member-friend-widget.patch

File group-member-friend-widget.patch, 17.4 KB (added by mchansy, 8 years ago)

Patch the group, members and friend widget

  • bp-friends/bp-friends-widgets.php

     
    4646
    4747        check_ajax_referer( 'bp_core_widget_friends' );
    4848
    49         switch ( $_POST['filter'] ) {
     49        switch ( $_POST['filter'] ) {           
     50                case 'alphabetical-friends':
     51                        $type = 'alphabetical';
     52                        break;
     53
    5054                case 'newest-friends':
    5155                        $type = 'newest';
    5256                        break;
  • bp-friends/classes/class-bp-core-friends-widget.php

     
    9494                        'max'             => absint( $instance['max_friends'] ),
    9595                        'populate_extras' => 1,
    9696                );
    97 
     97                $show_sort = ! empty( $instance['show_sort'] ) ? true : (bool)$instance['show_sort'];
     98                $show_meta = ! empty( $instance['show_meta'] ) ? true : (bool)$instance['show_meta'];
     99               
    98100                // Back up the global.
    99101                $old_members_template = $members_template;
    100102
     
    101103                ?>
    102104
    103105                <?php if ( bp_has_members( $members_args ) ) : ?>
     106                        <?php if ( $show_sort ) : ?>
    104107                        <div class="item-options" id="friends-list-options">
    105108                                <a href="<?php bp_members_directory_permalink(); ?>" id="newest-friends" <?php if ( $instance['friend_default'] == 'newest' ) : ?>class="selected"<?php endif; ?>><?php _e( 'Newest', 'buddypress' ); ?></a>
    106109                                | <a href="<?php bp_members_directory_permalink(); ?>" id="recently-active-friends" <?php if ( $instance['friend_default'] == 'active' ) : ?>class="selected"<?php endif; ?>><?php _e( 'Active', 'buddypress' ); ?></a>
    107110                                | <a href="<?php bp_members_directory_permalink(); ?>" id="popular-friends" <?php if ( $instance['friend_default'] == 'popular' ) : ?>class="selected"<?php endif; ?>><?php _e( 'Popular', 'buddypress' ); ?></a>
     111                                | <a href="<?php bp_members_directory_permalink(); ?>" id="alphabetical-friends" <?php if ( $instance['friend_default'] == 'alphabetical' ) : ?>class="selected"<?php endif; ?>><?php _e( 'Alphabetical', 'buddypress' ); ?></a>
    108112                        </div>
     113                        <?php endif; ?>
    109114
    110115                        <ul id="friends-list" class="item-list">
    111116                                <?php while ( bp_members() ) : bp_the_member(); ?>
     
    116121
    117122                                                <div class="item">
    118123                                                        <div class="item-title fn"><a href="<?php bp_member_permalink(); ?>" title="<?php bp_member_name(); ?>"><?php bp_member_name(); ?></a></div>
     124                                                        <?php if ($show_meta) : ?>
    119125                                                        <div class="item-meta">
    120126                                                                <?php if ( 'newest' == $instance['friend_default'] ) : ?>
    121127                                                                        <span class="activity" data-livestamp="<?php bp_core_iso8601_date( bp_get_member_registered( array( 'relative' => false ) ) ); ?>"><?php bp_member_registered(); ?></span>
     
    125131                                                                        <span class="activity"><?php bp_member_total_friend_count(); ?></span>
    126132                                                                <?php endif; ?>
    127133                                                        </div>
     134                                                        <?php endif; ?>
    128135                                                </div>
    129136                                        </li>
    130137
     
    162169                $instance['max_friends']    = absint( $new_instance['max_friends'] );
    163170                $instance['friend_default'] = sanitize_text_field( $new_instance['friend_default'] );
    164171                $instance['link_title']     = (bool) $new_instance['link_title'];
    165 
     172                $instance['show_sort']      = (bool) $new_instance['show_sort'];
     173                $instance['show_meta']      = (bool) $new_instance['show_meta'];
    166174                return $instance;
    167175        }
    168176
     
    178186                $defaults = array(
    179187                        'max_friends'    => 5,
    180188                        'friend_default' => 'active',
    181                         'link_title'     => false
     189                        'link_title'    => false,
     190                        'show_sort'             => true,
     191                        'show_meta'             => true
    182192                );
    183193                $instance = wp_parse_args( (array) $instance, $defaults );
    184194
     
    185195                $max_friends    = $instance['max_friends'];
    186196                $friend_default = $instance['friend_default'];
    187197                $link_title     = (bool) $instance['link_title'];
     198                $show_sort      = (bool) $instance['show_sort'];
     199                $show_meta      = (bool) $instance['show_meta'];
    188200                ?>
    189201
    190202                <p><label for="<?php echo $this->get_field_id( 'link_title' ); ?>"><input type="checkbox" name="<?php echo $this->get_field_name('link_title'); ?>" id="<?php echo $this->get_field_id( 'link_title' ); ?>" value="1" <?php checked( $link_title ); ?> /> <?php _e( 'Link widget title to Members directory', 'buddypress' ); ?></label></p>
     
    196208                        <select name="<?php echo $this->get_field_name( 'friend_default' ); ?>" id="<?php echo $this->get_field_id( 'friend_default' ); ?>">
    197209                                <option value="newest" <?php selected( $friend_default, 'newest' ); ?>><?php _e( 'Newest', 'buddypress' ); ?></option>
    198210                                <option value="active" <?php selected( $friend_default, 'active' );?>><?php _e( 'Active', 'buddypress' ); ?></option>
    199                                 <option value="popular"  <?php selected( $friend_default, 'popular' ); ?>><?php _e( 'Popular', 'buddypress' ); ?></option>
     211                                <option value="popular" <?php selected( $friend_default, 'popular' ); ?>><?php _e( 'Popular', 'buddypress' ); ?></option>
     212                                <option value="alphabetical" <?php selected( $friend_default, 'alphabetical' ); ?>><?php _e( 'Alphabetical', 'buddypress' ); ?></option>
    200213                        </select>
    201214                </p>
     215                <p><label for="<?php echo $this->get_field_id('show_sort') ?>"><input type="checkbox" name="<?php echo $this->get_field_name('show_sort') ?>" id="<?php echo $this->get_field_id('show_sort') ?>" value="1" <?php checked( $show_sort ) ?> /> <?php _e( 'Show the sorting of the friends', 'buddypress' ) ?></label></p>
     216                <p><label for="<?php echo $this->get_field_id('show_meta') ?>"><input type="checkbox" name="<?php echo $this->get_field_name('show_meta') ?>" id="<?php echo $this->get_field_id('show_meta') ?>" value="1" <?php checked( $show_meta ) ?> /> <?php _e( 'Show the meta information of the friends', 'buddypress' ) ?></label></p>
    202217
    203218        <?php
    204219        }
  • bp-groups/bp-groups-widgets.php

     
    3434        check_ajax_referer( 'groups_widget_groups_list' );
    3535
    3636        switch ( $_POST['filter'] ) {
     37                case 'alphabetical-groups':
     38                        $type = 'alphabetical';
     39                break;
    3740                case 'newest-groups':
    3841                        $type = 'newest';
    3942                break;
  • bp-groups/classes/class-bp-groups-widget.php

     
    110110                        'per_page'        => $max_groups,
    111111                        'max'             => $max_groups,
    112112                );
     113                $show_groupsort = ! empty( $instance['show_groupsort'] ) ? true : (bool)$instance['show_groupsort'];
     114                $show_meta = ! empty( $instance['show_meta'] ) ? true : (bool)$instance['show_meta'];
    113115
    114116                // Back up the global.
    115117                $old_groups_template = $groups_template;
     
    117119                ?>
    118120
    119121                <?php if ( bp_has_groups( $group_args ) ) : ?>
     122                        <?php if ( $show_groupsort ) : ?>
    120123                        <div class="item-options" id="groups-list-options">
    121124                                <a href="<?php bp_groups_directory_permalink(); ?>" id="newest-groups"<?php if ( $instance['group_default'] == 'newest' ) : ?> class="selected"<?php endif; ?>><?php _e("Newest", 'buddypress') ?></a>
    122125                                <span class="bp-separator" role="separator"><?php echo esc_html( $separator ); ?></span>
     
    123126                                <a href="<?php bp_groups_directory_permalink(); ?>" id="recently-active-groups"<?php if ( $instance['group_default'] == 'active' ) : ?> class="selected"<?php endif; ?>><?php _e("Active", 'buddypress') ?></a>
    124127                                <span class="bp-separator" role="separator"><?php echo esc_html( $separator ); ?></span>
    125128                                <a href="<?php bp_groups_directory_permalink(); ?>" id="popular-groups" <?php if ( $instance['group_default'] == 'popular' ) : ?> class="selected"<?php endif; ?>><?php _e("Popular", 'buddypress') ?></a>
     129                                <span class="bp-separator" role="separator"><?php echo esc_html( $separator ); ?></span>
     130                                <a href="<?php bp_groups_directory_permalink(); ?>" id="alphabetical-groups" <?php if ( $instance['group_default'] == 'alphabetical' ) : ?> class="selected"<?php endif; ?>><?php _e("Alphabetical", 'buddypress') ?></a>
    126131                        </div>
     132                        <?php endif; ?>
    127133
    128134                        <ul id="groups-list" class="item-list" aria-live="polite" aria-relevant="all" aria-atomic="true">
    129135                                <?php while ( bp_groups() ) : bp_the_group(); ?>
     
    134140
    135141                                                <div class="item">
    136142                                                        <div class="item-title"><a href="<?php bp_group_permalink() ?>" title="<?php bp_group_name() ?>"><?php bp_group_name() ?></a></div>
     143                                                        <?php if ($show_meta) : ?>
    137144                                                        <div class="item-meta">
    138145                                                                <span class="activity">
    139146                                                                <?php
     
    147154                                                                ?>
    148155                                                                </span>
    149156                                                        </div>
     157                                                        <?php endif; ?>
    150158                                                </div>
    151159                                        </li>
    152160
     
    185193                $instance['max_groups']    = strip_tags( $new_instance['max_groups'] );
    186194                $instance['group_default'] = strip_tags( $new_instance['group_default'] );
    187195                $instance['link_title']    = (bool) $new_instance['link_title'];
    188 
     196                $instance['show_groupsort']= (bool) $new_instance['show_groupsort'];
     197                $instance['show_meta']     = (bool) $new_instance['show_meta'];
     198               
    189199                return $instance;
    190200        }
    191201
     
    202212                        'title'         => __( 'Groups', 'buddypress' ),
    203213                        'max_groups'    => 5,
    204214                        'group_default' => 'active',
    205                         'link_title'    => false
     215                        'link_title'    => false,
     216                        'show_groupsort'=> true,
     217                        'show_meta'     => true
    206218                );
    207219                $instance = wp_parse_args( (array) $instance, $defaults );
    208220
     
    210222                $max_groups    = strip_tags( $instance['max_groups'] );
    211223                $group_default = strip_tags( $instance['group_default'] );
    212224                $link_title    = (bool) $instance['link_title'];
     225                $show_groupsort = (bool) $instance['show_groupsort'];
     226                $show_meta     = (bool) $instance['show_meta'];
    213227                ?>
    214228
    215229                <p><label for="<?php echo $this->get_field_id( '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>
     
    223237                        <select name="<?php echo $this->get_field_name( 'group_default' ); ?>" id="<?php echo $this->get_field_id( 'group_default' ); ?>">
    224238                                <option value="newest" <?php selected( $group_default, 'newest' ); ?>><?php _e( 'Newest', 'buddypress' ) ?></option>
    225239                                <option value="active" <?php selected( $group_default, 'active' ); ?>><?php _e( 'Active', 'buddypress' ) ?></option>
    226                                 <option value="popular"  <?php selected( $group_default, 'popular' ); ?>><?php _e( 'Popular', 'buddypress' ) ?></option>
     240                                <option value="popular" <?php selected( $group_default, 'popular' ); ?>><?php _e( 'Popular', 'buddypress' ) ?></option>
     241                                <option value="alphabetical" <?php selected( $group_default, 'alphabetical' ); ?>><?php _e( 'Alphabetical', 'buddypress' ) ?></option>
    227242                        </select>
    228243                </p>
     244                <p><label for="<?php echo $this->get_field_id('show_groupsort') ?>"><input type="checkbox" name="<?php echo $this->get_field_name('show_groupsort') ?>" id="<?php echo $this->get_field_id('show_groupsort') ?>" value="1" <?php checked( $show_groupsort ) ?> /> <?php _e( 'Show the sorting of the groups', 'buddypress' ) ?></label></p>
     245                <p><label for="<?php echo $this->get_field_id('show_meta') ?>"><input type="checkbox" name="<?php echo $this->get_field_name('show_meta') ?>" id="<?php echo $this->get_field_id('show_meta') ?>" value="1" <?php checked( $show_meta ) ?> /> <?php _e( 'Show the meta information of the group', 'buddypress' ) ?></label></p>
    229246        <?php
    230247        }
    231248}
  • bp-members/bp-members-widgets.php

     
    4848        // Determine the type of members query to perform.
    4949        switch ( $filter ) {
    5050
     51                // Alphabetical activated.
     52                case 'alphabetical-members' :
     53                        $type = 'alphabetical';
     54                        break;
     55
    5156                // Newest activated.
    5257                case 'newest-members' :
    5358                        $type = 'newest';
  • bp-members/classes/class-bp-core-members-widget.php

     
    2626
    2727                // Setup widget name & description.
    2828                $name        = _x( '(BuddyPress) Members', 'widget name', 'buddypress' );
    29                 $description = __( 'A dynamic list of recently active, popular, and newest members', 'buddypress' );
     29                $description = __( 'A dynamic list of recently alphabetical, active, popular, and newest members', 'buddypress' );
    3030
    3131                // Call WP_Widget constructor.
    3232                parent::__construct( false, $name, array(
     
    9999                        'populate_extras' => true,
    100100                        'search_terms'    => false,
    101101                );
     102                $show_sort = ! empty( $instance['show_sort'] ) ? true : (bool)$instance['show_sort'];
     103                $show_meta = ! empty( $instance['show_meta'] ) ? true : (bool)$instance['show_meta'];
    102104
    103105                // Back up the global.
    104106                $old_members_template = $members_template;
     
    106108                ?>
    107109
    108110                <?php if ( bp_has_members( $members_args ) ) : ?>
    109 
     111                        <?php if ( $show_sort ) : ?>
    110112                        <div class="item-options" id="members-list-options">
    111113                                <a href="<?php bp_members_directory_permalink(); ?>" id="newest-members" <?php if ( 'newest' === $settings['member_default'] ) : ?>class="selected"<?php endif; ?>><?php esc_html_e( 'Newest', 'buddypress' ); ?></a>
    112114                                <span class="bp-separator" role="separator"><?php echo esc_html( $separator ); ?></span>
     
    117119                                        <a href="<?php bp_members_directory_permalink(); ?>" id="popular-members" <?php if ( 'popular' === $settings['member_default'] ) : ?>class="selected"<?php endif; ?>><?php esc_html_e( 'Popular', 'buddypress' ); ?></a>
    118120
    119121                                <?php endif; ?>
    120 
     122                               
     123                                <span class="bp-separator" role="separator"><?php echo esc_html( $separator ); ?></span>
     124                                <a href="<?php bp_members_directory_permalink(); ?>" id="alphabetical-members" <?php if ( 'alphabetical' === $settings['member_default'] ) : ?>class="selected"<?php endif; ?>><?php esc_html_e( 'Alphabetical', 'buddypress' ); ?></a>
    121125                        </div>
    122 
     126                        <?php endif; ?>
     127                       
    123128                        <ul id="members-list" class="item-list" aria-live="polite" aria-relevant="all" aria-atomic="true">
    124129
    125130                                <?php while ( bp_members() ) : bp_the_member(); ?>
     
    131136
    132137                                                <div class="item">
    133138                                                        <div class="item-title fn"><a href="<?php bp_member_permalink(); ?>" title="<?php bp_member_name(); ?>"><?php bp_member_name(); ?></a></div>
     139                                                        <?php if ($show_meta) : ?>
    134140                                                        <div class="item-meta">
    135141                                                                <?php if ( 'newest' == $settings['member_default'] ) : ?>
    136142                                                                        <span class="activity" data-livestamp="<?php bp_core_iso8601_date( bp_get_member_registered( array( 'relative' => false ) ) ); ?>"><?php bp_member_registered(); ?></span>
     
    140146                                                                        <span class="activity"><?php bp_member_total_friend_count(); ?></span>
    141147                                                                <?php endif; ?>
    142148                                                        </div>
     149                                                        <?php endif; ?>
    143150                                                </div>
    144151                                        </li>
    145152
     
    181188                $instance['max_members']    = strip_tags( $new_instance['max_members'] );
    182189                $instance['member_default'] = strip_tags( $new_instance['member_default'] );
    183190                $instance['link_title']     = (bool) $new_instance['link_title'];
     191                $instance['show_sort']      = (bool) $new_instance['show_sort'];
     192                $instance['show_meta']      = (bool) $new_instance['show_meta'];
    184193
    185194                return $instance;
    186195        }
     
    200209                $title          = strip_tags( $settings['title'] );
    201210                $max_members    = strip_tags( $settings['max_members'] );
    202211                $member_default = strip_tags( $settings['member_default'] );
    203                 $link_title     = (bool) $settings['link_title']; ?>
     212                $link_title     = (bool) $settings['link_title'];
     213                $show_sort = (bool) $instance['show_sort'];
     214                $show_meta      = (bool) $instance['show_meta']; ?>
    204215
    205216                <p>
    206217                        <label for="<?php echo $this->get_field_id( 'title' ); ?>">
     
    229240                                <option value="newest"  <?php if ( 'newest'  === $member_default ) : ?>selected="selected"<?php endif; ?>><?php esc_html_e( 'Newest',  'buddypress' ); ?></option>
    230241                                <option value="active"  <?php if ( 'active'  === $member_default ) : ?>selected="selected"<?php endif; ?>><?php esc_html_e( 'Active',  'buddypress' ); ?></option>
    231242                                <option value="popular" <?php if ( 'popular' === $member_default ) : ?>selected="selected"<?php endif; ?>><?php esc_html_e( 'Popular', 'buddypress' ); ?></option>
     243                                <option value="alphabetical" <?php if ( 'alphabetical' === $member_default ) : ?>selected="selected"<?php endif; ?>><?php esc_html_e( 'Alphabetical', 'buddypress' ); ?></option>
    232244                        </select>
    233245                </p>
     246                <p><label for="<?php echo $this->get_field_id('show_sort') ?>"><input type="checkbox" name="<?php echo $this->get_field_name('show_sort') ?>" id="<?php echo $this->get_field_id('show_sort') ?>" value="1" <?php checked( $show_sort ) ?> /> <?php _e( 'Show the sorting of the members', 'buddypress' ) ?></label></p>
     247                <p><label for="<?php echo $this->get_field_id('show_meta') ?>"><input type="checkbox" name="<?php echo $this->get_field_name('show_meta') ?>" id="<?php echo $this->get_field_id('show_meta') ?>" value="1" <?php checked( $show_meta ) ?> /> <?php _e( 'Show the meta information of the members', 'buddypress' ) ?></label></p>
    234248
    235249        <?php
    236250        }
     
    249263                        'title'              => __( 'Members', 'buddypress' ),
    250264                        'max_members'    => 5,
    251265                        'member_default' => 'active',
    252                         'link_title'     => false
     266                        'link_title'     => false,
     267                        'show_sort' => true,
     268                        'show_meta'      => true
    253269                ), 'members_widget_settings' );
    254270        }
    255271}