SimplePortal

Customization => Custom Coding => Topic started by: tombillings on February 10, 2011, 10:36:54 AM

Title: Who's Online Horizontal Listing
Post by: tombillings on February 10, 2011, 10:36:54 AM
Hello I'm trying to get my who's online block to list the people online horizontally not vertically I am using SMF 2.0 r4 and SP 2.3.3 I have tried out 130860's code for it as I will list here and I still had no resolve as it did put things horizontal, but did not display who was online meaning no one showed up as being online. Thanks in advance.

Code: [Select]
global $context, $txt, $settings, $modSettings;

// "Users online" - in order of activity.
   echo '
         
           
                                 ', $context['show_who'] ? '<a href="' . $scripturl . '?action=who' . '">' : '', '<img class="icon" src="', $settings['images_url'], '/icons/online.gif', '" alt="', $txt['online_users'], '" />', $context['show_who'] ? '</a>' : '', '
                  ', $txt['online_users'], '
               
           
         
         <p class="inline stats">
            ', $context['show_who'] ? '<a href="' . $scripturl . '?action=who">' : '', comma_format($context['num_guests']), ' ', $context['num_guests'] == 1 ? $txt['guest'] : $txt['guests'], ', ' . comma_format($context['num_users_online']), ' ', $context['num_users_online'] == 1 ? $txt['user'] : $txt['users'];

   // Handle hidden users and buddies.
   $bracketList = array();
   if ($context['show_buddies'])
      $bracketList[] = comma_format($context['num_buddies']) . ' ' . ($context['num_buddies'] == 1 ? $txt['buddy'] : $txt['buddies']);
   if (!empty($context['num_spiders']))
      $bracketList[] = comma_format($context['num_spiders']) . ' ' . ($context['num_spiders'] == 1 ? $txt['spider'] : $txt['spiders']);
   if (!empty($context['num_users_hidden']))
      $bracketList[] = comma_format($context['num_users_hidden']) . ' ' . $txt['hidden'];

   if (!empty($bracketList))
      echo ' (' . implode(', ', $bracketList) . ')';

   echo $context['show_who'] ? '</a>' : '', '
         </p>
         <p class="inline smalltext">';

   // Assuming there ARE users online... each user in users_online has an id, username, name, group, href, and link.
   if (!empty($context['users_online']))
   {
      echo '
            ', sprintf($txt['users_active'], $modSettings['lastActive']), ':<br />', implode(', ', $context['list_users_online']);

      // Showing membergroups?
      if (!empty($settings['show_group_key']) && !empty($context['membergroups']))
         echo '
            <br />[' . implode(']&nbsp;&nbsp;[', $context['membergroups']) . ']';
   }

   echo '
         </p>
         <p class="last smalltext">
            ', $txt['most_online_today'], ': <strong>', comma_format($modSettings['mostOnlineToday']), '</strong>.
            ', $txt['most_online_ever'], ': ', comma_format($modSettings['mostOnline']), ' (', timeformat($modSettings['mostDate']), ')
         </p>';
Title: Re: Who's Online Horizontal Listing
Post by: Ares on February 10, 2011, 07:04:09 PM
Code: [Select]
global $txt, $modSettings, $scripturl, $context, $sourcedir, $smcFunc;
   
   // Get the user online list.
   require_once($sourcedir . '/Subs-MembersOnline.php');
   $membersOnlineOptions = array(
      'show_hidden' => allowedTo('moderate_forum'),
      'sort' => 'log_time',
      'reverse_sort' => true,
   );
   $context += getMembersOnlineStats($membersOnlineOptions);
   
   // "Users online" - in order of activity.
   echo '
         <div class="infocenter_section">
            <div>
               <div>
                  ', $context['show_who'] ? '<a href="' . $scripturl . '?action=who">' : '', $context['num_guests'], ' ', $context['num_guests'] == 1 ? $txt['guest'] : $txt['guests'], ', ' . $context['num_users_online'], ' ', $context['num_users_online'] == 1 ? $txt['user'] : $txt['users'];

   // Handle hidden users and buddies.
   $bracketList = array();
   if ($context['show_buddies'])
      $bracketList[] = $context['num_buddies'] . ' ' . ($context['num_buddies'] == 1 ? $txt['buddy'] : $txt['buddies']);
   if (!empty($context['num_spiders']))
      $bracketList[] = $context['num_spiders'] . ' ' . ($context['num_spiders'] == 1 ? $txt['spider'] : $txt['spiders']);
   if (!empty($context['num_users_hidden']))
      $bracketList[] = $context['num_users_hidden'] . ' ' . $txt['hidden'];

   if (!empty($bracketList))
      echo ' (' . implode(', ', $bracketList) . ')';

   echo $context['show_who'] ? '</a>' : '', '
                  <div class="smalltext">';

   // Assuming there ARE users online... each user in users_online has an id, username, name, group, href, and link.
   if (!empty($context['users_online']))
   {
      echo '
                     ', sprintf($txt['users_active'], $modSettings['lastActive']), ':<br />', implode(', ', $context['list_users_online']);

      // Showing membergroups?
global $context, $settings;
$context['membergroups'] = cache_quick_get('membergroup_list', 'Subs-Membergroups.php', 'cache_getMembergroupList', array());

      if (!empty($settings['show_group_key']) && !empty($context['membergroups']))
   echo '
      <br />[' . implode(']&nbsp;&nbsp;[', $context['membergroups']) . ']';
   }

    $my_groups = array(
        1 => array(
            'name' => 'Administrators: ',
            'members' => array(),
        ),
        2 => array(
            'name' => 'Global Moderators: ',
            'members' => array(),
        ),
        18 => array(
            'name' => 'Mods: ',
            'members' => array(),
        ),
    );

    $query = $smcFunc['db_query']('', '
        SELECT id_group, member_name
        FROM {db_prefix}members
        WHERE id_group IN ({array_int:groups})
        ORDER BY member_name',
        array(
            'groups' => array(1, 2, 11),
        )
    );
    while ($row = $smcFunc['db_fetch_assoc']($query))
        $my_groups[$row['id_group']]['members'][] = '<strong>' . $row['member_name'] . '</strong>';
    $smcFunc['db_free_result']($query);

    echo '
                  </div>
                  <hr />
                  <div class="smalltext">
                     ', $txt['most_online_today'], ': <b>', $modSettings['mostOnlineToday'], '</b>.
                     ', $txt['most_online_ever'], ': ', $modSettings['mostOnline'], ' (' , timeformat($modSettings['mostDate']), ')
