Skip to:
Content

BuddyPress.org

Ticket #921: 921.05.template.diff

File 921.05.template.diff, 12.2 KB (added by boonebgorges, 11 years ago)
  • bp-groups/bp-groups-template.php

    diff --git bp-groups/bp-groups-template.php bp-groups/bp-groups-template.php
    index 6850194..e755670 100644
    class BP_Groups_Group_Members_Template { 
    19911991                $this->pag_page = isset( $_REQUEST['mlpage'] ) ? intval( $_REQUEST['mlpage'] ) : $r['page'];
    19921992                $this->pag_num  = isset( $_REQUEST['num'] ) ? intval( $_REQUEST['num'] ) : $per_page;
    19931993
     1994                /**
     1995                 * In themes, If 'groups/single/home' template has been updated
     1996                 * but not 'groups/single/members', it prevents the pagination
     1997                 * url to be messed up with admin-ajax.
     1998                 */
     1999                $base_url = trailingslashit( bp_get_group_permalink( groups_get_current_group() ) . bp_current_action() );
     2000
     2001                if ( bp_action_variable() ) {
     2002                        $base_url = trailingslashit( $base_url . bp_action_variable() );
     2003                }
     2004
    19942005                $members_args = $r;
    19952006
    19962007                $members_args['page']     = $this->pag_page;
    class BP_Groups_Group_Members_Template { 
    20152026                }
    20162027
    20172028                $this->pag_links = paginate_links( array(
    2018                         'base' => add_query_arg( 'mlpage', '%#%' ),
     2029                        'base' => add_query_arg( array( 'mlpage' => '%#%' ), $base_url ),
    20192030                        'format' => '',
    20202031                        'total' => !empty( $this->pag_num ) ? ceil( $this->total_member_count / $this->pag_num ) : $this->total_member_count,
    20212032                        'current' => $this->pag_page,
    class BP_Groups_Group_Members_Template { 
    20952106function bp_group_has_members( $args = '' ) {
    20962107        global $members_template;
    20972108
     2109        $exclude_admins_mods = 1;
     2110
     2111        if ( bp_is_group_members() ) {
     2112                $exclude_admins_mods = 0;
     2113        }
     2114
    20982115        $r = wp_parse_args( $args, array(
    20992116                'group_id'            => bp_get_current_group_id(),
    21002117                'page'                => 1,
    21012118                'per_page'            => 20,
    21022119                'max'                 => false,
    21032120                'exclude'             => false,
    2104                 'exclude_admins_mods' => 1,
     2121                'exclude_admins_mods' => $exclude_admins_mods,
    21052122                'exclude_banned'      => 1,
    21062123                'group_role'          => false,
    21072124                'search_terms'        => false,
    function bp_group_member_admin_pagination() { 
    22872304                return $members_template->pag_links;
    22882305        }
    22892306
     2307/**
     2308 * Output the Group members template
     2309 *
     2310 * @since BuddyPress (?)
     2311 *
     2312 * @return string html output
     2313 */
     2314function bp_groups_members_template_part() {
     2315        ?>
     2316        <div class="item-list-tabs" id="subnav" role="navigation">
     2317                <ul>
     2318                        <li class="groups-members-search" role="search">
     2319                                <?php bp_directory_members_search_form(); ?>
     2320                        </li>
     2321
     2322                        <?php bp_groups_members_filter(); ?>
     2323                        <?php do_action( 'bp_members_directory_member_sub_types' ); ?>
     2324
     2325                </ul>
     2326        </div>
     2327
     2328        <div id="members-group-list" class="group_members dir-list">
     2329
     2330                <?php bp_get_template_part( 'groups/single/members' ); ?>
     2331
     2332        </div>
     2333        <?php
     2334}
     2335
     2336/**
     2337 * Output the Group members filters
     2338 *
     2339 * @since BuddyPress (?)
     2340 *
     2341 * @return string html output
     2342 */
     2343function bp_groups_members_filter() {
     2344        ?>
     2345        <li id="group_members-order-select" class="last filter">
     2346                <label for="group_members-order-by"><?php _e( 'Order By:', 'buddypress' ); ?></label>
     2347                <select id="group_members-order-by">
     2348                        <option value="last_joined"><?php _e( 'Newest', 'buddypress' ); ?></option>
     2349                        <option value="first_joined"><?php _e( 'Oldest', 'buddypress' ); ?></option>
     2350                        <option value="alphabetical"><?php _e( 'Alphabetical', 'buddypress' ); ?></option>
     2351
     2352                        <?php do_action( 'bp_groups_members_order_options' ); ?>
     2353
     2354                </select>
     2355        </li>
     2356        <?php
     2357}
    22902358
    22912359/***************************************************************************
    22922360 * Group Creation Process Template Tags
  • bp-templates/bp-legacy/buddypress-functions.php

    diff --git bp-templates/bp-legacy/buddypress-functions.php bp-templates/bp-legacy/buddypress-functions.php
    index 0cb3153..2f15976 100644
    function bp_legacy_theme_object_template_loader() { 
    541541        if ( ! bp_current_action() )
    542542                bp_update_is_directory( true, bp_current_component() );
    543543
     544        $template_part = $object . '/' . $object . '-loop';
     545
     546        if ( ! empty( $_POST['template'] ) )
     547                $template_part = sanitize_option( 'upload_path', $_POST['template'] );
     548
    544549        // Locate the object template
    545         bp_get_template_part( "$object/$object-loop" );
     550        bp_get_template_part( $template_part );
    546551        exit();
    547552}
    548553
  • bp-templates/bp-legacy/buddypress/groups/single/home.php

    diff --git bp-templates/bp-legacy/buddypress/groups/single/home.php bp-templates/bp-legacy/buddypress/groups/single/home.php
    index 55dd5b0..8499866 100644
     
    4747                                elseif ( bp_is_active( 'activity' ) ) : bp_get_template_part( 'groups/single/activity' );
    4848
    4949                                // Otherwise show members
    50                                 elseif ( bp_is_active( 'members'  ) ) : bp_get_template_part( 'groups/single/members'  );
     50                                elseif ( bp_is_active( 'members'  ) ) : bp_groups_members_template_part();
    5151
    5252                                endif;
    5353                               
     
    6161                                elseif ( bp_is_group_activity()   ) : bp_get_template_part( 'groups/single/activity'     );
    6262
    6363                                // Group Members
    64                                 elseif ( bp_is_group_members()    ) : bp_get_template_part( 'groups/single/members'      );
     64                                elseif ( bp_is_group_members()    ) : bp_groups_members_template_part();
    6565
    6666                                // Group Invitations
    6767                                elseif ( bp_is_group_invites()    ) : bp_get_template_part( 'groups/single/send-invites' );
  • bp-templates/bp-legacy/buddypress/groups/single/members.php

    diff --git bp-templates/bp-legacy/buddypress/groups/single/members.php bp-templates/bp-legacy/buddypress/groups/single/members.php
    index fb7b4e2..f1714a5 100644
     
    1 <?php if ( bp_group_has_members( 'exclude_admins_mods=0' ) ) : ?>
     1<?php if ( bp_group_has_members( bp_ajax_querystring( 'group_members' ) ) ) : ?>
    22
    33        <?php do_action( 'bp_before_group_members_content' ); ?>
    44
    5         <div class="item-list-tabs" id="subnav" role="navigation">
    6                 <ul>
    7 
    8                         <?php do_action( 'bp_members_directory_member_sub_types' ); ?>
    9 
    10                 </ul>
    11         </div>
    12 
    13         <div id="pag-top" class="pagination no-ajax">
     5        <div id="pag-top" class="pagination">
    146
    157                <div class="pag-count" id="member-count-top">
    168
     
    6355
    6456        <?php do_action( 'bp_after_group_members_list' ); ?>
    6557
    66         <div id="pag-bottom" class="pagination no-ajax">
     58        <div id="pag-bottom" class="pagination">
    6759
    6860                <div class="pag-count" id="member-count-bottom">
    6961
  • bp-templates/bp-legacy/css/buddypress.css

    diff --git bp-templates/bp-legacy/css/buddypress.css bp-templates/bp-legacy/css/buddypress.css
    index 81dd03f..995d650 100644
    body.activity-permalink #buddypress div.activity-comments div.acomment-content { 
    486486        float: right;
    487487        margin: -39px 0 0 0;
    488488}
    489 #buddypress div.dir-search input[type=text] {
     489#buddypress div.dir-search input[type=text],
     490#buddypress li.groups-members-search input[type=text] {
    490491        font-size: 90%;
    491492        padding: 1px 3px;
    492493}
    body.activity-permalink #buddypress div.activity-comments div.acomment-content { 
    581582#buddypress .standard-form select,
    582583#buddypress .standard-form input[type=password],
    583584#buddypress .dir-search input[type=search],
    584 #buddypress .dir-search input[type=text] {
     585#buddypress .dir-search input[type=text],
     586#buddypress .groups-members-search input[type=search],
     587#buddypress .groups-members-search input[type=text] {
    585588        border: 1px solid #ccc;
    586589        background: #fafafa;
    587590        border-radius: 0;
  • bp-templates/bp-legacy/js/buddypress.js

    diff --git bp-templates/bp-legacy/js/buddypress.js bp-templates/bp-legacy/js/buddypress.js
    index 350193e..562c734 100644
    jq(document).ready( function() { 
    1717        bp_init_activity();
    1818
    1919        /* Object filter and scope set. */
    20         var objects = [ 'members', 'groups', 'blogs', 'forums' ];
     20        var objects = [ 'members', 'groups', 'blogs', 'forums', 'group_members' ];
    2121        bp_init_objects( objects );
    2222
    2323        /* @mention Compose Scrolling */
    jq(document).ready( function() { 
    663663        /**** Directory Search ****************************************************/
    664664
    665665        /* The search form on all directory pages */
    666         jq('.dir-search').on( 'click', function(event) {
     666        jq('.dir-search, .groups-members-search').on( 'click', function(event) {
    667667                if ( jq(this).hasClass('no-ajax') )
    668668                        return;
    669669
    jq(document).ready( function() { 
    673673                        var css_id = jq('.item-list-tabs li.selected').attr('id').split( '-' );
    674674                        var object = css_id[0];
    675675
    676                         bp_filter_request( object, jq.cookie('bp-' + object + '-filter'), jq.cookie('bp-' + object + '-scope') , 'div.' + object, target.parent().children('label').children('input').val(), 1, jq.cookie('bp-' + object + '-extras') );
     676                        if ( 'members' == object && 'groups' == css_id[1] ) {
     677                                object = 'group_members';
     678                                var template = 'groups/single/members';
     679                        } else {
     680                                var template = null;
     681                        }
     682
     683                        bp_filter_request( object, jq.cookie('bp-' + object + '-filter'), jq.cookie('bp-' + object + '-scope') , 'div.' + object, target.parent().children('label').children('input').val(), 1, jq.cookie('bp-' + object + '-extras'), null, template );
    677684
    678685                        return false;
    679686                }
    jq(document).ready( function() { 
    721728                if ( jq('.dir-search input').length )
    722729                        search_terms = jq('.dir-search input').val();
    723730
     731                if ( jq( '.groups-members-search input' ).length )
     732                        search_terms = jq( '.groups-members-search input' ).val();
     733
     734                if ( 'members' == object && 'groups' == scope ) {
     735                        object = 'group_members';
     736                        var template = 'groups/single/members';
     737                } else {
     738                        var template = null;
     739                }
     740
    724741                if ( 'friends' == object )
    725742                        object = 'members';
    726743
    727                 bp_filter_request( object, filter, scope, 'div.' + object, search_terms, 1, jq.cookie('bp-' + object + '-extras') );
     744                bp_filter_request( object, filter, scope, 'div.' + object, search_terms, 1, jq.cookie('bp-' + object + '-extras'), null, template );
    728745
    729746                return false;
    730747        });
    jq(document).ready( function() { 
    754771                        if ( jq('div.dir-search input').length )
    755772                                search_terms = jq('.dir-search input').val();
    756773
     774                        if ( jq( '.groups-members-search input' ).length )
     775                                search_terms = jq( '.groups-members-search input' ).val();
     776
     777                        if ( 'members' == object && 'groups' == css_id[1] ) {
     778                                var object = 'group_members';
     779                                var template = 'groups/single/members';
     780                        } else {
     781                                var template = null;
     782                        }
     783
    757784                        if ( jq(target).hasClass('next') )
    758785                                var page_number = Number( jq('.pagination span.current').html() ) + 1;
    759786                        else if ( jq(target).hasClass('prev') )
    jq(document).ready( function() { 
    767794                                var caller = null;
    768795                        }
    769796
    770                         bp_filter_request( object, jq.cookie('bp-' + object + '-filter'), jq.cookie('bp-' + object + '-scope'), 'div.' + object, search_terms, page_number, jq.cookie('bp-' + object + '-extras'), caller );
     797                        bp_filter_request( object, jq.cookie('bp-' + object + '-filter'), jq.cookie('bp-' + object + '-scope'), 'div.' + object, search_terms, page_number, jq.cookie('bp-' + object + '-extras'), caller, template );
    771798
    772799                        return false;
    773800                }
    jq(document).ready( function() { 
    966993        });
    967994
    968995        /* Add / Remove friendship buttons */
    969         jq('#members-dir-list').on('click', '.friendship-button a', function() {
     996        jq( '#members-dir-list, #members-group-list' ).on('click', '.friendship-button a', function() {
    970997                jq(this).parent().addClass('loading');
    971998                var fid = jq(this).attr('id');
    972999                fid = fid.split('-');
    function bp_init_objects(objects) { 
    13831410}
    13841411
    13851412/* Filter the current content list (groups/members/blogs/topics) */
    1386 function bp_filter_request( object, filter, scope, target, search_terms, page, extras, caller ) {
     1413function bp_filter_request( object, filter, scope, target, search_terms, page, extras, caller, template ) {
    13871414        if ( 'activity' == object )
    13881415                return false;
    13891416
    function bp_filter_request( object, filter, scope, target, search_terms, page, e 
    14121439        jq('.item-list-tabs li.selected').addClass('loading');
    14131440        jq('.item-list-tabs select option[value="' + filter + '"]').prop( 'selected', true );
    14141441
    1415         if ( 'friends' == object )
     1442        if ( 'friends' == object || 'group_members' == object ) {
    14161443                object = 'members';
     1444        }
    14171445
    14181446        if ( bp_ajax_request )
    14191447                bp_ajax_request.abort();
    function bp_filter_request( object, filter, scope, target, search_terms, page, e 
    14261454                'search_terms': search_terms,
    14271455                'scope': scope,
    14281456                'page': page,
    1429                 'extras': extras
     1457                'extras': extras,
     1458                'template':template
    14301459        },
    14311460        function(response)
    14321461        {