A lot has been rewritten, ext-teams added, ext-forced continued:
[mailer.git] / inc / modules / admin / what-usr_online.php
index d1a676b52ece97d80573d0864c9554b0eef007f9..ad15f3fd951f293d945d9b4d32cecaac91aa2bd1 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /************************************************************************
- * MXChange v0.2.1                                    Start: 01/14/2005 *
- * ================                             Last change: 01/14/2005 *
+ * Mailer v0.2.1-FINAL                                Start: 01/14/2005 *
+ * ===================                          Last change: 01/14/2005 *
  *                                                                      *
  * -------------------------------------------------------------------- *
  * File              : what-usr_online.php                              *
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Wer ist wo? (KEINE Untermenues anhaengen!)       *
  * -------------------------------------------------------------------- *
- *                                                                      *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
- * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
  * For more information visit: http://www.mxchange.org                  *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  ************************************************************************/
 
 // Some security stuff...
-if ((!defined('__SECURITY')) || (!IS_ADMIN())) {
-       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
-       require($INC);
-}
+if ((!defined('__SECURITY')) || (!isAdmin())) {
+       die();
+} // END - if
 
 // Add description as navigation point
-ADD_DESCR("admin", __FILE__);
+addYouAreHereLink('admin', __FILE__);
 
-if (EXT_IS_ACTIVE("online", true))
-{
+// Online stats are only working if extension ext-online is installed
+if (isExtensionActive('online')) {
        // Count guests, members and admins
-       $result_guests  = SQL_QUERY("SELECT id FROM `{!_MYSQL_PREFIX!}_online` WHERE is_admin='N' AND is_member='N'", __FILE__, __LINE__);
-       $result_members = SQL_QUERY("SELECT id FROM `{!_MYSQL_PREFIX!}_online` WHERE is_admin='N' AND is_member='Y'", __FILE__, __LINE__);
-       $result_admins  = SQL_QUERY("SELECT id FROM `{!_MYSQL_PREFIX!}_online` WHERE is_admin='Y'", __FILE__, __LINE__);
-
-       // Remember values for the template
-       define('_GUESTS_ONLINE' , SQL_NUMROWS($result_guests));
-       define('_ADMINS_ONLINE' , SQL_NUMROWS($result_admins));
-       define('_MEMBERS_ONLINE', SQL_NUMROWS($result_members));
-
-       // Free memory
-       SQL_FREERESULT($result_guests);
-       SQL_FREERESULT($result_admins);
-       SQL_FREERESULT($result_members);
+       // @TODO Add a filter for sponsor
+       $content['guests_online']  = countSumTotalData('N', 'online', 'id', 'is_admin', true, " AND `is_member`='N'");
+       $content['admins_online']  = countSumTotalData('N', 'online', 'id', 'is_admin', true, " AND `is_member`='Y'");
+       $content['members_online'] = countSumTotalData('N', 'online', 'id', 'is_admin', true);
 
        // Load template
-       LOAD_TEMPLATE("admin_mini_online");
+       loadTemplate('admin_mini_online', false, $content);
 
        // Check for online users
-       $result = SQL_QUERY("SELECT id, ip, userid, refid, module, action, what, is_member, is_admin, timestamp FROM `{!_MYSQL_PREFIX!}_online` ORDER by timestamp DESC", __FILE__, __LINE__);
-       if (SQL_NUMROWS($result) > 0)
-       {
-               // Load header template
-               LOAD_TEMPLATE("admin_online_header");
-
+       $result = SQL_QUERY("SELECT `id`,`ip`,`userid`,`refid`,`module`,`action`,`what`,`is_member`,`is_admin`,`timestamp` FROM `{?_MYSQL_PREFIX?}_online` ORDER by `timestamp` DESC",
+               __FILE__, __LINE__);
+       if (!SQL_HASZERONUMS($result)) {
                // List all online users
-               $SW = 2;
-               while (list($id, $ip, $uid, $ref, $mod, $act, $wht, $mem, $admin, $time) = SQL_FETCHROW($result))
-               {
-                       if (empty($act)) $act = "---";
-                       if (empty($wht))   $wht = "---";
-
-                       if ($admin == "Y")
-                       {
+               $OUT = '';
+               while ($row = SQL_FETCHARRAY($result)) {
+                       if ($row['is_admin'] == 'Y') {
                                // Is an administrator
-                               $uid = _IS_ADMIN;
-                       }
-                        elseif (($mem == "N") && ($admin == "N"))
-                       {
+                               $row['userid'] = '{--_IS_ADMIN--}';
+                       } elseif (($row['is_member'] != 'Y') && ($row['is_admin'] != 'Y')) {
                                // Is a guest
-                               $uid = _IS_GUEST;
-                       }
-                       OUTPUT_HTML("<tr>
-  <td align=\"center\" width=\"5%\" class=\"switch_sw".$SW." bottom right\">".$id."</td>
-  <td align=\"center\" width=\"15%\" class=\"switch_sw".$SW." bottom right\">");
-                       if ($uid > 0)
-                       {
-                               OUTPUT_HTML(ADMIN_USER_PROFILE_LINK($uid));
+                               $row['userid'] = '{--_IS_GUEST--}';
+                       } elseif (isValidUserId($row['userid'])) {
+                               // Add profile link to userid
+                               $row['userid'] = generateUserProfileLink($row['userid']);
                        }
-                        else
-                       {
-                               OUTPUT_HTML($uid);
-                       }
-                       if ($ref > 0)
-                       {
-                               $ref = ADMIN_USER_PROFILE_LINK($ref);
-                       }
-                       OUTPUT_HTML("</td>
-  <td align=\"center\" width=\"10%\" class=\"switch_sw".$SW." bottom right\">".$ip."</td>
-  <td align=\"center\" width=\"5%\" class=\"switch_sw".$SW." bottom right\">".$ref."</td>
-  <td align=\"center\" width=\"10%\" class=\"switch_sw".$SW." bottom right\">".$mod."</td>
-  <td align=\"center\" width=\"10%\" class=\"switch_sw".$SW." bottom right\">".$act."</td>
-  <td align=\"center\" width=\"5%\" class=\"switch_sw".$SW." bottom right\">".$wht."</td>
-  <td align=\"center\" width=\"10%\" class=\"switch_sw".$SW." bottom\">".MAKE_DATETIME($time, "2")."</td>
-</tr>");
-                       $SW = 3 - $SW;
-               }
+
+                       // Add more content
+                       $row['timestamp'] = generateDateTime($row['timestamp'], 2);
+
+                       // Load row template and switch color
+                       $OUT .= loadTemplate('admin_list_online_row', true, $row);
+               } // END - while
 
                // Free memory
                SQL_FREERESULT($result);
 
+               // Remember rows and fancy time in array
+               $content['rows']           = $OUT;
+
                // Load footer template
-               define('__FANCY_ONLINE_TIMEOUT', CREATE_FANCY_TIME(getConfig('online_timeout')));
-               LOAD_TEMPLATE("admin_online_footer");
-       }
-}
- else
-{
+               loadTemplate('admin_list_online', false, $content);
+       } // END - if
+} else {
        // Online statistics deactivated!
-       LOAD_TEMPLATE("admin_settings_saved", false, ONLINE_STATISTICS_DEACTIVATED);
+       displayMessage('{--ONLINE_STATISTICS_DEACTIVATED--}');
 }
-//
+
+// [EOF]
 ?>