Skip to:
Content

BuddyPress.org

Ticket #6544: 6544.ray.patch

File 6544.ray.patch, 3.3 KB (added by r-a-y, 7 years ago)
  • src/bp-blogs/bp-blogs-filters.php

     
    121121}
    122122add_filter( 'bp_activity_post_pre_publish', 'bp_blogs_post_pre_publish', 10, 4 );
    123123add_filter( 'bp_activity_post_pre_comment', 'bp_blogs_post_pre_publish', 10, 4 );
     124
     125/**
     126 * Registers our custom thumb size with WP's Site Icon feature.
     127 *
     128 * @since 2.7.0
     129 *
     130 * @param  array $sizes Current array of custom site icon sizes.
     131 * @return array
     132 */
     133function bp_blogs_register_custom_site_icon_size( $sizes ) {
     134        $sizes[] = bp_core_avatar_thumb_width();
     135        return $sizes;
     136}
     137add_filter( 'site_icon_image_sizes', 'bp_blogs_register_custom_site_icon_size' );
     138
     139/**
     140 * Syncs site icon URLs to blogmeta.
     141 *
     142 * @since 2.7.0
     143 *
     144 * @param int|string $old_value Old value
     145 * @param int|string $new_value New value
     146 */
     147function bp_blogs_sync_site_icon_info( $old_value, $new_value ) {
     148        if ( 0 === $new_value ) {
     149                bp_blogs_delete_blogmeta( get_current_blog_id(), 'site_icon_url_thumb' );
     150                bp_blogs_delete_blogmeta( get_current_blog_id(), 'site_icon_url_full' );
     151        } else {
     152                // Save site icon URL as blogmeta.
     153                bp_blogs_update_blogmeta( get_current_blog_id(), 'site_icon_url_thumb', get_site_icon_url( bp_core_avatar_thumb_width() ) );
     154                bp_blogs_update_blogmeta( get_current_blog_id(), 'site_icon_url_full',  get_site_icon_url( bp_core_avatar_full_width()  ) );
     155        }
     156}
     157add_action( 'update_option_site_icon', 'bp_blogs_sync_site_icon_info', 10, 2 );
  • src/bp-blogs/bp-blogs-template.php

     
    345345                        'no_grav' => true,
    346346                ) );
    347347
    348                 // Fetch the avatar.
    349                 $avatar = bp_core_fetch_avatar( array(
    350                         'item_id'    => $blogs_template->blog->admin_user_id,
    351                         'title'      => $r['title'],
    352                         // 'avatar_dir' => 'blog-avatars',
    353                         // 'object'     => 'blog',
    354                         'type'       => $r['type'],
    355                         'alt'        => $r['alt'],
    356                         'css_id'     => $r['id'],
    357                         'class'      => $r['class'],
    358                         'width'      => $r['width'],
    359                         'height'     => $r['height']
    360                 ) );
     348                // Use site icon if available.
     349                $site_icon = bp_blogs_get_blogmeta( bp_get_blog_id(), "site_icon_url_{$r['type']}" );
     350                if ( ! empty( $site_icon ) ) {
     351                        $avatar = sprintf( '<img src="%1$s" class="%2$s" alt="%3$s" title="%4$s" height="%5$s" width="%6$s" />',
     352                                esc_url( $site_icon ),
     353                                sanitize_html_class( $r['class'] ),
     354                                sprintf( esc_attr__( 'Site icon for %s', 'buddypress' ), bp_get_blog_name() ),
     355                                sprintf( esc_attr__( 'Site icon for %s', 'buddypress' ), bp_get_blog_name() ),
     356                                esc_attr( $r['height'] ),
     357                                esc_attr( $r['width'] )
     358                        );
     359
     360                // Fallback to user ID avatar.
     361                } else {
     362                        $avatar = bp_core_fetch_avatar( array(
     363                                'item_id'    => $blogs_template->blog->admin_user_id,
     364                                'title'      => $r['title'],
     365                                // 'avatar_dir' => 'blog-avatars',
     366                                // 'object'     => 'blog',
     367                                'type'       => $r['type'],
     368                                'alt'        => $r['alt'],
     369                                'css_id'     => $r['id'],
     370                                'class'      => $r['class'],
     371                                'width'      => $r['width'],
     372                                'height'     => $r['height']
     373                        ) );
     374                }
    361375
    362376                /**
    363377                 * In future BuddyPress versions you will be able to set the avatar for a blog.