Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
11/13/2012 07:12:07 AM (13 years ago)
Author:
johnjamesjacoby
Message:

Rework template loader logic in bp-default/groups/single/home.php.

  • Includes easier to understand and more concise template loader.
  • Opens the door to an improved template hierarchy here later.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bp-themes/bp-default/groups/single/home.php

    r5737 r6517  
    3030                <?php do_action( 'bp_before_group_body' );
    3131
    32                 if ( bp_is_group_admin_page() && bp_group_is_visible() ) :
    33                     locate_template( array( 'groups/single/admin.php' ), true );
     32                /**
     33                 * Does this next bit look familiar? If not, go check out WordPress's
     34                 * /wp-includes/template-loader.php file.
     35                 *
     36                 * @todo A real template hierarchy? Gasp!
     37                 */
    3438
    35                 elseif ( bp_is_group_members() && bp_group_is_visible() ) :
    36                     locate_template( array( 'groups/single/members.php' ), true );
     39                // Group is visible
     40                if ( bp_group_is_visible() ) :
    3741
    38                 elseif ( bp_is_group_invites() && bp_group_is_visible() ) :
    39                     locate_template( array( 'groups/single/send-invites.php' ), true );
     42                    // Looking at home location
     43                    if ( bp_is_group_home() ) :
    4044
    41                     elseif ( bp_is_group_forum() && bp_group_is_visible() && bp_is_active( 'forums' ) && bp_forums_is_installed_correctly() ) :
    42                         locate_template( array( 'groups/single/forum.php' ), true );
     45                        // Use custom front if one exists
     46                        $custom_front = locate_template( array( 'groups/single/front.php' ) );
     47                        if     ( ! empty( $custom_front   ) ) : load_template( $custom_front, true );
     48                       
     49                        // Default to activity
     50                        elseif ( bp_is_active( 'activity' ) ) : locate_template( array( 'groups/single/activity.php' ), true );
    4351
    44                 elseif ( bp_is_group_membership_request() ) :
    45                     locate_template( array( 'groups/single/request-membership.php' ), true );
     52                        // Otherwise show members
     53                        elseif ( bp_is_active( 'members'  ) ) : locate_template( array( 'groups/single/members.php' ), true );
    4654
    47                 elseif ( bp_group_is_visible() && bp_is_active( 'activity' ) ) :
    48                     locate_template( array( 'groups/single/activity.php' ), true );
     55                        endif;
    4956
    50                 elseif ( bp_group_is_visible() ) :
    51                     locate_template( array( 'groups/single/members.php' ), true );
     57                    // Not looking at home
     58                    else :
    5259
    53                 elseif ( !bp_group_is_visible() ) :
     60                        // Group Admin
     61                        if     ( bp_is_group_admin_page() ) : locate_template( array( 'groups/single/admin.php'        ), true );
     62
     63                        // Group Activity
     64                        elseif ( bp_is_group_activity()   ) : locate_template( array( 'groups/single/activity.php'     ), true );
     65
     66                        // Group Members
     67                        elseif ( bp_is_group_members()    ) : locate_template( array( 'groups/single/members.php'      ), true );
     68
     69                        // Group Invitations
     70                        elseif ( bp_is_group_invites()    ) : locate_template( array( 'groups/single/send-invites.php' ), true );
     71
     72                        // Old group forums
     73                        elseif ( bp_is_group_forum()      ) : locate_template( array( 'groups/single/forum.php'        ), true );
     74
     75                        // Anything else (plugins mostly)
     76                        else                                : locate_template( array( 'groups/single/plugins.php'      ), true );
     77
     78                        endif;
     79                    endif;
     80
     81                // Group is not visible
     82                elseif ( ! bp_group_is_visible() ) :
     83
     84                    // Membership request
     85                    if ( bp_is_group_membership_request() ) :
     86                        locate_template( array( 'groups/single/request-membership' ), true );
     87
    5488                    // The group is not visible, show the status message
     89                    else :
    5590
    56                     do_action( 'bp_before_group_status_message' ); ?>
     91                        do_action( 'bp_before_group_status_message' ); ?>
    5792
    58                     <div id="message" class="info">
    59                         <p><?php bp_group_status_message(); ?></p>
    60                     </div>
     93                        <div id="message" class="info">
     94                            <p><?php bp_group_status_message(); ?></p>
     95                        </div>
    6196
    62                     <?php do_action( 'bp_after_group_status_message' );
     97                        <?php do_action( 'bp_after_group_status_message' );
    6398
    64                 else :
    65                     // If nothing sticks, just load a group front template if one exists.
    66                     locate_template( array( 'groups/single/front.php' ), true );
    67 
    68                 endif;
     99                    endif;
     100                endif;         
    69101
    70102                do_action( 'bp_after_group_body' ); ?>
Note: See TracChangeset for help on using the changeset viewer.