| 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 | $avatar = ''; |
| | 350 | if ( bp_is_active( 'blogs', 'site-icon' ) && function_exists( 'has_site_icon' ) ) { |
| | 351 | $site_icon = bp_blogs_get_blogmeta( bp_get_blog_id(), "site_icon_url_{$r['type']}" ); |
| | 352 | |
| | 353 | // Never attempted to fetch site icon before; do it now! |
| | 354 | if ( '' === $site_icon ) { |
| | 355 | switch_to_blog( bp_get_blog_id() ); |
| | 356 | |
| | 357 | // Fetch the other size first. |
| | 358 | if ( 'full' === $r['type'] ) { |
| | 359 | $size = bp_core_avatar_thumb_width(); |
| | 360 | $save_size = 'thumb'; |
| | 361 | } else { |
| | 362 | $size = bp_core_avatar_full_width(); |
| | 363 | $save_size = 'full'; |
| | 364 | } |
| | 365 | |
| | 366 | $site_icon = get_site_icon_url( $size ); |
| | 367 | // Empty site icons get saved as integer 0. |
| | 368 | if ( empty( $site_icon ) ) { |
| | 369 | $site_icon = 0; |
| | 370 | } |
| | 371 | |
| | 372 | // Sync site icon for other size to blogmeta. |
| | 373 | bp_blogs_update_blogmeta( bp_get_blog_id(), "site_icon_url_{$save_size}", $site_icon ); |
| | 374 | |
| | 375 | // Now, fetch the size we want. |
| | 376 | if ( 0 !== $site_icon ) { |
| | 377 | $size = 'full' === $r['type'] ? bp_core_avatar_full_width() : bp_core_avatar_thumb_width(); |
| | 378 | $site_icon = get_site_icon_url( $size ); |
| | 379 | } |
| | 380 | |
| | 381 | // Sync site icon to blogmeta. |
| | 382 | bp_blogs_update_blogmeta( bp_get_blog_id(), "site_icon_url_{$r['type']}", $site_icon ); |
| | 383 | |
| | 384 | restore_current_blog(); |
| | 385 | } |
| | 386 | |
| | 387 | // We have a site icon. |
| | 388 | if ( ! is_numeric( $site_icon ) ) { |
| | 389 | if ( empty( $r['width'] ) && ! isset( $size ) ) { |
| | 390 | $size = 'full' === $r['type'] ? bp_core_avatar_full_width() : bp_core_avatar_thumb_width(); |
| | 391 | } else { |
| | 392 | $size = (int) $r['width']; |
| | 393 | } |
| | 394 | |
| | 395 | $avatar = sprintf( '<img src="%1$s" class="%2$s" width="%3$s" height="%3$s" alt="%4$s" title="%4$s" />', |
| | 396 | esc_url( $site_icon ), |
| | 397 | esc_attr( "{$r['class']} avatar-{$size}" ), |
| | 398 | esc_attr( $size ), |
| | 399 | sprintf( esc_attr__( 'Site icon for %s', 'buddypress' ), bp_get_blog_name() ) |
| | 400 | ); |
| | 401 | } |
| | 402 | } |
| | 403 | |
| | 404 | // Fallback to user ID avatar. |
| | 405 | if ( '' === $avatar ) { |
| | 406 | $avatar = bp_core_fetch_avatar( array( |
| | 407 | 'item_id' => $blogs_template->blog->admin_user_id, |
| | 408 | 'title' => $r['title'], |
| | 409 | // 'avatar_dir' => 'blog-avatars', |
| | 410 | // 'object' => 'blog', |
| | 411 | 'type' => $r['type'], |
| | 412 | 'alt' => $r['alt'], |
| | 413 | 'css_id' => $r['id'], |
| | 414 | 'class' => $r['class'], |
| | 415 | 'width' => $r['width'], |
| | 416 | 'height' => $r['height'] |
| | 417 | ) ); |
| | 418 | } |