Skip to:
Content

BuddyPress.org

Ticket #8550: 8550.2.patch

File 8550.2.patch, 16.4 KB (added by imath, 2 months ago)
  • src/bp-groups/classes/class-bp-groups-component.php

    diff --git src/bp-groups/classes/class-bp-groups-component.php src/bp-groups/classes/class-bp-groups-component.php
    index 8f771c7d0..fd0d96bed 100644
    class BP_Groups_Component extends BP_Component { 
    110110         * @since 1.5.0
    111111         */
    112112        public function __construct() {
     113                $features = array();
     114                if ( bp_is_active( 'friends' ) ) {
     115                        $features[] = 'invitations';
     116                }
     117
    113118                parent::start(
    114119                        'groups',
    115120                        _x( 'User Groups', 'Group screen page <title>', 'buddypress' ),
    116121                        buddypress()->plugin_dir,
    117122                        array(
    118123                                'adminbar_myaccount_order' => 70,
    119                                 'search_query_arg' => 'groups_search',
     124                                'search_query_arg'         => 'groups_search',
     125                                'features'                 => $features,
    120126                        )
    121127                );
    122128        }
    class BP_Groups_Component extends BP_Component { 
    392398                        );
    393399                }
    394400
    395                 // If friends component is active, add invitations.
    396                 if ( bp_is_active( 'friends' ) ) {
     401                // If invitations are enabled, add invitations.
     402                if ( bp_is_active( 'groups', 'invitations' ) ) {
    397403                        $this->group_creation_steps['group-invites'] = array(
    398404                                'name'     => _x( 'Invites',  'Group screen nav', 'buddypress' ),
    399405                                'position' => 30
    class BP_Groups_Component extends BP_Component { 
    557563                // Determine user to use.
    558564                if ( bp_displayed_user_domain() ) {
    559565                        $user_domain = bp_displayed_user_domain();
     566                        $user_id     = bp_displayed_user_id();
    560567                } elseif ( bp_loggedin_user_domain() ) {
    561568                        $user_domain = bp_loggedin_user_domain();
     569                        $user_id     = bp_loggedin_user_id();
    562570                } else {
    563571                        $user_domain = false;
     572                        $user_id     = 0;
    564573                }
    565574
    566575                // Only grab count if we're on a user page.
    class BP_Groups_Component extends BP_Component { 
    607616                                'item_css_id'     => 'groups-my-groups'
    608617                        );
    609618
    610                         // Add the Group Invites nav item.
    611                         $sub_nav[] = array(
    612                                 'name'            => __( 'Invitations', 'buddypress' ),
    613                                 'slug'            => 'invites',
    614                                 'parent_url'      => $groups_link,
    615                                 'parent_slug'     => $slug,
    616                                 'screen_function' => 'groups_screen_group_invites',
    617                                 'user_has_access' => $access,
    618                                 'position'        => 30
    619                         );
     619                        if ( bp_is_active( 'groups', 'invitations' ) ) {
     620                                // Add the Group Invites nav item.
     621                                $sub_nav[] = array(
     622                                        'name'            => __( 'Invitations', 'buddypress' ),
     623                                        'slug'            => 'invites',
     624                                        'parent_url'      => $groups_link,
     625                                        'parent_slug'     => $slug,
     626                                        'screen_function' => 'groups_screen_group_invites',
     627                                        'user_has_access' => $access,
     628                                        'position'        => 30
     629                                );
     630                        }
    620631
    621632                        parent::setup_nav( $main_nav, $sub_nav );
    622633                }
    class BP_Groups_Component extends BP_Component { 
    705716                                );
    706717                        }
    707718
    708                         if ( bp_is_active( 'friends' ) && bp_groups_user_can_send_invites() ) {
     719                        if ( bp_is_active( 'groups', 'invitations' ) ) {
    709720                                $sub_nav[] = array(
    710721                                        'name'            => _x( 'Send Invites', 'My Group screen nav', 'buddypress' ),
    711722                                        'slug'            => 'send-invites',
    class BP_Groups_Component extends BP_Component { 
    833844                        // Setup the logged in user variables.
    834845                        $groups_link = trailingslashit( bp_loggedin_user_domain() . bp_get_groups_slug() );
    835846
    836                         // Pending group invites.
    837                         $count   = groups_get_invite_count_for_user();
    838847                        $title   = _x( 'Groups', 'My Account Groups', 'buddypress' );
    839848                        $pending = _x( 'No Pending Invites', 'My Account Groups sub nav', 'buddypress' );
    840849
    841                         if ( $count ) {
    842                                 $title = sprintf(
    843                                         /* translators: %s: Group invitation count for the current user */
    844                                         _x( 'Groups %s', 'My Account Groups nav', 'buddypress' ),
    845                                         '<span class="count">' . bp_core_number_format( $count ) . '</span>'
    846                                 );
     850                        if ( bp_is_active( 'groups', 'invitations' ) ) {
     851                                // Pending group invites.
     852                                $count   = groups_get_invite_count_for_user();
     853                                if ( $count ) {
     854                                        $title = sprintf(
     855                                                /* translators: %s: Group invitation count for the current user */
     856                                                _x( 'Groups %s', 'My Account Groups nav', 'buddypress' ),
     857                                                '<span class="count">' . bp_core_number_format( $count ) . '</span>'
     858                                        );
    847859
    848                                 $pending = sprintf(
    849                                         /* translators: %s: Group invitation count for the current user */
    850                                         _x( 'Pending Invites %s', 'My Account Groups sub nav', 'buddypress' ),
    851                                         '<span class="count">' . bp_core_number_format( $count ) . '</span>'
    852                                 );
     860                                        $pending = sprintf(
     861                                                /* translators: %s: Group invitation count for the current user */
     862                                                _x( 'Pending Invites %s', 'My Account Groups sub nav', 'buddypress' ),
     863                                                '<span class="count">' . bp_core_number_format( $count ) . '</span>'
     864                                        );
     865                                }
    853866                        }
    854867
    855868                        // Add the "My Account" sub menus.
    class BP_Groups_Component extends BP_Component { 
    870883                        );
    871884
    872885                        // Invitations.
    873                         $wp_admin_nav[] = array(
    874                                 'parent'   => 'my-account-' . $this->id,
    875                                 'id'       => 'my-account-' . $this->id . '-invites',
    876                                 'title'    => $pending,
    877                                 'href'     => trailingslashit( $groups_link . 'invites' ),
    878                                 'position' => 30
    879                         );
     886                        if ( bp_is_active( 'groups', 'invitations' ) ) {
     887                                $wp_admin_nav[] = array(
     888                                        'parent'   => 'my-account-' . $this->id,
     889                                        'id'       => 'my-account-' . $this->id . '-invites',
     890                                        'title'    => $pending,
     891                                        'href'     => trailingslashit( $groups_link . 'invites' ),
     892                                        'position' => 30
     893                                );
     894                        }
    880895
    881896                        // Create a Group.
    882897                        if ( bp_user_can_create_groups() ) {
  • src/bp-templates/bp-legacy/buddypress/groups/create.php

    diff --git src/bp-templates/bp-legacy/buddypress/groups/create.php src/bp-templates/bp-legacy/buddypress/groups/create.php
    index cb85eeb71..e5dec51d0 100644
    do_action( 'bp_before_create_group_page' ); ?> 
    172172
    173173                                <?php endif; ?>
    174174
    175                                 <fieldset class="group-create-invitations">
     175                                <?php if ( bp_is_active( 'groups', 'invitations' ) ): ?>
    176176
    177                                         <legend><?php _e( 'Group Invitations', 'buddypress' ); ?></legend>
     177                                        <fieldset class="group-create-invitations">
    178178
    179                                         <p><?php _e( 'Which members of this group are allowed to invite others?', 'buddypress' ); ?></p>
     179                                                <legend><?php _e( 'Group Invitations', 'buddypress' ); ?></legend>
    180180
    181                                         <div class="radio">
     181                                                <p><?php _e( 'Which members of this group are allowed to invite others?', 'buddypress' ); ?></p>
    182182
    183                                                 <label for="group-invite-status-members"><input type="radio" name="group-invite-status" id="group-invite-status-members" value="members"<?php bp_group_show_invite_status_setting( 'members' ); ?> /> <?php _e( 'All group members', 'buddypress' ); ?></label>
     183                                                <div class="radio">
    184184
    185                                                 <label for="group-invite-status-mods"><input type="radio" name="group-invite-status" id="group-invite-status-mods" value="mods"<?php bp_group_show_invite_status_setting( 'mods' ); ?> /> <?php _e( 'Group admins and mods only', 'buddypress' ); ?></label>
     185                                                        <label for="group-invite-status-members"><input type="radio" name="group-invite-status" id="group-invite-status-members" value="members"<?php bp_group_show_invite_status_setting( 'members' ); ?> /> <?php _e( 'All group members', 'buddypress' ); ?></label>
    186186
    187                                                 <label for="group-invite-status-admins"><input type="radio" name="group-invite-status" id="group-invite-status-admins" value="admins"<?php bp_group_show_invite_status_setting( 'admins' ); ?> /> <?php _e( 'Group admins only', 'buddypress' ); ?></label>
     187                                                        <label for="group-invite-status-mods"><input type="radio" name="group-invite-status" id="group-invite-status-mods" value="mods"<?php bp_group_show_invite_status_setting( 'mods' ); ?> /> <?php _e( 'Group admins and mods only', 'buddypress' ); ?></label>
    188188
    189                                         </div>
     189                                                        <label for="group-invite-status-admins"><input type="radio" name="group-invite-status" id="group-invite-status-admins" value="admins"<?php bp_group_show_invite_status_setting( 'admins' ); ?> /> <?php _e( 'Group admins only', 'buddypress' ); ?></label>
    190190
    191                                 </fieldset>
     191                                                </div>
     192
     193                                        </fieldset>
     194
     195                                <?php endif; ?>
    192196
    193197                                <?php
    194198
  • src/bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php

    diff --git src/bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php src/bp-templates/bp-legacy/buddypress/groups/single/admin/group-settings.php
    index 0961da5e8..024d6e614 100644
    do_action( 'bp_before_group_settings_admin' ); ?> 
    7878
    7979        </fieldset>
    8080
    81 <?php endif; ?>
     81<?php endif ; ?>
    8282
    83 <fieldset class="group-create-invitations">
    8483
    85         <legend><?php _e( 'Group Invitations', 'buddypress' ); ?></legend>
     84<?php if ( bp_is_active( 'groups', 'invitations' ) ): ?>
    8685
    87         <p><?php _e( 'Which members of this group are allowed to invite others?', 'buddypress' ); ?></p>
     86        <fieldset class="group-create-invitations">
    8887
    89         <div class="radio">
     88                <legend><?php _e( 'Group Invitations', 'buddypress' ); ?></legend>
    9089
    91                 <label for="group-invite-status-members"><input type="radio" name="group-invite-status" id="group-invite-status-members" value="members"<?php bp_group_show_invite_status_setting( 'members' ); ?> /> <?php _e( 'All group members', 'buddypress' ); ?></label>
     90                <p><?php _e( 'Which members of this group are allowed to invite others?', 'buddypress' ); ?></p>
    9291
    93                 <label for="group-invite-status-mods"><input type="radio" name="group-invite-status" id="group-invite-status-mods" value="mods"<?php bp_group_show_invite_status_setting( 'mods' ); ?> /> <?php _e( 'Group admins and mods only', 'buddypress' ); ?></label>
     92                <div class="radio">
    9493
    95                 <label for="group-invite-status-admins"><input type="radio" name="group-invite-status" id="group-invite-status-admins" value="admins"<?php bp_group_show_invite_status_setting( 'admins' ); ?> /> <?php _e( 'Group admins only', 'buddypress' ); ?></label>
     94                        <label for="group-invite-status-members"><input type="radio" name="group-invite-status" id="group-invite-status-members" value="members"<?php bp_group_show_invite_status_setting( 'members' ); ?> /> <?php _e( 'All group members', 'buddypress' ); ?></label>
    9695
    97         </div>
     96                        <label for="group-invite-status-mods"><input type="radio" name="group-invite-status" id="group-invite-status-mods" value="mods"<?php bp_group_show_invite_status_setting( 'mods' ); ?> /> <?php _e( 'Group admins and mods only', 'buddypress' ); ?></label>
    9897
    99 </fieldset>
     98                        <label for="group-invite-status-admins"><input type="radio" name="group-invite-status" id="group-invite-status-admins" value="admins"<?php bp_group_show_invite_status_setting( 'admins' ); ?> /> <?php _e( 'Group admins only', 'buddypress' ); ?></label>
     99
     100                </div>
     101
     102        </fieldset>
     103
     104<?php endif; ?>
    100105
    101106<?php
    102107
  • src/bp-templates/bp-legacy/buddypress/groups/single/send-invites.php

    diff --git src/bp-templates/bp-legacy/buddypress/groups/single/send-invites.php src/bp-templates/bp-legacy/buddypress/groups/single/send-invites.php
    index 94a4854f3..f71d783aa 100644
     
    1414 */
    1515do_action( 'bp_before_group_send_invites_content' ); ?>
    1616
     17<?php if ( ! bp_is_active( 'friends' ) ) : ?>
     18        <div id="message" class="info">
     19                <p class="notice"><?php esc_html_e( 'Group invitations can only be extended to friends.', 'buddypress' ); ?></p>
     20        </div>
    1721<?php
    1822/* Does the user have friends that could be invited to the group? */
    19 if ( bp_get_new_group_invite_friend_list() ) : ?>
     23elseif ( bp_get_new_group_invite_friend_list() ) : ?>
    2024
    2125        <h2 class="bp-screen-reader-text"><?php _e( 'Send invites', 'buddypress' ); ?></h2>
    2226
  • src/bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php

    diff --git src/bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php src/bp-templates/bp-nouveau/buddypress/groups/single/admin/group-settings.php
    index 6d24eafd3..d21e07573 100644
    if ( $group_types ) : ?> 
    8686
    8787<?php endif; ?>
    8888
     89<?php if ( bp_is_active( 'groups', 'invitations' ) ): ?>
     90
    8991        <fieldset class="radio group-invitations">
    9092                <legend><?php esc_html_e( 'Group Invitations', 'buddypress' ); ?></legend>
    9193
    if ( $group_types ) : ?> 
    108110
    109111        </fieldset>
    110112
     113<?php endif; ?>
     114
    111115</div><!-- // .group-settings-selections -->
  • src/bp-templates/bp-nouveau/includes/groups/classes.php

    diff --git src/bp-templates/bp-nouveau/includes/groups/classes.php src/bp-templates/bp-nouveau/includes/groups/classes.php
    index 2155bd86e..d5abe1177 100644
    class BP_Nouveau_Customizer_Group_Nav extends BP_Core_Nav { 
    259259                                'parent_slug' => $this->group->slug,
    260260                                'position'    => 10,
    261261                        ),
    262                         'invites' => array(
    263                                 'name'        => _x( 'Invite', 'My Group screen nav', 'buddypress' ),
    264                                 'slug'        => 'send-invites',
    265                                 'parent_slug' => $this->group->slug,
    266                                 'position'    => 70,
    267                         ),
    268262                        'manage'  => array(
    269263                                'name'        => _x( 'Manage', 'My Group screen nav', 'buddypress' ),
    270264                                'slug'        => 'admin',
    class BP_Nouveau_Customizer_Group_Nav extends BP_Core_Nav { 
    273267                        ),
    274268                );
    275269
     270                if ( bp_is_active( 'groups', 'invitations' ) ) {
     271                        $nav_items['invites'] = array(
     272                                'name'        => _x( 'Invite', 'My Group screen nav', 'buddypress' ),
     273                                'slug'        => 'send-invites',
     274                                'parent_slug' => $this->group->slug,
     275                                'position'    => 70,
     276                        );
     277                }
     278
    276279                // Make sure only global front.php will be checked.
    277280                add_filter( '_bp_nouveau_group_reset_front_template', array( $this, 'all_groups_fronts' ), 10, 1 );
    278281
  • src/bp-templates/bp-nouveau/includes/groups/functions.php

    diff --git src/bp-templates/bp-nouveau/includes/groups/functions.php src/bp-templates/bp-nouveau/includes/groups/functions.php
    index e1589069e..8c7867433 100644
    function bp_nouveau_groups_disallow_all_members_invites( $default = false ) { 
    102102        return apply_filters( 'bp_nouveau_groups_disallow_all_members_invites', $default );
    103103}
    104104
     105/**
     106 * Activate the Groups invitations feature if any member can be invited.
     107 *
     108 * @since 10.0.0
     109 *
     110 * @param bool True if any member can be invited. False otherwise.
     111 */
     112function bp_nouveau_is_groups_invitations_active() {
     113        return ! bp_nouveau_groups_disallow_all_members_invites();
     114}
     115add_filter( 'bp_is_groups_invitations_active', 'bp_nouveau_is_groups_invitations_active' );
     116
    105117/**
    106118 * Localize the strings needed for the Group's Invite UI
    107119 *
    function bp_nouveau_get_group_potential_invites( $args = array() ) { 
    310322}
    311323
    312324/**
     325 * Rename the Group invite step.
     326 *
    313327 * @since 3.0.0
     328 * @since 10.0.0 The function is no more creating a Group invite step.
     329 *
     330 * @param array $steps The Group create steps.
     331 * @return array       The Group create steps.
    314332 */
    315333function bp_nouveau_group_invites_create_steps( $steps = array() ) {
    316         if ( bp_is_active( 'friends' ) && isset( $steps['group-invites'] ) ) {
    317                 // Simply change the name
     334        if ( isset( $steps['group-invites'] ) ) {
    318335                $steps['group-invites']['name'] = _x( 'Invite', 'Group invitations menu title', 'buddypress' );
    319                 return $steps;
    320336        }
    321337
    322         // Add the create step if friends component is not active
    323         $steps['group-invites'] = array(
    324                 'name'     => _x( 'Invite', 'Group invitations menu title', 'buddypress' ),
    325                 'position' => 30,
    326         );
    327 
    328338        return $steps;
    329339}
    330340
    331341/**
     342 * Rename of the Group Invites nav.
     343 *
    332344 * @since 3.0.0
     345 * @since 10.0.0 The function is no more creating a Group invite nav.
    333346 */
    334347function bp_nouveau_group_setup_nav() {
    335348        if ( ! bp_is_group() || ! bp_groups_user_can_send_invites() ) {
    336349                return;
    337350        }
    338351
    339         // Simply change the name
    340         if ( bp_is_active( 'friends' ) ) {
     352        //
     353        if ( bp_is_active( 'groups', 'invitations' ) ) {
    341354                $bp = buddypress();
    342355
    343356                $bp->groups->nav->edit_nav(
    function bp_nouveau_group_setup_nav() { 
    345358                        'send-invites',
    346359                        bp_get_current_group_slug()
    347360                );
    348 
    349         // Create the Subnav item for the group
    350         } else {
    351                 $current_group = groups_get_current_group();
    352                 $group_link    = bp_get_group_permalink( $current_group );
    353 
    354                 bp_core_new_subnav_item( array(
    355                         'name'            => _x( 'Invite', 'Group invitations menu title', 'buddypress' ),
    356                         'slug'            => 'send-invites',
    357                         'parent_url'      => $group_link,
    358                         'parent_slug'     => $current_group->slug,
    359                         'screen_function' => 'groups_screen_group_invite',
    360                         'item_css_id'     => 'invite',
    361                         'position'        => 70,
    362                         'user_has_access' => $current_group->user_has_access,
    363                         'no_access_url'   => $group_link,
    364                 ) );
    365361        }
    366362}
    367363