[buddypress-trac] [BuddyPress Trac] #6440: BP Displayed User Avatar Bug

buddypress-trac noreply at wordpress.org
Sun May 17 15:27:18 UTC 2015


#6440: BP Displayed User Avatar Bug
-------------------------------+--------------------
 Reporter:  espellcaste        |       Owner:
     Type:  defect (bug)       |      Status:  new
 Priority:  normal             |   Milestone:  2.3
Component:  API - Avatars      |     Version:  2.2.3
 Severity:  critical           |  Resolution:
 Keywords:  reporter-feedback  |
-------------------------------+--------------------
Changes (by imath):

 * keywords:  needs-patch => reporter-feedback


Comment:

 Hi @espellcaste

 Maybe i'm missing something, but I believe there's no issue at all,
 because out of the single member's pages, `bp_displayed_user_id()` is `0`
 so `bp_core_fetch_avatar()` if no `item_id` parameter was provided should
 display nothing (see
 https://buddypress.trac.wordpress.org/browser/trunk/src/bp-core/bp-core-
 avatars.php#L245).

 But as you were talking of the BP Attachments API and the new avatar UI,
 i've double checked. This is what i've did, i've switched to 2.2 branch,
 follow the different steps you detailed in you ticket description. And the
 only way to have an avatar displayed in the header of the theme, is to
 actually set the displayed user id by going on one of the single member's
 pages.

 I've switch back to trunk, follow the different steps again, by uploading
 a new avatar or using the camera feature, and the result is the same than
 in 2.2, no avatar displayed if not on a single member's page, '''which is
 the right behavior'''.

 So no regression.

 > My thinking after looking at the code, they appear normal because they
 both use bp_displayed_user_id() to fetch the current logged-in user.

 No to fetch the logged in user id, you need to use
 `bp_loggedin_user_id()`. Displayed user means, the one you're actually
 looking at : so a single member's page. `bp_core_fetch_avatar()` tries to
 get the displayed user id if no item_id was provided, if the item_id is
 still empty, then it returns nothing.

 > 4 - Now go to another page that's not related to BuddyPress (custom post
 type, post type pages, aka blog post in my case) and
 bp_core_fetch_avatar() will not fetch the new uploaded image, it'll fetch
 a gravatar image if available or a mystery man if not.
 > In another words, outside of the BuddyPress domain,
 bp_core_fetch_avatar() is not fetching the new uploaded avatar.

 I really wonder how you managed to have an avatar displayed in this case,
 nothing should be output!
 Do you have any plugin activated or do you use a specific theme, if so
 could, you deactivate all plugins except BuddyPress and test with a twenty
 of your choice, e.g. twentyfifteen.

 If not on a single member's page, you need to pass an item_id parameter to
 `bp_core_fetch_avatar()`. For instance :
 {{{
 <?php echo bp_core_fetch_avatar( array( 'item_id' => 43 ) ); ?>
 }}}

 or if you're trying to fetch the current logged in user's avatar, you can
 use
 {{{
 <?php bp_loggedin_user_avatar(); ?>
 }}}

 So for me, there's no bug. If i've missed something, do not hesitate to
 share the exact code you're using and the exact config.

--
Ticket URL: <https://buddypress.trac.wordpress.org/ticket/6440#comment:2>
BuddyPress Trac <http://buddypress.org/>
BuddyPress Trac


More information about the buddypress-trac mailing list