Skip to:
Content

BuddyPress.org


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • tags/1.2.6/bp-groups/bp-groups-templatetags.php

    • Property svn:eol-style deleted
    r2995 r3297  
    2727
    2828        $this->pag_page = isset( $_REQUEST['grpage'] ) ? intval( $_REQUEST['grpage'] ) : $page;
    29         $this->pag_num = isset( $_REQUEST['num'] ) ? intval( $_REQUEST['num'] ) : $per_page;
    30 
    31         if ( 'invites' == $type )
     29        $this->pag_num  = isset( $_REQUEST['num'] ) ? intval( $_REQUEST['num'] ) : $per_page;
     30
     31        if ( 'invites' == $type ) {
    3232            $this->groups = groups_get_invites_for_user( $user_id, $this->pag_num, $this->pag_page );
    33         else if ( 'single-group' == $type ) {
     33        } else if ( 'single-group' == $type ) {
    3434            $group = new stdClass;
    3535            $group->group_id = BP_Groups_Group::get_id_from_slug($slug);
    36             $this->groups = array( $group );
    37         } else
     36            $this->groups    = array( $group );
     37        } else {
    3838            $this->groups = groups_get_groups( array( 'type' => $type, 'per_page' => $this->pag_num, 'page' =>$this->pag_page, 'user_id' => $user_id, 'search_terms' => $search_terms, 'populate_extras' => $populate_extras ) );
     39        }
    3940
    4041        if ( 'invites' == $type ) {
    4142            $this->total_group_count = (int)$this->groups['total'];
    42             $this->group_count = (int)$this->groups['total'];
     43            $this->group_count       = (int)$this->groups['total'];
     44            $this->groups            = $this->groups['groups'];
     45        } else if ( 'single-group' == $type ) {
     46            $this->single_group      = true;
     47            $this->total_group_count = 1;
     48            $this->group_count       = 1;
     49        } else {
     50            if ( !$max || $max >= (int)$this->groups['total'] ) {
     51                $this->total_group_count = (int)$this->groups['total'];
     52            } else {
     53                $this->total_group_count = (int)$max;
     54            }
     55
    4356            $this->groups = $this->groups['groups'];
    44         } else if ( 'single-group' == $type ) {
    45             $this->single_group = true;
    46             $this->total_group_count = 1;
    47             $this->group_count = 1;
    48         } else {
    49             if ( !$max || $max >= (int)$this->groups['total'] )
    50                 $this->total_group_count = (int)$this->groups['total'];
    51             else
    52                 $this->total_group_count = (int)$max;
    53 
    54             $this->groups = $this->groups['groups'];
    5557
    5658            if ( $max ) {
    57                 if ( $max >= count($this->groups) )
    58                     $this->group_count = count($this->groups);
    59                 else
     59                if ( $max >= count($this->groups) ) {
     60                    $this->group_count = count( $this->groups );
     61                } else {
    6062                    $this->group_count = (int)$max;
     63                }
    6164            } else {
    62                 $this->group_count = count($this->groups);
     65                $this->group_count = count( $this->groups );
    6366            }
    6467        }
    6568
    66         $this->pag_links = paginate_links( array(
    67             'base' => add_query_arg( array( 'grpage' => '%#%', 'num' => $this->pag_num, 's' => $search_terms, 'sortby' => $this->sort_by, 'order' => $this->order ) ),
    68             'format' => '',
    69             'total' => ceil($this->total_group_count / $this->pag_num),
    70             'current' => $this->pag_page,
    71             'prev_text' => '←',
    72             'next_text' => '→',
    73             'mid_size' => 1
    74         ));
     69        // Build pagination links
     70        if ( (int)$this->total_group_count && (int)$this->pag_num ) {
     71            $this->pag_links = paginate_links( array(
     72                'base'      => add_query_arg( array( 'grpage' => '%#%', 'num' => $this->pag_num, 's' => $search_terms, 'sortby' => $this->sort_by, 'order' => $this->order ) ),
     73                'format'    => '',
     74                'total'     => ceil( (int)$this->total_group_count / (int)$this->pag_num ),
     75                'current'   => $this->pag_page,
     76                'prev_text' => '←',
     77                'next_text' => '→',
     78                'mid_size'  => 1
     79            ) );
     80        }
    7581    }
    7682
     
    193199    global $bp, $groups_template;
    194200
    195     if ( $bp->loggedin_user->is_site_admin )
     201    if ( $bp->loggedin_user->is_super_admin )
    196202        return true;
    197203
     
    288294        /* Fetch the avatar from the folder, if not provide backwards compat. */
    289295        if ( !$avatar = bp_core_fetch_avatar( array( 'item_id' => $groups_template->group->id, 'object' => 'group', 'type' => $type, 'avatar_dir' => 'group-avatars', 'alt' => $alt, 'css_id' => $id, 'class' => $class, 'width' => $width, 'height' => $height ) ) )
    290             $avatar = '<img src="' . attribute_escape( $groups_template->group->avatar_thumb ) . '" class="avatar" alt="' . attribute_escape( $groups_template->group->name ) . '" />';
     296            $avatar = '<img src="' . esc_attr( $groups_template->group->avatar_thumb ) . '" class="avatar" alt="' . esc_attr( $groups_template->group->name ) . '" />';
    291297
    292298        return apply_filters( 'bp_get_group_avatar', $avatar );
     
    559565    echo sprintf( __( 'Viewing group %1$s to %2$s (of %3$s groups)', 'buddypress' ), $from_num, $to_num, $total ); ?> &nbsp;
    560566    <span class="ajax-loader"></span><?php
     567}
     568
     569function bp_groups_auto_join() {
     570    global $bp;
     571
     572    return apply_filters( 'bp_groups_auto_join', (bool)$bp->groups->auto_join );
    561573}
    562574
     
    870882}
    871883    function bp_get_group_member_unban_link( $user_id = false, $group = false ) {
    872         global $members_template;
     884        global $members_template, $groups_template;
    873885
    874886        if ( !$user_id )
     
    879891
    880892        return apply_filters( 'bp_get_group_member_unban_link', wp_nonce_url( bp_get_group_permalink( $group ) . 'admin/manage-members/unban/' . $user_id, 'groups_unban_member' ) );
     893    }
     894
     895
     896function bp_group_member_remove_link( $user_id = false ) {
     897    global $members_template;
     898
     899    if ( !$user_id )
     900        $user_id = $members_template->member->user_id;
     901
     902    echo bp_get_group_member_remove_link( $user_id );
     903}
     904    function bp_get_group_member_remove_link( $user_id = false, $group = false ) {
     905        global $members_template, $groups_template;
     906
     907        if ( !$group )
     908            $group =& $groups_template->group;
     909
     910        return apply_filters( 'bp_get_group_member_remove_link', wp_nonce_url( bp_get_group_permalink( $group ) . 'admin/manage-members/remove/' . $user_id, 'groups_remove_member' ) );
    881911    }
    882912
     
    962992 * Checks if current user is member of a group.
    963993 *
    964  * @uses is_site_admin Check if current user is super admin
     994 * @uses is_super_admin Check if current user is super admin
    965995 * @uses apply_filters Creates bp_group_is_member filter and passes $is_member
    966996 * @usedby groups/activity.php, groups/single/forum/edit.php, groups/single/forum/topic.php to determine template part visibility
     
    9741004
    9751005    // Site admins always have access
    976     if ( is_site_admin() )
     1006    if ( is_super_admin() )
    9771007        return true;
    9781008
     
    10661096}
    10671097
     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
    10681114function bp_group_join_button( $group = false ) {
    1069     global $bp, $groups_template;
    1070 
    1071     if ( !$group )
    1072         $group =& $groups_template->group;
    1073 
    1074     // If they're not logged in or are banned from the group, no join button.
    1075     if ( !is_user_logged_in() || $group->is_banned )
    1076         return false;
    1077 
    1078     if ( !$group->status )
    1079         return false;
    1080 
    1081     if ( 'hidden' == $group->status && !$group->is_member )
    1082         return false;
    1083 
    1084     echo '<div class="generic-button group-button ' . $group->status . '" id="groupbutton-' . $group->id . '">';
    1085 
    1086     switch ( $group->status ) {
    1087         case 'public':
    1088             if ( $group->is_member )
    1089                 echo '<a class="leave-group" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
    1090             else
    1091                 echo '<a class="join-group" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ) . '">' . __( 'Join Group', 'buddypress' ) . '</a>';
    1092         break;
    1093 
    1094         case 'private':
    1095             if ( $group->is_member ) {
    1096                 echo '<a class="leave-group" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
    1097             } else {
    1098                 if ( !bp_group_has_requested_membership( $group ) )
    1099                     echo '<a class="request-membership" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_request_membership' ) . '">' . __('Request Membership', 'buddypress') . '</a>';
    1100                 else
    1101                     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        // Group creation was not completed or status is unknown
     1128        if ( !$group->status )
     1129            return false;
     1130
     1131        // Already a member
     1132        if ( $group->is_member ) {
     1133
     1134            // Stop sole admins from abandoning their group
     1135            if ( $bp->is_item_admin && count( groups_get_group_admins( $group->id ) ) < 2 )
     1136                return false;
     1137
     1138            $button = array(
     1139                'id'                => 'leave_group',
     1140                'component'         => 'groups',
     1141                'must_be_logged_in' => true,
     1142                'block_self'        => false,
     1143                'wrapper_class'     => 'group-button ' . $group->status,
     1144                'wrapper_id'        => 'groupbutton-' . $group->id,
     1145                'link_class'        => 'leave-group',
     1146                'link_href'         => wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ),
     1147                'link_text'         => __( 'Leave Group', 'buddypress' ),
     1148                'link_title'        => __( 'Leave Group', 'buddypress' )
     1149            );
     1150
     1151        // Not a member
     1152        } else {
     1153
     1154            // Show different buttons based on group status
     1155            switch ( $group->status ) {
     1156                case 'hidden' :
     1157                    return false;
     1158                    break;
     1159
     1160                case 'public':
     1161                    $button = array(
     1162                        'id'                => 'join_group',
     1163                        'component'         => 'groups',
     1164                        'must_be_logged_in' => true,
     1165                        'block_self'        => false,
     1166                        'wrapper_class'     => 'group-button ' . $group->status,
     1167                        'wrapper_id'        => 'groupbutton-' . $group->id,
     1168                        'link_class'        => 'join-group',
     1169                        'link_href'         => wp_nonce_url( bp_get_group_permalink( $group ) . 'join', 'groups_join_group' ),
     1170                        'link_text'         => __( 'Join Group', 'buddypress' ),
     1171                        'link_title'        => __( 'Join Group', 'buddypress' )
     1172                    );
     1173                    break;
     1174
     1175                case 'private' :
     1176
     1177                    // Member has not requested membership yet
     1178                    if ( !bp_group_has_requested_membership( $group ) ) {
     1179                        $button = array(
     1180                            'id'                => 'request_membership',
     1181                            'component'         => 'groups',
     1182                            'must_be_logged_in' => true,
     1183                            'block_self'        => false,
     1184                            'wrapper_class'     => 'group-button ' . $group->status,
     1185                            'wrapper_id'        => 'groupbutton-' . $group->id,
     1186                            'link_class'        => 'request-membership',
     1187                            'link_href'         => wp_nonce_url( bp_get_group_permalink( $group ) . 'request-membership', 'groups_request_membership' ),
     1188                            'link_text'         => __( 'Request Membership', 'buddypress' ),
     1189                            'link_title'        => __( 'Request Membership', 'buddypress' ),
     1190                        );
     1191
     1192                    // Member has requested membership already
     1193                    } else {
     1194                        $button = array(
     1195                            'id'                => 'membership_requested',
     1196                            'component'         => 'groups',
     1197                            'must_be_logged_in' => true,
     1198                            'block_self'        => false,
     1199                            'wrapper_class'     => 'group-button pending ' . $group->status,
     1200                            'wrapper_id'        => 'groupbutton-' . $group->id,
     1201                            'link_class'        => 'membership-requested',
     1202                            'link_href'         => bp_get_group_permalink( $group ),
     1203                            'link_text'         => __( 'Request Sent', 'buddypress' ),
     1204                            'link_title'        => __( 'Request Sent', 'buddypress' ),
     1205                        );
     1206                    }
     1207
     1208                    break;
    11021209            }
    1103         break;
    1104 
    1105         case 'hidden':
    1106             if ( $group->is_member )
    1107                 echo '<a class="leave-group" href="' . wp_nonce_url( bp_get_group_permalink( $group ) . 'leave-group', 'groups_leave_group' ) . '">' . __( 'Leave Group', 'buddypress' ) . '</a>';
    1108         break;
    1109     }
    1110 
    1111     echo '</div>';
    1112 }
     1210        }
     1211
     1212        // Filter and return the HTML button
     1213        return bp_get_button( apply_filters( 'bp_get_group_join_button', $button ) );
     1214    }
    11131215
    11141216function bp_group_status_message( $group = false ) {
     
    11331235function bp_group_hidden_fields() {
    11341236    if ( isset( $_REQUEST['s'] ) ) {
    1135         echo '<input type="hidden" id="search_terms" value="' . attribute_escape( $_REQUEST['s'] ) . '" name="search_terms" />';
     1237        echo '<input type="hidden" id="search_terms" value="' . esc_attr( $_REQUEST['s'] ) . '" name="search_terms" />';
    11361238    }
    11371239
    11381240    if ( isset( $_REQUEST['letter'] ) ) {
    1139         echo '<input type="hidden" id="selected_letter" value="' . attribute_escape( $_REQUEST['letter'] ) . '" name="selected_letter" />';
     1241        echo '<input type="hidden" id="selected_letter" value="' . esc_attr( $_REQUEST['letter'] ) . '" name="selected_letter" />';
    11401242    }
    11411243
    11421244    if ( isset( $_REQUEST['groups_search'] ) ) {
    1143         echo '<input type="hidden" id="search_terms" value="' . attribute_escape( $_REQUEST['groups_search'] ) . '" name="search_terms" />';
     1245        echo '<input type="hidden" id="search_terms" value="' . esc_attr( $_REQUEST['groups_search'] ) . '" name="search_terms" />';
    11441246    }
    11451247}
     
    13731475    }
    13741476
     1477function bp_group_member_css_class() {
     1478    global $members_template;
     1479
     1480    if ( $members_template->member->is_banned )
     1481        echo apply_filters( 'bp_group_member_css_class', 'banned-user' );
     1482}
     1483
    13751484function bp_group_member_joined_since() {
    13761485    echo bp_get_group_member_joined_since();
     
    16891798                }
    16901799
    1691                 $items[] = '<' . $separator . '><input' . $checked . ' type="checkbox" name="friends[]" id="f-' . $friends[$i]['id'] . '" value="' . attribute_escape( $friends[$i]['id'] ) . '" /> ' . $friends[$i]['full_name'] . '</' . $separator . '>';
     1800                $items[] = '<' . $separator . '><input' . $checked . ' type="checkbox" name="friends[]" id="f-' . $friends[$i]['id'] . '" value="' . esc_attr( $friends[$i]['id'] ) . '" /> ' . $friends[$i]['full_name'] . '</' . $separator . '>';
    16921801            }
    16931802        }
     
    17051814?>
    17061815    <form action="" method="get" id="search-groups-form">
    1707         <label><input type="text" name="s" id="groups_search" value="<?php echo attribute_escape($search_value) ?>"  onfocus="if (this.value == '<?php _e( 'Search anything...', 'buddypress' ) ?>') {this.value = '';}" onblur="if (this.value == '') {this.value = '<?php _e( 'Search anything...', 'buddypress' ) ?>';}" /></label>
     1816        <label><input type="text" name="s" id="groups_search" value="<?php echo esc_attr($search_value) ?>"  onfocus="if (this.value == '<?php _e( 'Search anything...', 'buddypress' ) ?>') {this.value = '';}" onblur="if (this.value == '') {this.value = '<?php _e( 'Search anything...', 'buddypress' ) ?>';}" /></label>
    17081817        <input type="submit" id="groups_search_submit" name="groups_search_submit" value="<?php _e( 'Search', 'buddypress' ) ?>" />
    17091818    </form>
     
    17721881
    17731882    if ( $bp->groups->current_group->avatar_full ) { ?>
    1774         <img src="<?php echo attribute_escape( $bp->groups->current_group->avatar_full ) ?>" alt="<?php _e( 'Group Avatar', 'buddypress' ) ?>" class="avatar" />
     1883        <img src="<?php echo esc_attr( $bp->groups->current_group->avatar_full ) ?>" alt="<?php _e( 'Group Avatar', 'buddypress' ) ?>" class="avatar" />
    17751884    <?php } else { ?>
    17761885        <img src="<?php echo $bp->groups->image_base . '/none.gif' ?>" alt="<?php _e( 'No Group Avatar', 'buddypress' ) ?>" class="avatar" />
     
    19492058
    19502059function bp_group_request_reject_link() {
    1951     global $requests_template, $groups_template;
    1952 
    1953     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' ) );
    1954 }
     2060    echo bp_get_group_request_reject_link();
     2061}
     2062    function bp_get_group_request_reject_link() {
     2063        global $requests_template, $groups_template;
     2064
     2065        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' ) );
     2066    }
    19552067
    19562068function bp_group_request_accept_link() {
    1957     global $requests_template, $groups_template;
    1958 
    1959     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' ) );
    1960 }
     2069    echo bp_get_group_request_accept_link();
     2070}
     2071    function bp_get_group_request_accept_link() {
     2072        global $requests_template, $groups_template;
     2073
     2074        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' ) );
     2075    }
     2076
     2077function bp_group_request_user_link() {
     2078    echo bp_get_group_request_user_link();
     2079}
     2080    function bp_get_group_request_user_link() {
     2081        global $requests_template;
     2082
     2083        return apply_filters( 'bp_get_group_request_user_link', bp_core_get_userlink( $requests_template->request->user_id ) );
     2084    }
    19612085
    19622086function bp_group_request_time_since_requested() {
     
    19712095    echo apply_filters( 'bp_group_request_comment', strip_tags( stripslashes( $requests_template->request->comments ) ) );
    19722096}
    1973 
    1974 function bp_group_request_user_link() {
    1975     global $requests_template;
    1976 
    1977     echo apply_filters( 'bp_group_request_user_link', bp_core_get_userlink( $requests_template->request->user_id ) );
    1978 }
    1979 
    19802097
    19812098/************************************************************************************
Note: See TracChangeset for help on using the changeset viewer.