Changeset 12496
- Timestamp:
- 11/11/2019 12:48:27 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/bp-blogs/bp-blogs-template.php
r11447 r12496 302 302 * 303 303 * @since 2.4.0 Introduced `$title` argument. 304 * @since 6.0.0 Introduced the `$blog_id` & `$admin_user_id` arguments. 304 305 * 305 306 * @see bp_core_fetch_avatar() For a description of arguments and … … 310 311 * For more information about the arguments, see 311 312 * {@link bp_core_fetch_avatar()}. 312 * @type string $alt Default: 'Profile picture of site author [user name]'. 313 * @type string $class Default: 'avatar'. 314 * @type string $type Default: 'full'. 315 * @type int|bool $width Default: false. 316 * @type int|bool $height Default: false. 317 * @type bool $id Currently unused. 318 * @type bool $no_grav Default: true. 313 * @type string $alt Default: 'Profile picture of site author [user name]'. 314 * @type string $class Default: 'avatar'. 315 * @type string $type Default: 'full'. 316 * @type int|bool $width Default: false. 317 * @type int|bool $height Default: false. 318 * @type bool $id Currently unused. 319 * @type bool $no_grav Default: false. 320 * @type int $blog_id The blog ID. Default: O. 321 * @type int $admin_user_id The Blog Admin user ID. Default: 0. 319 322 * } 320 323 * @return string User avatar string. … … 329 332 } 330 333 331 $author_displayname = bp_core_get_user_displayname( $blogs_template->blog->admin_user_id ); 334 // Set default values. 335 $author_displayname = ''; 336 $admin_user_id = 0; 337 $blog_id = 0; 338 339 if ( ! $blogs_template && isset( $args['admin_user_id'] ) && $args['admin_user_id'] ) { 340 $admin_user_id = (int) $args['admin_user_id']; 341 $author_displayname = bp_core_get_user_displayname( $admin_user_id ); 342 } else { 343 $admin_user_id = $blogs_template->blog->admin_user_id; 344 $author_displayname = bp_core_get_user_displayname( $blogs_template->blog->admin_user_id ); 345 } 346 347 if ( ! $blogs_template && isset( $args['blog_id'] ) && $args['blog_id'] ) { 348 $blog_id = (int) $args['blog_id']; 349 } else { 350 $blog_id = bp_get_blog_id(); 351 } 332 352 333 353 // Parse the arguments. … … 339 359 'id' => false, 340 360 'alt' => sprintf( __( 'Profile picture of site author %s', 'buddypress' ), esc_attr( $author_displayname ) ), 341 'no_grav' => true,361 'no_grav' => false, 342 362 ) ); 343 363 344 364 // Use site icon if available. 345 365 $avatar = ''; 346 if ( bp_is_active( 'blogs', 'site-icon' ) && function_exists( 'has_site_icon' )) {347 $site_icon = bp_blogs_get_blogmeta( bp_get_blog_id(), "site_icon_url_{$r['type']}" );366 if ( bp_is_active( 'blogs', 'site-icon' ) ) { 367 $site_icon = bp_blogs_get_blogmeta( $blog_id, "site_icon_url_{$r['type']}" ); 348 368 349 369 // Never attempted to fetch site icon before; do it now! 350 370 if ( '' === $site_icon ) { 351 switch_to_blog( bp_get_blog_id());371 switch_to_blog( $blog_id ); 352 372 353 373 // Fetch the other size first. … … 367 387 368 388 // Sync site icon for other size to blogmeta. 369 bp_blogs_update_blogmeta( bp_get_blog_id(), "site_icon_url_{$save_size}", $site_icon );389 bp_blogs_update_blogmeta( $blog_id, "site_icon_url_{$save_size}", $site_icon ); 370 390 371 391 // Now, fetch the size we want. … … 376 396 377 397 // Sync site icon to blogmeta. 378 bp_blogs_update_blogmeta( bp_get_blog_id(), "site_icon_url_{$r['type']}", $site_icon );398 bp_blogs_update_blogmeta( $blog_id, "site_icon_url_{$r['type']}", $site_icon ); 379 399 380 400 restore_current_blog(); … … 389 409 } 390 410 411 $alt_attribute = __( 'Site icon for the blog', 'buddypress' ); 412 if ( $blogs_template ) { 413 /* translators: %s is the placeholder for the name of the blog */ 414 $alt_attribute = sprintf( __( 'Site icon for %s', 'buddypress' ), bp_get_blog_name() ); 415 } 416 391 417 $avatar = sprintf( '<img src="%1$s" class="%2$s" width="%3$s" height="%3$s" alt="%4$s" />', 392 418 esc_url( $site_icon ), 393 419 esc_attr( "{$r['class']} avatar-{$size}" ), 394 420 esc_attr( $size ), 395 sprintf( esc_attr__( 'Site icon for %s', 'buddypress' ), bp_get_blog_name())421 esc_attr( $alt_attribute ) 396 422 ); 397 423 } … … 401 427 if ( '' === $avatar ) { 402 428 $avatar = bp_core_fetch_avatar( array( 403 'item_id' => $ blogs_template->blog->admin_user_id,429 'item_id' => $admin_user_id, 404 430 // 'avatar_dir' => 'blog-avatars', 405 431 // 'object' => 'blog', … … 409 435 'class' => $r['class'], 410 436 'width' => $r['width'], 411 'height' => $r['height'] 437 'height' => $r['height'], 438 'no_grav' => $r['no_grav'], 412 439 ) ); 413 440 } … … 421 448 * Use the 'bp_get_blog_avatar' filter instead. 422 449 */ 423 $avatar = apply_filters( 'bp_get_blog_avatar_' . $blog s_template->blog->blog_id, $avatar );450 $avatar = apply_filters( 'bp_get_blog_avatar_' . $blog_id, $avatar ); 424 451 425 452 /** … … 433 460 * @param array $r Array of arguments used when fetching avatar. 434 461 */ 435 return apply_filters( 'bp_get_blog_avatar', $avatar, $blog s_template->blog->blog_id, $r );462 return apply_filters( 'bp_get_blog_avatar', $avatar, $blog_id, $r ); 436 463 } 437 464 -
trunk/tests/phpunit/testcases/blogs/template.php
r12244 r12496 368 368 } 369 369 370 /** 371 * @group avatar 372 * @group BP_Blogs_Template 373 * @group bp_get_blog_avatar 374 */ 375 public function test_bp_get_blog_avatar_ids_provided() { 376 if ( ! is_multisite() ) { 377 $this->markTestSkipped(); 378 } 379 380 if ( function_exists( 'wp_initialize_site' ) ) { 381 $this->setExpectedDeprecated( 'wpmu_new_blog' ); 382 } 383 384 global $blogs_template; 385 $reset_blogs_template = $blogs_template; 386 $blogs_template = null; 387 388 $u = self::factory()->user->create(); 389 $b = self::factory()->blog->create( array( 390 'title' => 'The Foo Bar Blog', 391 'user_id' => $u, 392 ) ); 393 394 $avatar = bp_get_blog_avatar( array( 395 'type' => 'full', 396 'admin_user_id' => $u, 397 'blog_id' => $b, 398 'alt' => 'test', 399 'no_grav' => true, 400 'class' => 'avatar', 401 ) ); 402 403 $blogs_template = $reset_blogs_template; 404 405 $this->assertTrue( $avatar === bp_core_fetch_avatar( array( 406 'type' => 'full', 407 'item_id' => $u, 408 'alt' => 'test', 409 'no_grav' => true, 410 'class' => 'avatar', 411 ) ) ); 412 } 413 414 /** 415 * @group avatar 416 * @group BP_Blogs_Template 417 * @group bp_get_blog_avatar 418 */ 419 public function test_bp_get_blog_avatar_has_site_icon() { 420 if ( ! is_multisite() ) { 421 $this->markTestSkipped(); 422 } 423 424 if ( function_exists( 'wp_initialize_site' ) ) { 425 $this->setExpectedDeprecated( 'wpmu_new_blog' ); 426 } 427 428 global $blogs_template; 429 $reset_blogs_template = $blogs_template; 430 $blogs_template = null; 431 432 $u = self::factory()->user->create(); 433 $b = self::factory()->blog->create( array( 434 'title' => 'The Bar Foo Blog', 435 'user_id' => $u, 436 ) ); 437 438 add_filter( 'get_site_icon_url', array( $this, 'filter_blog_avatar' ) ); 439 440 $avatar = bp_get_blog_avatar( array( 441 'type' => 'full', 442 'admin_user_id' => $u, 443 'blog_id' => $b, 444 'alt' => 'test', 445 'no_grav' => true, 446 'class' => 'avatar', 447 ) ); 448 449 remove_filter( 'get_site_icon_url', array( $this, 'filter_blog_avatar' ) ); 450 $blogs_template = $reset_blogs_template; 451 452 $this->assertTrue( false !== strpos( $avatar, BP_TESTS_DIR . 'assets/upside-down.jpg' ) ); 453 } 454 455 public function filter_blog_avatar() { 456 return BP_TESTS_DIR . 'assets/upside-down.jpg'; 457 } 370 458 }
Note: See TracChangeset
for help on using the changeset viewer.