Skip to:
Content

BuddyPress.org

Changeset 9828


Ignore:
Timestamp:
05/02/2015 01:01:03 AM (6 years ago)
Author:
boonebgorges
Message:

Allow group avatars to be disabled.

Props xgz, boonebgorges, imath, hnla.
Fixes #4677.

Location:
trunk/src
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/bp-activity/bp-activity-template.php

    r9824 r9828  
    16071607        switch ( $activities_template->activity->component ) {
    16081608            case 'groups' :
     1609                if ( bp_disable_group_avatar_uploads() ) {
     1610                    return false;
     1611                }
     1612
    16091613                $object  = 'group';
    16101614                $item_id = $activities_template->activity->item_id;
  • trunk/src/bp-core/admin/bp-core-admin-settings.php

    r9819 r9828  
    180180    <p class="description"><?php _e( 'Administrators can always create groups, regardless of this setting.', 'buddypress' ); ?></p>
    181181
     182<?php
     183}
     184
     185/**
     186 * 'Enable group avatars' field markup.
     187 *
     188 * @since BuddyPress (2.3.0)
     189 */
     190function bp_admin_setting_callback_group_avatar_uploads() {
     191?>
     192    <input id="bp-disable-group-avatar-uploads" name="bp-disable-group-avatar-uploads" type="checkbox" value="1" <?php checked( ! bp_disable_group_avatar_uploads() ); ?> />
     193    <label for="bp-disable-group-avatar-uploads"><?php _e( 'Allow customizable avatars for groups', 'buddypress' ); ?></label>
    182194<?php
    183195}
     
    281293        }
    282294
    283         // Some legacy options are not registered with the Settings API
     295        // Some legacy options are not registered with the Settings API, or are reversed in the UI.
    284296        $legacy_options = array(
    285297            'bp-disable-account-deletion',
    286298            'bp-disable-avatar-uploads',
     299            'bp-disable-group-avatar-uploads',
    287300            'bp_disable_blogforum_comments',
    288301            'bp-disable-profile-sync',
  • trunk/src/bp-core/bp-core-admin.php

    r9819 r9828  
    338338            add_settings_section( 'bp_xprofile', _x( 'Profile Settings', 'BuddyPress setting tab', 'buddypress' ), 'bp_admin_setting_callback_xprofile_section', 'buddypress' );
    339339
    340             $avatar_setting = 'bp_xprofile';
     340            add_settings_field( 'bp-disable-avatar-uploads', __( 'Profile Photo Uploads', 'buddypress' ), 'bp_admin_setting_callback_avatar_uploads', 'buddypress', 'bp_xprofile' );
     341            register_setting( 'buddypress', 'bp-disable-avatar-uploads', 'intval' );
    341342
    342343            // Profile sync setting
     
    352353            add_settings_section( 'bp_groups',        __( 'Groups Settings',  'buddypress' ), 'bp_admin_setting_callback_groups_section',   'buddypress'              );
    353354
    354             if ( empty( $avatar_setting ) ) {
    355                 $avatar_setting = 'bp_groups';
    356             }
    357 
    358355            // Allow subscriptions setting
    359356            add_settings_field( 'bp_restrict_group_creation', __( 'Group Creation',   'buddypress' ), 'bp_admin_setting_callback_group_creation',   'buddypress', 'bp_groups' );
    360357            register_setting  ( 'buddypress',         'bp_restrict_group_creation',   'intval'                                                                                );
     358
     359            // Allow group avatars.
     360            add_settings_field( 'bp-disable-group-avatar-uploads', __( 'Group Photo Uploads', 'buddypress' ), 'bp_admin_setting_callback_group_avatar_uploads', 'buddypress', 'bp_groups' );
     361            register_setting( 'buddypress', 'bp-disable-group-avatar-uploads', 'intval' );
    361362        }
    362363
     
    393394                register_setting  ( 'buddypress',         '_bp_enable_akismet',   'intval'                                                                                  );
    394395            }
    395         }
    396 
    397         /** Avatar upload for users or groups ************************************/
    398 
    399         if ( ! empty( $avatar_setting ) ) {
    400             // Allow avatar uploads
    401             add_settings_field( 'bp-disable-avatar-uploads', __( 'Profile Photo Uploads',   'buddypress' ), 'bp_admin_setting_callback_avatar_uploads',   'buddypress', $avatar_setting );
    402             register_setting  ( 'buddypress',         'bp-disable-avatar-uploads',   'intval'                                                                                    );
    403396        }
    404397    }
  • trunk/src/bp-core/bp-core-avatars.php

    r9827 r9828  
    18141814        // Group creation
    18151815        if ( bp_is_group_create() && bp_is_group_creation_step( 'group-avatar' ) && 'crop-image' !== bp_get_avatar_admin_step() ) {
    1816             $retval = ! bp_core_get_root_option( 'bp-disable-avatar-uploads' );
     1816            $retval = ! bp_disable_group_avatar_uploads();
    18171817
    18181818        // Group Manage
    18191819        } elseif ( bp_is_group_admin_page() && bp_is_group_admin_screen( 'group-avatar' ) && 'crop-image' !== bp_get_avatar_admin_step() ) {
    1820             $retval = ! bp_core_get_root_option( 'bp-disable-avatar-uploads' );
     1820            $retval = ! bp_disable_group_avatar_uploads();
    18211821        }
    18221822    }
  • trunk/src/bp-core/bp-core-options.php

    r9819 r9828  
    5555        // Avatar uploads
    5656        'bp-disable-avatar-uploads'       => false,
     57
     58        // Group Profile Photos
     59        'bp-disable-group-avatar-uploads' => false,
    5760
    5861        // Allow users to delete their own accounts
     
    582585
    583586/**
     587 * Are group avatars disabled?
     588 *
     589 * For backward compatibility, this option falls back on the value of 'bp-disable-avatar-uploads' when no value is
     590 * found in the database.
     591 *
     592 * @since BuddyPress (2.3.0)
     593 *
     594 * @param bool $default Optional. Fallback value if not found in the database.
     595 *                      Defaults to the value of `bp_disable_avatar_uploads()`.
     596 * @return bool True if group avatar uploads are disabled, otherwise false.
     597 */
     598function bp_disable_group_avatar_uploads( $default = null ) {
     599    $disabled = bp_get_option( 'bp-disable-group-avatar-uploads', '' );
     600
     601    if ( '' === $disabled ) {
     602        if ( is_null( $default ) ) {
     603            $disabled = bp_disable_avatar_uploads();
     604        } else {
     605            $disabled = $default;
     606        }
     607    }
     608
     609    /**
     610     * Filters whether or not members are able to upload group avatars.
     611     *
     612     * @since BuddyPress (2.3.0)
     613     *
     614     * @param bool $disabled Whether or not members are able to upload their groups avatars.
     615     * @param bool $default  Default value passed to the function.
     616     */
     617    return (bool) apply_filters( 'bp_disable_group_avatar_uploads', $disabled, $default );
     618}
     619
     620/**
    584621 * Are members able to delete their own accounts?
    585622 *
  • trunk/src/bp-groups/bp-groups-loader.php

    r9819 r9828  
    299299
    300300        // If avatar uploads are not disabled, add avatar option
    301         $disabled_avatar_uploads = (int) bp_core_get_root_option( 'bp-disable-avatar-uploads' );
     301        $disabled_avatar_uploads = (int) bp_disable_group_avatar_uploads();
    302302        if ( ! $disabled_avatar_uploads && $bp->avatar->show_avatars ) {
    303303            $this->group_creation_steps['group-avatar'] = array(
     
    575575                ), $default_params );
    576576
    577                 if ( ! (int) bp_get_option( 'bp-disable-avatar-uploads' ) && buddypress()->avatar->show_avatars ) {
     577                if ( ! bp_disable_group_avatar_uploads() && buddypress()->avatar->show_avatars ) {
    578578                    $sub_nav[] = array_merge( array(
    579579                        'name'        => __( 'Photo', 'buddypress' ),
  • trunk/src/bp-groups/bp-groups-screens.php

    r9819 r9828  
    907907
    908908    // If the logged-in user doesn't have permission or if avatar uploads are disabled, then stop here
    909     if ( ! bp_is_item_admin() || (int) bp_get_option( 'bp-disable-avatar-uploads' ) || ! buddypress()->avatar->show_avatars )
     909    if ( ! bp_is_item_admin() || bp_disable_group_avatar_uploads() || ! buddypress()->avatar->show_avatars )
    910910        return false;
    911911
  • trunk/src/bp-groups/bp-groups-template.php

    r9819 r9828  
    710710        }
    711711
     712        // Whether a group avatar will appear.
     713        if ( bp_disable_group_avatar_uploads() || ! buddypress()->avatar->show_avatars ) {
     714            $classes[] = 'group-no-avatar';
     715        } else {
     716            $classes[] = 'group-has-avatar';
     717        }
     718
    712719        /**
    713720         * Filters classes that will be applied to row class of the current group in the loop.
     
    859866        global $groups_template;
    860867
    861         // Bail if avatars are turned off
    862         // @todo Should we maybe still filter this?
    863         if ( ! buddypress()->avatar->show_avatars ) {
     868        // Bail if avatars are turned off.
     869        if ( bp_disable_group_avatar_uploads() || ! buddypress()->avatar->show_avatars ) {
    864870            return false;
    865871        }
  • trunk/src/bp-templates/bp-legacy/buddypress/groups/groups-loop.php

    r9819 r9828  
    5353
    5454        <li <?php bp_group_class(); ?>>
    55             <div class="item-avatar">
    56                 <a href="<?php bp_group_permalink(); ?>"><?php bp_group_avatar( 'type=thumb&width=50&height=50' ); ?></a>
    57             </div>
     55            <?php if ( ! bp_disable_group_avatar_uploads() ) : ?>
     56                <div class="item-avatar">
     57                    <a href="<?php bp_group_permalink(); ?>"><?php bp_group_avatar( 'type=thumb&width=50&height=50' ); ?></a>
     58                </div>
     59            <?php endif; ?>
    5860
    5961            <div class="item">
  • trunk/src/bp-templates/bp-legacy/buddypress/groups/single/group-header.php

    r9819 r9828  
    5151</div><!-- #item-actions -->
    5252
    53 <div id="item-header-avatar">
    54     <a href="<?php bp_group_permalink(); ?>" title="<?php bp_group_name(); ?>">
     53<?php if ( ! bp_disable_group_avatar_uploads() ) : ?>
     54    <div id="item-header-avatar">
     55        <a href="<?php bp_group_permalink(); ?>" title="<?php bp_group_name(); ?>">
    5556
    56         <?php bp_group_avatar(); ?>
     57            <?php bp_group_avatar(); ?>
    5758
    58     </a>
    59 </div><!-- #item-header-avatar -->
     59        </a>
     60    </div><!-- #item-header-avatar -->
     61<?php endif; ?>
    6062
    6163<div id="item-header-content">
  • trunk/src/bp-templates/bp-legacy/buddypress/members/single/groups/invites.php

    r9819 r9828  
    1515
    1616            <li>
    17                 <div class="item-avatar">
    18                     <a href="<?php bp_group_permalink(); ?>"><?php bp_group_avatar( 'type=thumb&width=50&height=50' ); ?></a>
    19                 </div>
     17                <?php if ( ! bp_disable_group_avatar_uploads() ) : ?>
     18                    <div class="item-avatar">
     19                        <a href="<?php bp_group_permalink(); ?>"><?php bp_group_avatar( 'type=thumb&width=50&height=50' ); ?></a>
     20                    </div>
     21                <?php endif; ?>
    2022
    2123                <h4><a href="<?php bp_group_permalink(); ?>"><?php bp_group_name(); ?></a><span class="small"> - <?php printf( _nx( '%d member', '%d members', bp_get_group_total_members( false ),'Group member count', 'buddypress' ), bp_get_group_total_members( false )  ); ?></span></h4>
  • trunk/src/bp-templates/bp-legacy/css/buddypress.css

    r9819 r9828  
    12821282    width: 50%;
    12831283}
     1284#buddypress ul.item-list li.group-no-avatar div.item-desc {
     1285    margin-left: 0;
     1286}
    12841287#buddypress ul.item-list li div.action {
    12851288    position: absolute;
Note: See TracChangeset for help on using the changeset viewer.