Forum Replies Created

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
  • in reply to: Add badges under cover photo depending on profile fields #136395
     Kida
    Participant

    Ok, I managed to fix it (with help 🙂 ) but I have trouble making it appear above the cover picture…

    This is my function:

    COPY CODE
    add_action( 'bp_after_member_header', 'talent_show_badge' );
    function talent_show_badge(){
        if( !bp_is_active( 'xprofile' ) )
            return;
        
        $field_value = xprofile_get_field_data( 'Talent', bp_displayed_user_id() );
        
        if( 'photography' == strtolower( $field_value ) ){
            echo '<div id="badges"><div class="badge1"><img src="http://www.mysite.com/wp-content/uploads/image1.png" id="talent1"></div></div>';
        }
    
        if( 'voice' == strtolower( $field_value ) ){
            echo '<div id="badges"><div class="badge1"><img src="http://www.mysite.com/wp-content/uploads/image2.png" id="talent1"></div></div>';
        }
    }
    
    add_action( 'bp_after_member_header', 'voice_show_badge' );
    function voice_show_badge(){
        if( !bp_is_active( 'xprofile' ) )
            return;
        
        $field_value = xprofile_get_field_data( 'Voice type', bp_displayed_user_id() );
        
        if( 'rock' == strtolower( $field_value ) ){
            echo '<div id="badges"><div class="badge2"><img src="http://www.mysite.com/wp-content/uploads/image3.png" id="talent2"></div></div>';
        }
    
        if( 'opera/classical' == strtolower( $field_value ) ){
            echo '<div id="badges"><div class="badge2"><img src="http://www.mysite.com/wp-content/uploads/image4.png" id="talent2"></div></div>';
        }
    
    }

    and my css:

    COPY CODE
    #badges {
    width: 900px;
    z-index: 2;
    }
    
    .badge1 {
    float: left;
    width: 100px;
    margin-left: 580px;
    padding: 15px;
    z-index: 2;
    }
    
    .badge2 {
    float: left;
    width: 100px;
    margin-left: 10px;
    padding: 15px;
    z-index: 2;
    }
    
    .badge1 #talent1 {
    z-index: 2;
    }
    
    .badge1 #talent2 {
    z-index: 2;
    }
    
    body.is-user-profile div#item-header div#badges {
    z-index: 2;
    }
    
    .buddypress div#item-header div#badges {
    z-index: 2;
    }
    

    As you can see, I’ve tried adding the z-index everywhere I could think of but the pictures still appear under the cover. What would be the class or ID to use for the location ‘bp_after_member_header’?

    Thanks in advance

    in reply to: Add badges under cover photo depending on profile fields #136259
     Kida
    Participant

    Ok, I understand now that the function I used was just to display the badge no matter what. I’m a bit slow in understanding coding 🙂

    So, I’ve tried to put back my initial function because you thought it would work but be hidden under my cover photo. Unfortunately it didn’t work.

    COPY CODE
    function show_badge() {
    
    	if ( bp_get_the_profile_field_name() == 'Talent' ) {
    		global $field;
    		if ( bp_unserialize_profile_field( $field->data->value ) == "Photography" ) {
    		echo '<div class="badge1">is it working?</div>';
    		}
    	}
    }
    
    add_action('bp_init', 'show_user_badge');
    function show_user_badge () {
        if (bp_is_user()){
            add_action('kleo_before_main_content', 'show_badge');
        }
    }

    I’ve tried changing the bp_unserialize_profile_field( $field->data->value ) == “Photography” to bp_get_the_profile_field_value() == “Photography” but no luck either.

    The field is a dropdown menu, I thought maybe I coulod just use its value (I know it’s different for checkboxes, I’m not sure for dropdowns).

    So, I’m back at square 1…not sure why this isn’t working.

    in reply to: Add badges under cover photo depending on profile fields #136255
     Kida
    Participant

    Ok, I found out that the badge picture is there but going under the cover photo.
    I have tried to assign a class (badge1) the the image and change its z index but it doesn’t seem to take into account the class assigned.
    So I created a div with a class and that works (I can change the background color etc) but the z-index still didn’t change anything, until I added the attribute position:relative; (I’m adding details in case someone else was after the same thing)

    This is the working code

    COPY CODE
    function show_badge() {
    
        echo '<div class="badge1"><img src="http://www.mysite.com/wp-content/uploads/musician-red-trans.png"></div>';
        if ( bp_get_the_profile_field_name() == 'talent' ) {
            global $field;
            if ( bp_unserialize_profile_field( $field->data->value ) == "Photography" ) {
              }
        }
    }
    add_action( 'bp_after_member_header', 'show_badge' );

    I also managed to get it under the cover photo by replacing ‘bp_after_member_header’ with ‘kleo_before_main_content’!! Woohoo! 🙂

    Thank you very very much for your help, I’ve added my rating and review!

    in reply to: Add badges under cover photo depending on profile fields #136247
     Kida
    Participant
    This reply has been set as private.
    in reply to: Add badges under cover photo depending on profile fields #136243
     Kida
    Participant

    I’ve tried many things, none of which is working…

    COPY CODE
    add_action('bp_init', 'show_user_badge', 2);
    function show_user_badge () {
        if (bp_is_user()){
            add_action('kleo_before_main_content', 'show_badge', 99);
        }
    
    }
    
    function show_badge() {
    	if ( bp_get_the_profile_field_name() == 'talent' ) {
    		global $field;
    		if ( bp_unserialize_profile_field( $field->data->value ) == "Photography" ) {
    		echo 'is it working?';
    		}
    	}
    }

    I also tried the same but using ‘bp_after_member_header’ instead ‘kleo_before_main_content’.
    I’ve tried to echo a sentence instead of an image but no luck.

    Sharmstr helped for the other code, maybe she’d accept to help me with this one too?

Viewing 5 posts - 1 through 5 (of 5 total)

Log in with your credentials

Forgot your details?