<div style=font-size:9px;position:fixed;right:0px;top:0px></div><hr width=100%" size="2" color="green" align="center"><div class="catbg">Staff </div>';

    foreach ($my_groups as $group)
        echo '
<p><span style="color: #ffffff;">', $group['name'], '</span><span style="color: #ff0000;">', implode(', ', $group['members']), '</span></p>';

    echo '
</div></div>
               
            </div>
         </div>';

Madify this section changing
the numbers 1 2 and 18 with your group number
and change the names of those groups with the group name
Code: [Select]
  1 => array(
            'name' => 'Administrators: ',
            'members' => array(),
        ),
        2 => array(
            'name' => 'Global Moderators: ',
            'members' => array(),
        ),
        18 => array(
            'name' => 'Mods: ',
            'members' => array(),

cool huh?
Title: Re: Who's Online Horizontal Listing
Post by: tombillings on February 10, 2011, 09:51:09 PM
That code worked perfectly; minus 1 thing, it also produced a mini staff block embedded into the whos online block, directly beneath who is online, and the text is all in white against my white background, i already have a real staff block so this other one is not needed, is there a way to remove it?
Title: Re: Who's Online Horizontal Listing
Post by: Ares on February 12, 2011, 01:39:57 AM
here you  go without staff block
Code: [Select]
global $txt, $modSettings, $scripturl, $context, $sourcedir;
   
   // Get the user online list.
   require_once($sourcedir . '/Subs-MembersOnline.php');
   $membersOnlineOptions = array(
      'show_hidden' => allowedTo('moderate_forum'),
      'sort' => 'log_time',
      'reverse_sort' => true,
   );
   $context += getMembersOnlineStats($membersOnlineOptions);
   
   // "Users online" - in order of activity.
   echo '
         <div class="infocenter_section">
            <div class="windowbg">
               <div class="windowbg2 sectionbody">
                  ', $context['show_who'] ? '<a href="' . $scripturl . '?action=who">' : '', $context['num_guests'], ' ', $context['num_guests'] == 1 ? $txt['guest'] : $txt['guests'], ', ' . $context['num_users_online'], ' ', $context['num_users_online'] == 1 ? $txt['user'] : $txt['users'];

   // Handle hidden users and buddies.
   $bracketList = array();
   if ($context['show_buddies'])
      $bracketList[] = $context['num_buddies'] . ' ' . ($context['num_buddies'] == 1 ? $txt['buddy'] : $txt['buddies']);
   if (!empty($context['num_spiders']))
      $bracketList[] = $context['num_spiders'] . ' ' . ($context['num_spiders'] == 1 ? $txt['spider'] : $txt['spiders']);
   if (!empty($context['num_users_hidden']))
      $bracketList[] = $context['num_users_hidden'] . ' ' . $txt['hidden'];

   if (!empty($bracketList))
      echo ' (' . implode(', ', $bracketList) . ')';

   echo $context['show_who'] ? '</a>' : '', '
                  <div class="smalltext">';

   // Assuming there ARE users online... each user in users_online has an id, username, name, group, href, and link.
   if (!empty($context['users_online']))
   {
      echo '
                     ', sprintf($txt['users_active'], $modSettings['lastActive']), ':<br />', implode(', ', $context['list_users_online']);

      // Showing membergroups?
global $context, $settings;
$context['membergroups'] = cache_quick_get('membergroup_list', 'Subs-Membergroups.php', 'cache_getMembergroupList', array());

      if (!empty($settings['show_group_key']) && !empty($context['membergroups']))
   echo '
      <br />[' . implode(']&nbsp;&nbsp;[', $context['membergroups']) . ']';
   }

   echo '
                  </div>
                  <hr />
                  <div class="smalltext">
                     ', $txt['most_online_today'], ': <b>', $modSettings['mostOnlineToday'], '</b>.
                     ', $txt['most_online_ever'], ': ', $modSettings['mostOnline'], ' (' , timeformat($modSettings['mostDate']), ')

</div></div>
               </div>
            </div>
         </div>';
Title: Re: Who's Online Horizontal Listing
Post by: tombillings on February 12, 2011, 09:07:42 AM
Thanks so much ares, you totally solved my problem!!!  ;D
Title: Re: Who's Online Horizontal Listing
Post by: Ares on February 22, 2011, 01:22:03 AM
glade to help
Title: Re: Who's Online Horizontal Listing
Post by: thesikaleon on March 06, 2011, 08:41:55 AM
I want to have the same feature in my portal but i cant really understand what file i need to edit and what edit to make exactly.
Can pls someone make a guide step by step here so I wont mess my portal.

Pleaseee  :angel:
Title: Re: Who's Online Horizontal Listing
Post by: Ares on March 06, 2011, 05:21:21 PM
make a new php block and place the code there
SimplePortal 2.3.8 © 2008-2024, SimplePortal