SimplePortal

Customization => Custom Coding => Topic started by: zapiy on June 30, 2011, 07:07:23 AM

Title: Whos online with avatar?
Post by: zapiy on June 30, 2011, 07:07:23 AM
(http://img291.imageshack.us/img291/5333/whosy.jpg)

Is this possible please?
Title: Re: Whos online with avatar?
Post by: zapiy on July 02, 2011, 07:48:28 AM
I take it this can not be done in the latest release? :'(
Title: Re: Whos online with avatar?
Post by: Blue on July 02, 2011, 11:57:38 AM
Something like this?

If it works for you, I can make it like facebook instead of being a vertical list of avatar/user.

Code: [Select]
<?php
/*
Block: Who's Online with Avatar
Author: Blue @ Simple Portal.net
*/

// Let's grab some database results...
global $smcFunc$scripturl$sourcedir$modSettings$txt;


$members_result $smcFunc['db_query']('''
SELECT l.id_member, m.member_name, m.show_online, m.avatar, g.online_color, g.id_group, g.group_name
FROM {db_prefix}log_online AS l
LEFT JOIN {db_prefix}members AS m ON (m.id_member = l.id_member)
LEFT JOIN {db_prefix}membergroups AS g ON (g.id_group = CASE WHEN m.id_group = 0 THEN m.id_post_group ELSE m.id_group END)
WHERE l.id_member > 0'
);
$members = array();
while ($row_members $smcFunc['db_fetch_assoc']($members_result))
{

      global 
$memberContext;
      
loadMemberData($row_members['id_member']);
      
loadMemberContext($row_members['id_member']);


   $members[] = array(
  'id' => $row_members['id_member'],
  'username' => '<a style="color: ' $row_members['online_color'] . ';" title="' $row_members['group_name'] . '" href="' $scripturl '?action=profile;u=' $row_members['id_member'] . '">' $row_members['member_name'] . '</a>',
  'avatar' => $row_members['avatar'] == '' $memberContext[$row_members['id_member']]['avatar']['href'] : (stristr($row_members['avatar'], 'http://') ? $row_members['avatar'] : $modSettings['avatar_url'] . '/' $row_members['avatar']),
  'hidden' => empty($row_members['show_online'])
   );
}
$smcFunc['db_free_result']($members_result);

$stats ssi_whosOnline('array');

// Output here we go!
echo sp_embed_image('dot'), ' '$txt['guests'], ': '$stats['num_guests'] .'<br />';

echo sp_embed_image('dot'), ' 'allowedTo('who_view') && !empty($modSettings['who_enabled']) ? '<a href="' $scripturl '?action=who">' ''$txt['online_users'], allowedTo('who_view') && !empty($modSettings['who_enabled']) ? '</a>' ''':
<br /><div>'
;

foreach ($members as $member)
echo '<img style="margin-bottom: 2px;" src="' $member['avatar'] . '" width="30px" height="30px" align="middle" />&nbsp;' $member['username'] . '<br />';

echo '</div>';
?>
Title: Re: Whos online with avatar?
Post by: zapiy on July 08, 2011, 04:07:57 PM
Works a treat, thanks a lot..

Can i have the facebook code to see which i prefer please?
Title: Re: Whos online with avatar?
Post by: Blue on July 08, 2011, 10:35:36 PM
Advanced Who's Online is going to be my next block so this code is in beta since the layout is going to get better but have a look and tell me what you think. Images attached.

Code: [Select]
<?php
/*
Block: Who's Online with Avatar
Author: Blue @ Simple Portal.net
Version: 0.1beta
*/

// Let's grab some database results...
global $smcFunc$scripturl$sourcedir$modSettings$txt;


$members_result $smcFunc['db_query']('''
SELECT l.id_member, m.member_name, m.show_online, m.avatar, g.online_color, g.id_group, g.group_name
FROM {db_prefix}log_online AS l
LEFT JOIN {db_prefix}members AS m ON (m.id_member = l.id_member)
LEFT JOIN {db_prefix}membergroups AS g ON (g.id_group = CASE WHEN m.id_group = 0 THEN m.id_post_group ELSE m.id_group END)
WHERE l.id_member > 0'
);
$members = array();
while ($row_members $smcFunc['db_fetch_assoc']($members_result))
{

      global 
$memberContext;
      
loadMemberData($row_members['id_member']);
      
loadMemberContext($row_members['id_member']);


   $members[] = array(
  'id' => $row_members['id_member'],
  'username' => $row_members['member_name'],
  'profile' => '<a style="color: ' $row_members['online_color'] . ';" title="' $row_members['group_name'] . '" href="' $scripturl '?action=profile;u=' $row_members['id_member'] . '">' $row_members['member_name'] . '</a>',
  'link' => $scripturl '?action=profile;u=' $row_members['id_member'],
  'avatar' => $row_members['avatar'] == '' $memberContext[$row_members['id_member']]['avatar']['href'] : (stristr($row_members['avatar'], 'http://') ? $row_members['avatar'] : $modSettings['avatar_url'] . '/' $row_members['avatar']),
  'hidden' => empty($row_members['show_online'])
   );
}
$smcFunc['db_free_result']($members_result);

$stats ssi_whosOnline('array');

// Output here we go!

echo '<div>';

foreach ($members as $member) {
echo '
<a href="' 
$member['link'] . '">
<img style="margin-top:2px;margin-left:2px;margin-bottom:2px;" src="' 
$member['avatar'] . '" width="35px" height="35px" align="middle" title="' $member['username'] . '" alt="' $member['username'] . '" />
</a>'
;
}
echo '</div><hr />';

echo sp_embed_image('dot'), ' '$txt['guests'], ': '$stats['num_guests'] .'&nbsp;|&nbsp;';
echo sp_embed_image('dot'), ' 'allowedTo('who_view') && !empty($modSettings['who_enabled']) ? '<a href="' $scripturl '?action=who">' '''Users'allowedTo('who_view') && !empty($modSettings['who_enabled']) ? '</a>:&nbsp;' $stats['num_users'] : '';


?>
Title: Re: Whos online with avatar?
Post by: kimyaci on July 15, 2011, 05:46:20 PM
if the avatar is not selected. No avatar, how shows? Thanks.
Title: Re: Whos online with avatar?
Post by: Old Fossil on July 15, 2011, 06:09:24 PM
if the avatar is not selected. No avatar, how shows? Thanks.

So an avatar always shows and the users have no selected avatar I would try and install the default avatar mod.

Blue this looks rather good for those whom don't like long lists of names.

How would the spiders and hidden users be included?
Title: Re: Whos online with avatar?
Post by: Blue on July 15, 2011, 06:47:48 PM
if the avatar is not selected. No avatar, how shows? Thanks.

It doesn't show but this is 0.1beta. I'm going to make it perfect through out this week. July 20 I'll post the 1.0 version.

How would the spiders and hidden users be included?

This feature will be included in 1.0 version ;)
Title: Re: Whos online with avatar?
Post by: Old Fossil on July 15, 2011, 06:56:02 PM
Careful I might ask for Users in Chat and Arcade too.

 >:-D
Title: Re: Whos online with avatar?
Post by: S@ffz on July 15, 2011, 06:58:26 PM
This is a great block Blue.
Title: Re: Whos online with avatar?
Post by: Divecall on July 16, 2011, 11:43:52 AM
Another great BB (= Blues`s Block) !

Is there a way, to make it compatible with the "User-Online-Today"-Mod?
Title: Re: Whos online with avatar?
Post by: Blue on July 16, 2011, 04:47:45 PM
Careful I might ask for Users in Chat and Arcade too.

 >:-D

Ahahah! Maybe for 1.1. We never know :P

Another great BB (= Bues`s Block) !

Is there a way, to make it compatible with the "User-Online-Today"-Mod?

1º Thank You :P
2º Maybe for 1.1 too. First I need to perfect the code. After that, I'll start to add features :)
Title: Re: Whos online with avatar?
Post by: S@ffz on July 19, 2011, 08:57:53 PM
I look forward to your release of this block Blue  :D
Title: Re: Whos online with avatar?
Post by: Blue on July 20, 2011, 03:16:03 PM
I'm going to see if I can finish it today. If not I'll post it tomorrow.
SimplePortal 2.3.8 © 2008-2024, SimplePortal