A lot while() conditions rewritten to SQL_FETCHARRAY(), see bug #107, @TODO tags...
[mailer.git] / inc / modules / admin / what-usr_online.php
index d1a676b52ece97d80573d0864c9554b0eef007f9..17fbc97f49c1b976a4f9f61076a5cfef583b611a 100644 (file)
@@ -40,88 +40,75 @@ if ((!defined('__SECURITY')) || (!IS_ADMIN())) {
 // Add description as navigation point
 ADD_DESCR("admin", __FILE__);
 
-if (EXT_IS_ACTIVE("online", true))
-{
+// Online stats are only working if extension ext-online is installed
+if (EXT_IS_ACTIVE("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 Rewrite these constants
+       // @TODO Add a filter for sponsor
+       define('_GUESTS_ONLINE' , GET_TOTAL_DATA("N", "online", "id", "is_admin", true, " AND is_member='N'"));
+       define('_ADMINS_ONLINE' , GET_TOTAL_DATA("N", "online", "id", "is_admin", true, " AND is_member='Y'"));
+       define('_MEMBERS_ONLINE', GET_TOTAL_DATA("N", "online", "id", "is_admin", true));
 
        // Load template
        LOAD_TEMPLATE("admin_mini_online");
 
        // 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)
-       {
+       $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");
 
                // 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 = "---";
+               while ($content = SQL_FETCHARRAY($result)) {
+                       // Fix empty action/what
+                       if (empty($content['action'])) $content['action'] = "---";
+                       if (empty($content['what']))   $content['what']   = "---";
 
-                       if ($admin == "Y")
-                       {
+                       if ($content['is_admin'] == "Y") {
                                // Is an administrator
-                               $uid = _IS_ADMIN;
-                       }
-                        elseif (($mem == "N") && ($admin == "N"))
-                       {
+                               $content['userid'] = getMessage('_IS_ADMIN');
+                       } elseif (($content['is_member'] == "N") && ($content['is_admin'] == "N")) {
                                // Is a guest
-                               $uid = _IS_GUEST;
-                       }
+                               $content['userid'] = getMessage('_IS_GUEST');
+                       } elseif ($content['userid'] > 0) {
+                               // Add profile link to userid
+                               $content['userid'] = ADMIN_USER_PROFILE_LINK($content['userid']);
+                       } // END - if
+
+                       // Is the refid set?
+                       if ($content['refid'] > 0) {
+                               // Add profile link to referer id
+                               $content['refid'] = ADMIN_USER_PROFILE_LINK($content['refid']);
+                       } // END - if
+
                        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));
-                       }
-                        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>
+  <td align=\"center\" width=\"5%\" class=\"switch_sw".$SW." bottom right\">".$content['id']."</td>
+  <td align=\"center\" width=\"15%\" class=\"switch_sw".$SW." bottom right\">".$content['userid']."</td>
+  <td align=\"center\" width=\"10%\" class=\"switch_sw".$SW." bottom right\">".$content['ip']."</td>
+  <td align=\"center\" width=\"5%\" class=\"switch_sw".$SW." bottom right\">".$content['refid']."</td>
+  <td align=\"center\" width=\"10%\" class=\"switch_sw".$SW." bottom right\">".$content['module']."</td>
+  <td align=\"center\" width=\"10%\" class=\"switch_sw".$SW." bottom right\">".$content['action']."</td>
+  <td align=\"center\" width=\"5%\" class=\"switch_sw".$SW." bottom right\">".$content['what']."</td>
+  <td align=\"center\" width=\"10%\" class=\"switch_sw".$SW." bottom\">".MAKE_DATETIME($content['timestamp'], "2")."</td>
 </tr>");
                        $SW = 3 - $SW;
-               }
+               } // END - while
 
                // Free memory
                SQL_FREERESULT($result);
 
-               // Load footer template
+               // @TODO Rewrite this constant
                define('__FANCY_ONLINE_TIMEOUT', CREATE_FANCY_TIME(getConfig('online_timeout')));
+
+               // Load footer template
                LOAD_TEMPLATE("admin_online_footer");
-       }
-}
- else
-{
+       } // END - if
+} else {
        // Online statistics deactivated!
-       LOAD_TEMPLATE("admin_settings_saved", false, ONLINE_STATISTICS_DEACTIVATED);
+       LOAD_TEMPLATE("admin_settings_saved", false, getMessage('ONLINE_STATISTICS_DEACTIVATED'));
 }
+
 //
 ?>