Skip to:
Content
Pages
Categories
Search
Top
Bottom

Display green border around avatar when user is online

  • Avatar of kakilo
    kakilo
    Participant

    @kakilo

    Hi guys,

    I was lookin for a green border on member’s search page that is shown when the user is online. If the user is offline, instead, show a red one.

    Could anybody please help me with this? I was trying to use this code:

    <div id="online">
    <?php
    global $bp;
    function check_is_user_online($user_id){
    if ( bp_has_members( 'type=online&include='.$user_id) ) return true;
    else return false;
    }
    $this_id = bp_displayed_user_id();
    $is_online = check_is_user_online($this_id);
    if ($is_online) echo "<img src='http://www.yourweb.com/wp-content/themes/yourtheme/_inc/images/online.png' />";
    
    else{ echo "<img src='http://www.yourweb.com/wp-content/themes/yourtheme/_inc/images/offline.png' />";}

    But seems I can’t get it to work or it doesn’t works at all.

    Thanks in advance,
    Very appreciate.

    Henry.

Viewing 11 replies - 1 through 11 (of 11 total)
  • Avatar of @modemlooper
    @modemlooper
    Moderator

    @modemlooper

    Avatar of Shmoo
    Shmoo
    Participant

    @macpresss

    Nope I’ve been searching for this also – none of the code snippets online work. There are 3 different code snippets and none are working at the moment for some reason.

    It would be cool if we just had a simple user check within the members loop.

    Example:
    Check if user_is_online() return a Boolean? or –> Echo “something” if user is not online Echo “nothing or something else”;

    I would like to add a simple word like online or offline to a HTML class and target it by CSS while making a small ‘breathing’ animation of the gender symbol to show if a user is online or not.
    user_online

    Avatar of Henry
    Henry
    Participant

    @henrywright-1

    @macpresss I wouldn’t use that code from web developers wall in the members loop as it will add a database query for each member. It is more intended for use on the profile page. For the members loop, there are better ways to do it performance wise.

    Avatar of Prince Abiola Ogundipe
    Prince Abiola Ogundipe
    Participant

    @naijaping

    @kakilo, I posted 3 different version of that code in the forum and it is still working. It is for member-header and not members-loop but there is nothing stopping you from making it work with
    members-loop just pay attention to the code.

    I still have that coding working in my member .

    Naijaping

    Avatar of shanebp
    shanebp
    Moderator

    @shanebp

    To show in the members loop, create a template override in your theme for members-loop.php

    At the top of your override, paste this:

    $current_time = current_time( 'mysql', 1 );
    
    function online_check( $current_time ) { 
      global $members_template;
    	
      if ( isset( $members_template->member->last_activity ) ) {
    
        $diff =  strtotime( $current_time ) - strtotime( $members_template->member->last_activity ); 
    
        if ( $diff < 300 ) // 5 minutes  =  5 * 60
    	echo " online";
        else
    	echo " offline ";
    			
        }
    }

    Call it wherever you like in the members loop like so:
    online_check( $current_time );

    Avatar of kakilo
    kakilo
    Participant

    @kakilo

    Man, this worked like a charm!

    Thank you so much :}

    Avatar of kakilo
    kakilo
    Participant

    @kakilo

    I’m also using Prince Abiola script to show if the user is on/off on the members header. Everything is working great now!

    Thank you guys!
    Henry.

    Avatar of Shmoo
    Shmoo
    Participant

    @macpresss

    @shanebp

    Thanks that works beautiful just like I wanted.

    ? Just one question, why does it only work if you place the huge function code snippet in the loop template ( at the top ) but when you paste it inside your functions.php it doesn’t work.

    Avatar of shanebp
    shanebp
    Moderator

    @shanebp

    @macpresss

    You should be able to put the function in functions.php

    But you still need to put this
    $current_time = current_time( 'mysql', 1 );
    at the top of the template and _not in functions.php

    Avatar of Shmoo
    Shmoo
    Participant

    @macpresss

    Thank you so much!

    This looks very good and like real clean code. :)

    Avatar of Shmoo
    Shmoo
    Participant

    @macpresss

    buddypress user online check

    It’s still work in progress and needs a lot of tuning to be not annoying for users but you get the picture.
    It’s something different then a Green or Red bullet that say’s online.

Viewing 11 replies - 1 through 11 (of 11 total)

You must be logged in to reply to this topic.