Skip to:
Content
Pages
Categories
Search
Top
Bottom

Search Results for 'bp_core_fetch_avatar'

Viewing 25 results - 51 through 75 (of 258 total)
  • Author
    Search Results
  • #254737

    In reply to: global avatar

    danbp
    Participant

    Several topics are related to your question on the forum.

    https://buddypress.org/support/search/bp_core_fetch_avatar/

    #254536
    r-a-y
    Keymaster

    So what you’re looking for is to use a custom user avatar instead of BuddyPress’?

    Try the following code snippet in your theme’s functions.php or wp-content/plugins/bp-custom.php:

    remove_filter( 'get_avatar', 'bp_core_fetch_avatar_filter', 10, 6 );

    Update – That code snippet only reverts the avatar in WordPress posts and comments.

    To override BuddyPress avatars in BuddyPress content with a custom avatar solution, you would have to hook into the 'bp_core_fetch_avatar' filter:
    https://buddypress.trac.wordpress.org/browser/tags/2.5.3/src/bp-core/bp-core-avatars.php?marks=534-549#L534

    #254313
    Henry Wright
    Moderator

    You could be using the thumb sized avatar. Check your theme to make sure the full sized image is being used. bp_core_fetch_avatar() is the function used by BuddyPress to display avatars but there’s also get_avatar() so check for that too (it’s a WordPress function).

    #254089
    danbp
    Participant
    #253393
    Henky
    Participant

    <?php echo get_avatar( $comment, ’45’ ); ?>
    <?php echo bp_core_fetch_avatar( array( ‘item_id’ => $comment->user_id,’type’ => ‘full’,’width’ => 75,’height’ => 75)); ?>

    #253386
    Henky
    Participant

    Hy, I have a Problem.
    In the Widget i have this code, becouse see Only the Avatar from gravatar.com and not from Buddypress or WordPress

    <?php echo get_avatar( $comment, '45' ); ?>
    Display in Html
    <img alt="" src="https://secure.gravatar.com/avatar/ca07c51aecfa704741559ccc813d7b0d?s=45&d=mm&r=g" srcset="https://secure.gravatar.com/avatar/ca07c51aecfa704741559ccc813d7b0d?s=90&d=mm&r=g 2x" class="avatar avatar-45 gravatar" height="45" width="45">

    Than i have change the code to:
    <?php echo bp_core_fetch_avatar( array( 'item_id' => $comment->user_id,'type' => 'full','width' => 75,'height' => 75)); ?>
    becouse is not working.

    What is the correct code for Display Avatar from a Comment.

    Thanks a lot

    #252860
    Henry Wright
    Moderator

    Hi @etavio

    Your custom plugin is most likely filtering get_avatar to display your custom images. BuddyPress actually bypasses that filter through the use of bp_core_fetch_avatar().

    Ref: https://github.com/buddypress/BuddyPress/blob/master/src/bp-core/bp-core-avatars.php#L192

    You will need to use a different filter.

    #251396
    danbp
    Participant

    Hi,

    default avatar is ‘gravatar’ ‘s mytery man. To use your own avatar, you have to deactivate gravatar in addition to constant. Try this in bp-custom.php

    add_filter('bp_core_fetch_avatar_no_grav', '__return_true');
    define ( 'BP_AVATAR_DEFAULT_THUMB', 'YOURIMAGEURL' );
    #250977
    tkuron
    Participant

    I managed to fix the issue.

    Apparently BuddyPress does not change the avatar url when get_avatar_data() -function is called. I managed to fix the issue by adding following piece of script to my plugin’s source code:

    <?php
    add_filter("get_avatar_data", function($args, $id_or_email){
    	$bp_avatar_url = bp_core_fetch_avatar([
    			"html" => false,
    			"item_id" => $id,
    			"type" => "full",
    			"width" => $args["size"],
    			"height" => $args["size"]
    	]);
    	
    	$bp_avatar_url = htmlspecialchars_decode($bp_avatar_url);
    	$args["url"] = $bp_avatar_url;
    			
    	return $args;
    }, 10, 2);
    ?>
    #250975
    Henry Wright
    Moderator

    If it’s a BuddyPress page then I guess the bp_core_fetch_avatar() function should display the local avatar if no Grav exists. Are you saying this doesn’t happen?

    #250971
    Henry Wright
    Moderator

    You could disable Gravatar?

    add_filter( 'bp_core_fetch_avatar_no_grav', '__return_true' );

    #249815
    Florent
    Participant

    Topic close as result is already formated :
    http://hookr.io/functions/bp_core_fetch_avatar/

    Usage

    $string = bp_core_fetch_avatar( $args );

    Parameters

    $args
    ( array|string ) optional – { An array of arguments. All arguments are technically optional; some will, if not provided, be auto-detected by bp_core_fetch_avatar(). This auto-detection is described more below, when discussing specific arguments.

    Returns

    string Formatted HTML element, or raw avatar URL based on $html arg.

    #247239
    Henry Wright
    Moderator

    bp_core_default_avatar_user will fire only if you have disabled Gravatar via the bp_core_fetch_avatar_no_grav hook.

    #247012
    r-a-y
    Keymaster

    We do not store avatar data in the database.

    We do a look up at the files level instead.

    If you want to show an avatar based on a custom avatar stored in the database, you’ll need to use the 'bp_core_fetch_avatar' filter to override how BuddyPress shows avatars:
    https://buddypress.trac.wordpress.org/browser/tags/2.4.0/src/bp-core/bp-core-avatars.php?marks=531-546,660-664#L531

    If you just want to display a user avatar, use the bp_core_fetch_avatar() function:

    echo bp_core_fetch_avatar( array(
        'item_id' => USER_ID_TO_GRAB_AVATAR_FOR
    ) );
    #246176
    silversurfer.wf
    Participant

    OK, for some reason that did not cut and paste correctly. The add_filter line looks like this.

    add_filter( 'bp_core_fetch_avatar_no_grav','__return_true' );

    #246175
    silversurfer.wf
    Participant

    The following code…

    <?php

    // Use this file to customize Buddy Press

    // This section changes the default avatar to the picture of a box
    // the picture is uploaded into WordPress
    add_filter( 'bp_core_fetch_avatar_no_grav','__return_true' );
    define ( ‘BP_AVATAR_DEFAULT’, ‘http://www.truesouthernmen.com/wp-content/uploads/2015/10/0307152159-02-300×225.jpg&#8217; );
    define ( ‘BP_AVATAR_DEFAULT_THUMB’, ‘http://www.truesouthernmen.com/wp-content/uploads/2015/10/0307152159-02-300×225.jpg&#8217; );

    ?>

    Returns this error when loading the page…..

    Fatal error: Can’t use function return value in write context in /home/cody7670/public_html/wp-content/plugins/bp-custom.php on line 8

    #246171
    Brajesh Singh
    Participant

    For that purpose, please put the following line too in your bp-custom.php

    
    add_filter( 'bp_core_fetch_avatar_no_grav', '__return_true' );
    
    

    That forces BuddyPress to avoid using gravatar and use local avatars for default(when no avatar is uploaded).

    Hope that helps

    danbp
    Participant

    BuddyPress use Gravatar by default, like WordPress.
    If your user uploaded custom avatars, you may use bp_core_fetch_avatar in place of wp’s get_avatar

    http://oik-plugins.eu/buddypress-a2z/oik_api/bp_core_fetch_avatar/

    More about avatars here and search for “avatar”
    http://hookr.io/plugins/buddypress/#index=a

    #245627
    LaurieDugdale
    Participant

    Found the code below on these forums works perfectly.

    function my_cache_avatar_url() {
    	update_user_meta( bp_displayed_user_id(), 'modemloopers_awesome_avatar_url', bp_core_fetch_avatar( 'html=false&item_id=' . bp_displayed_user_id() ) );
    }
    add_action( 'xprofile_screen_change_avatar', 'my_cache_avatar_url' );
    

    I’ve tried to make it work for an xprofile field by doing the code below with no such luck. Any ideas?

    
    function my_cache_xprofile_website() {
    	update_user_meta( bp_displayed_user_id(), 'modemloopers_awesome_website_url', bp_profile_field_data('field=Website&item_id=' . bp_displayed_user_id() ) );
    }
    add_action( 'xprofile_updated_profile ', 'my_cache_xprofile_website' );
    
    #244571
    alpha2
    Participant

    Yes it is. But rather than using a plugin (for this project i am nearly at 53 active plugins…too much) maybe its better to use a function.
    i use this thread to ask you another question, some users (registered before i applied this plugin) named their account with a period: john.doe . Actually it’s not a big deal because buddypress (or wordpress natively) transform this dot into hyphen in each link.

    On one specific page template, I have special function i created with the help of a dev to display all users by a custom taxonomy (ranks)

    Only mater is that every hyperlink that link to account like john.doe are display like this http://www.website.com/members/john.doe and not http://www.website.com/members/john-doe

    I search into the code and found this:

    <div><?php $user = get_user_by('id', $gold ); ?><a href="<?php echo site_url();?>/members/<?php echo $user->user_login;?>/buddyblog/"><?php echo bp_core_fetch_avatar( array( 'item_id' => $gold, 'type' => 'full' ) ); ?></a><a href="<?php echo site_url();?>/members/<?php echo $user->user_login;?>/buddyblog/"><?php echo $user->user_login; ?></a>Performances: <?php echo count_user_posts( $gold ); ?></div>

    I must change how is display the username.

    Thank you for your time and your help!

    #244091
    shanebp
    Moderator

    This is not a gravatar:
    http://chocobento.x10.mx/wp/wp-content/uploads/avatars/1/63d3ab039b099fd772971c5498789561-bpfull.jpg

    You can disable gravatars by adding this to your theme/functions.php
    add_filter('bp_core_fetch_avatar_no_grav', '__return_true');

    #243539
    fatihaslann
    Participant

    I place this code in function.PHP

    function my_cache_avatar_url() {
    	update_user_meta( bp_displayed_user_id(), 'modemloopers_awesome_avatar_url', bp_core_fetch_avatar( 'html=false&item_id=' . bp_displayed_user_id() ) );
    }
    add_action( 'xprofile_screen_change_avatar', 'my_cache_avatar_url' );

    But my web site show white screen

    #243527
    fatihaslann
    Participant

    Where should I place on which page this code?

    function my_cache_avatar_url() {
    	update_user_meta( bp_displayed_user_id(), 'modemloopers_awesome_avatar_url', bp_core_fetch_avatar( 'html=false&item_id=' . bp_displayed_user_id() ) );
    }
    add_action( 'xprofile_screen_change_avatar', 'my_cache_avatar_url' );
    #242474
    Henry Wright
    Moderator

    You can disable Gravatar like this:

    function no_grav() {
        return true;
    }
    add_filter( 'bp_core_fetch_avatar_no_grav', 'no_grav' );
    #242191
    Garrett Hyder
    Participant

    Hi @shanebp,

    Sorry for the confusion, I’ve created a bp_group_list_managers that’s a merge of bp_group_list_admins and bp_group_list_mods to provide a single consolidated listing.

    function bp_group_list_managers($group=false) {
        global $groups_template;
        if(empty($group)) {
            $group =& $groups_template->group;
        }
    
        // fetch group admins if 'populate_extras' flag is false
        if (empty($group->args['populate_extras']) || true) {
            $query = new BP_Group_Member_Query(array(
                'group_id'   => $group->id,
                'group_role' => 'admin',
                'type'       => 'alphabetical',
            ));
    
            if (!empty($query->results)) {
                $group->admins = $query->results;
            }
        }
    
        // fetch group mods if 'populate_extras' flag is false
        if (empty($group->args['populate_extras']) || true) {
            $query = new BP_Group_Member_Query(array(
                'group_id'   => $group->id,
                'group_role' => 'mod',
                'type'       => 'alphabetical',
            ));
    
            if (!empty($query->results)) {
                $group->mods = $query->results;
            }
        }
    
        $admins = (array)$group->admins;
        $mods = (array)$group->mods;
    
        usort($admins, 'bp_group_member_sort');
        usort($mods, 'bp_group_member_sort');
    
        $group->managers = array_merge($admins, $mods);
    
        if (!empty($group->managers)) { ?>
            <ul id="group-managers">
                <?php foreach((array)$group->managers as $manager) { ?>
                    <li>
                        <a href="<?php echo bp_core_get_user_domain($manager->user_id, $manager->user_nicename, $manager->user_login); ?>"><?php echo bp_core_fetch_avatar(array('item_id' => $manager->user_id, 'email' => $manager->user_email, 'alt' => sprintf( __( 'Profile picture of %s', 'buddypress' ), bp_core_get_user_displayname($manager->user_id)))) ?></a>
                    </li>
                <?php } ?>
            </ul>
    <?php } else { ?>
        <span class="activity"><?php _e( 'No Managers', 'buddypress' ) ?></span>
    <?php }
    }

    As you can see I set the type here to alphabetical and was first confused why it did nothing then I realized the BP_Group_Member_Query’s were never even called as I guess populate_extras was set so not empty. This meant that the $group->admins and $group->mods came from the global $group_template->group which wasn’t ordered. I’m curious how to make that global $group_template->group admin/mod lists could be alphabetically ordered by default.

    For now I just amended my method to simply force the BP_Group_Member_Query’s to be used instead which has allowed for the alphabetical ordering.

    Hope that clears things up.

    Thanks

Viewing 25 results - 51 through 75 (of 258 total)
Skip to toolbar