Skip to:
Content

BuddyPress.org


Ignore:
Timestamp:
11/11/2019 12:48:27 PM (7 years ago)
Author:
imath
Message:

Make it possible to fetch a blog's avatar outside of the blogs loop

Passing 2 new parameters ($blog_id & $admin_user_id) to the bp_get_blog_avatar() function will return the corresponding blog's avatar without the need to run a blogs loop.

Props espellcaste

Fixes #8150

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/testcases/blogs/template.php

    r12244 r12496  
    368368        }
    369369
     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        }
    370458}
Note: See TracChangeset for help on using the changeset viewer.