[ Index ]

PHP Cross Reference of Joomla 2.5.4 DE

title

Body

[close]

/modules/mod_whosonline/ -> helper.php (source)

   1  <?php
   2  /**
   3   * @package        Joomla.Site
   4   * @subpackage    mod_whosonline
   5   * @copyright    Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
   6   * @license        GNU General Public License version 2 or later; see LICENSE.txt
   7   */
   8  
   9  // no direct access
  10  defined('_JEXEC') or die;
  11  
  12  class modWhosonlineHelper
  13  {
  14      // show online count
  15  	static function getOnlineCount() {
  16          $db        = JFactory::getDbo();
  17          // calculate number of guests and users
  18          $result    = array();
  19          $user_array  = 0;
  20          $guest_array = 0;
  21          $query    = $db->getQuery(true);
  22          $query->select('guest, usertype, client_id');
  23          $query->from('#__session');
  24          $query->where('client_id = 0');
  25          $db->setQuery($query);
  26          $sessions = (array) $db->loadObjectList();
  27  
  28          if (count($sessions)) {
  29              foreach ($sessions as $session) {
  30                  // if guest increase guest count by 1
  31                  if ($session->guest == 1 && !$session->usertype) {
  32                      $guest_array ++;
  33                  }
  34                  // if member increase member count by 1
  35                  if ($session->guest == 0) {
  36                      $user_array ++;
  37                  }
  38              }
  39          }
  40  
  41          $result['user']  = $user_array;
  42          $result['guest'] = $guest_array;
  43  
  44          return $result;
  45      }
  46  
  47      // show online member names
  48  	static function getOnlineUserNames($params) {
  49          $db        = JFactory::getDbo();
  50          $query    = $db->getQuery(true);
  51          $query->select('a.username, a.time, a.userid, a.usertype, a.client_id');
  52          $query->from('#__session AS a');
  53          $query->where('a.userid != 0');
  54          $query->where('a.client_id = 0');
  55          $query->group('a.userid');
  56          $user = JFactory::getUser();
  57          if (!$user->authorise('core.admin') && $params->get('filter_groups', 0) == 1)
  58          {
  59              $groups = $user->getAuthorisedGroups();
  60              if (empty($groups))
  61              {
  62                  return array();
  63              }
  64              $query->leftJoin('#__user_usergroup_map AS m ON m.user_id = a.userid');
  65              $query->leftJoin('#__usergroups AS ug ON ug.id = m.group_id');
  66              $query->where('ug.id in (' . implode(',', $groups) . ')');
  67              $query->where('ug.id <> 1');
  68          }
  69          $db->setQuery($query);
  70          return (array) $db->loadObjectList();
  71      }
  72  }


Generated: Tue Apr 3 11:40:28 2012 Cross-referenced by PHPXref 0.7.1