Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
09/13/2010 01:08:31 AM (14 years ago)
Author:
johnjamesjacoby
Message:

Committing patch from #2566 for easier review and testing. Adds BP_Button class and associated template tags. Also includes code formatting fixes, phpdoc, widget fixes when friends component is disabled, and possibly the kitchen sink.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/1.2/bp-groups/bp-groups-templatetags.php

    r3245 r3260  
    10961096}
    10971097
     1098function bp_group_new_topic_button() {
     1099    if ( bp_is_group_forum() && is_user_logged_in() && !bp_is_group_forum_topic() ) {
     1100        bp_button( array (
     1101            'id'                => 'new_topic',
     1102            'component'         => 'groups',
     1103            'must_be_logged_in' => true,
     1104            'block_self'        => true,
     1105            'wrapper_class'     => 'group-button',
     1106            'link_href'         => '#post-new',
     1107            'link_class'        => '',
     1108            'link_text'         => __( 'New Topic', 'buddypress' ),
     1109            'link_title'        => __( 'New Topic', 'buddypress' ),
     1110        ) );
     1111    }
     1112}
     1113
    10981114function bp_group_join_button( $group = false ) {
    1099     global $bp, $groups_template;
    1100 
    1101     if ( !$group )
    1102         $group =& $groups_template->group;
    1103 
    1104     // If they're not logged in or are banned from the group, no join button.
    1105     if ( !is_user_logged_in() || $group->is_banned )
    1106         return false;
    1107 
    1108     if ( !$group->status )
    1109         return false;
    1110 
    1111     if ( 'hidden' == $group->status && !$group->is_member )
    1112         return false;
    1113 
    1114     echo '<div class="generic-button group-button ' . $group->status . '" id="groupbutton-' . $group->id . '">';
    1115 
    1116     switch ( $group->status ) {
    1117         case 'public':
    1118             if ( $group->is_member )
    1119                 echo '<a class="leave-group" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
    1120             else
    1121                 echo '<a class="join-group" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>';
    1122         break;
    1123 
    1124         case 'private':
    1125             if ( $group->is_member ) {
    1126                 echo '<a class="leave-group" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
    1127             } else {
    1128                 if ( !bp_group_has_requested_membership( $group ) )
    1129                     echo '<a class="request-membership" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_request_membership' ) . '">' . __('Request Membership', 'buddypress') . '</a>';
    1130                 else
    1131                     echo '<a class="membership-requested" href="' . bp_get_group_permalink( $group ) . '">' . __( 'Request Sent', 'buddypress' ) . '</a>';
     1115    echo bp_get_group_join_button();
     1116}
     1117    function bp_get_group_join_button( $group = false ) {
     1118        global $bp, $groups_template;
     1119
     1120        if ( !$group )
     1121            $group =& $groups_template->group;
     1122
     1123        // If they're not logged in or are banned from the group, no join button.
     1124        if ( !is_user_logged_in() || $group->is_banned )
     1125            return false;
     1126
     1127        if ( !$group->status )
     1128            return false;
     1129
     1130        if ( 'hidden' == $group->status && !$group->is_member )
     1131            return false;
     1132
     1133        // Already a member
     1134        if ( $group->is_member ) {
     1135            $button = array(
     1136                'id'                => 'leave_group',
     1137                'component'         => 'groups',
     1138                'must_be_logged_in' => true,
     1139                'block_self'        => false,
     1140                'wrapper_class'     => 'group-button ' . $group->status,
     1141                'wrapper_id'        => 'groupbutton-' . $group->id,
     1142                'link_class'        => 'leave-group',
     1143                'link_href'         => wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ),
     1144                'link_text'         => __( 'Leave Group', 'buddypress' ),
     1145                'link_title'        => __( 'Leave Group', 'buddypress' )
     1146            );
     1147
     1148        // Not a member
     1149        } else {
     1150
     1151            // Show different buttons based on group status
     1152            switch ( $group->status ) {
     1153                case 'public':
     1154                    $button = array(
     1155                        'id'                => 'join_group',
     1156                        'component'         => 'groups',
     1157                        'must_be_logged_in' => true,
     1158                        'block_self'        => false,
     1159                        'wrapper_class'     => 'group-button ' . $group->status,
     1160                        'wrapper_id'        => 'groupbutton-' . $group->id,
     1161                        'link_class'        => 'join-group',
     1162                        'link_href'         => wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ),
     1163                        'link_text'         => __( 'Join Group', 'buddypress' ),
     1164                        'link_title'        => __( 'Join Group', 'buddypress' )
     1165                    );
     1166                    break;
     1167
     1168                case 'private' :
     1169
     1170                    // Member has not requested membership yet
     1171                    if ( !bp_group_has_requested_membership( $group ) ) {
     1172                        $button = array(
     1173                            'id'                => 'request_membership',
     1174                            'component'         => 'groups',
     1175                            'must_be_logged_in' => true,
     1176                            'block_self'        => false,
     1177                            'wrapper_class'     => 'group-button ' . $group->status,
     1178                            'wrapper_id'        => 'groupbutton-' . $group->id,
     1179                            'link_class'        => 'request-membership',
     1180                            'link_href'         => wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_request_membership' ),
     1181                            'link_text'         => __( 'Request Membership', 'buddypress' ),
     1182                            'link_title'        => __( 'Request Membership', 'buddypress' ),
     1183                        );
     1184
     1185                    // Member has requested membership already
     1186                    } else {
     1187                        $button = array(
     1188                            'id'                => 'membership_requested',
     1189                            'component'         => 'groups',
     1190                            'must_be_logged_in' => true,
     1191                            'block_self'        => false,
     1192                            'wrapper_class'     => 'group-button pending ' . $group->status,
     1193                            'wrapper_id'        => 'groupbutton-' . $group->id,
     1194                            'link_class'        => 'membership-requested',
     1195                            'link_href'         => bp_get_group_permalink( $group ),
     1196                            'link_text'         => __( 'Request Sent', 'buddypress' ),
     1197                            'link_title'        => __( 'Request Sent', 'buddypress' ),
     1198                        );
     1199                    }
     1200
     1201                    break;
    11321202            }
    1133         break;
    1134 
    1135         case 'hidden':
    1136             if ( $group->is_member )
    1137                 echo '<a class="leave-group" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
    1138         break;
    1139     }
    1140 
    1141     echo '</div>';
    1142 }
     1203        }
     1204
     1205        // Filter and return the HTML button
     1206        return bp_get_button( apply_filters( 'bp_get_group_join_button', $button ) );
     1207    }
    11431208
    11441209function bp_group_status_message( $group = false ) {
     
    19862051
    19872052function bp_group_request_reject_link() {
    1988     global $requests_template, $groups_template;
    1989 
    1990     echo apply_filters( 'bp_group_request_reject_link', wp_nonce_url( bp_get_group_permalink( $groups_template->group ) . '/admin/membership-requests/reject/' . $requests_template->request->id, 'groups_reject_membership_request' ) );
    1991 }
     2053    echo bp_get_group_request_reject_link();
     2054}
     2055    function bp_get_group_request_reject_link() {
     2056        global $requests_template, $groups_template;
     2057
     2058        return apply_filters( 'bp_get_group_request_reject_link', wp_nonce_url( bp_get_group_permalink( $groups_template->group ) . '/admin/membership-requests/reject/' . $requests_template->request->id, 'groups_reject_membership_request' ) );
     2059    }
    19922060
    19932061function bp_group_request_accept_link() {
    1994     global $requests_template, $groups_template;
    1995 
    1996     echo apply_filters( 'bp_group_request_accept_link', wp_nonce_url( bp_get_group_permalink( $groups_template->group ) . '/admin/membership-requests/accept/' . $requests_template->request->id, 'groups_accept_membership_request' ) );
    1997 }
     2062    echo bp_get_group_request_accept_link();
     2063}
     2064    function bp_get_group_request_accept_link() {
     2065        global $requests_template, $groups_template;
     2066
     2067        return apply_filters( 'bp_get_group_request_accept_link', wp_nonce_url( bp_get_group_permalink( $groups_template->group ) . '/admin/membership-requests/accept/' . $requests_template->request->id, 'groups_accept_membership_request' ) );
     2068    }
     2069
     2070function bp_group_request_user_link() {
     2071    echo bp_get_group_request_user_link();
     2072}
     2073    function bp_get_group_request_user_link() {
     2074        global $requests_template;
     2075
     2076        return apply_filters( 'bp_get_group_request_user_link', bp_core_get_userlink( $requests_template->request->user_id ) );
     2077    }
    19982078
    19992079function bp_group_request_time_since_requested() {
     
    20082088    echo apply_filters( 'bp_group_request_comment', strip_tags( stripslashes( $requests_template->request->comments ) ) );
    20092089}
    2010 
    2011 function bp_group_request_user_link() {
    2012     global $requests_template;
    2013 
    2014     echo apply_filters( 'bp_group_request_user_link', bp_core_get_userlink( $requests_template->request->user_id ) );
    2015 }
    2016 
    20172090
    20182091/************************************************************************************
Note: See TracChangeset for help on using the changeset viewer.