Skip to:
Content

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

File group-member-friend-widget.patch, 17.4 KB (added by mchansy, 15 months 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}