Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
11/13/2012 07:12:07 AM (14 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.