]> git.mxchange.org Git - mailer.git/blobdiff - inc/libs/nickname_functions.php
Cookie code removed, rewritten, internal URLs are now relative (see LOAD_URL()),...
[mailer.git] / inc / libs / nickname_functions.php
index d1834fb34dd553d61f180ee3619833e9d0cfdbbf..8b9fe5bcecdaad182f653205a002da7cebd3e79c 100644 (file)
@@ -38,43 +38,79 @@ if (!defined('__SECURITY')) {
 }
 
 //
 }
 
 //
-function NICKNAME_IS_ACTIVE($uidNick)
-{
+function NICKNAME_IS_ACTIVE ($uidNick) {
+       global $cacheArray;
+
+       // By default nothing is found...
        $ret = false;
        $ret = false;
-       $result = SQL_QUERY_ESC("SELECT userid FROM `"._MYSQL_PREFIX."_user_data` WHERE (userid=%s AND userid > 0) OR nickname='%s' LIMIT 1",
-        array(bigintval($uidNick), $uidNick), __FILE__, __LINE__);
 
 
-       // Check existence of nickname
-       if (SQL_NUMROWS($result) == 1) $ret = true;
+       // Found in cache?
+       if (isset($cacheArray['nick_active'][$uidNick])) {
+               // Use it directly
+               $ret = $cacheArray['nick_active'][$uidNick];
+
+               // Increment cache counter
+               incrementConfigEntry('cache_hits');
+       } else {
+               // Search in database
+               // @TODO Can we replace this with GET_TOTAL_DATA() ?
+               $result = SQL_QUERY_ESC("SELECT userid FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s OR nickname='%s' LIMIT 1",
+                       array(bigintval($uidNick), $uidNick), __FILE__, __LINE__);
 
 
-       // Free result
-       SQL_FREERESULT($result);
+               // Check existence of nickname
+               $ret = (SQL_NUMROWS($result) == 1);
+
+               // Put it in cache
+               $cacheArray['nick_active'][$uidNick] = $ret;
+
+               // Free result
+               SQL_FREERESULT($result);
+       }
 
        // Return nickname
        return $ret;
 }
 
        // Return nickname
        return $ret;
 }
+
 //
 //
-function NICKNAME_GET_NICK($userid)
-{
+function NICKNAME_GET_NICK ($userid) {
+       global $cacheArray;
+
        // If not found...
        $ret = "";
 
        // If not found...
        $ret = "";
 
-       // Search for non-empty nickname
-       $result = SQL_QUERY_ESC("SELECT nickname FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s AND nickname != '' LIMIT 1",
-        array(bigintval($userid)), __FILE__, __LINE__);
+       // Found in cache?
+       if (isset($cacheArray['nicknames'][$userid])) {
+               // Use it directly
+               $ret = $cacheArray['nicknames'][$userid];
 
 
-       // Found?
-       if (SQL_NUMROWS($result) == 1)
-       {
-               // Load nickname from database
-               list($ret) = SQL_FETCHROW($result);
-       }
+               // Increment cache counter
+               incrementConfigEntry('cache_hits');
+       } elseif (NICKNAME_IS_ACTIVE($userid)) {
+               // Search for non-empty nickname
+               $result = SQL_QUERY_ESC("SELECT nickname FROM `"._MYSQL_PREFIX."_user_data` WHERE userid=%s AND nickname != '' LIMIT 1",
+                       array(bigintval($userid)), __FILE__, __LINE__);
+
+               // Found?
+               if (SQL_NUMROWS($result) == 1) {
+                       // Load nickname from database
+                       list($ret) = SQL_FETCHROW($result);
 
 
-       // Free result
-       SQL_FREERESULT($result);
+                       // Put it in cche
+                       $cacheArray['nicknames'][$userid] = $ret;
+               } // END - if
+
+               // Free result
+               SQL_FREERESULT($result);
+       }
 
        // Return nickname
        return $ret;
 }
 
        // Return nickname
        return $ret;
 }
+
+// Simple wrapper function
+function NICKNAME_PROBE_ON_USERID ($uid) {
+       return (NICKNAME_GET_NICK($uid) != "");
+}
+
 //
 ?>
 //
 ?>