X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Flibs%2Fnickname_functions.php;h=8b9fe5bcecdaad182f653205a002da7cebd3e79c;hp=d1834fb34dd553d61f180ee3619833e9d0cfdbbf;hb=e71e9e1380d65ccd06beef6fbc594bec10371f5f;hpb=bb47f1005eabd32848497388bf0e99012b6fd1cf diff --git a/inc/libs/nickname_functions.php b/inc/libs/nickname_functions.php index d1834fb34d..8b9fe5bcec 100644 --- a/inc/libs/nickname_functions.php +++ b/inc/libs/nickname_functions.php @@ -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; - $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; } + // -function NICKNAME_GET_NICK($userid) -{ +function NICKNAME_GET_NICK ($userid) { + global $cacheArray; + // 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; } + +// Simple wrapper function +function NICKNAME_PROBE_ON_USERID ($uid) { + return (NICKNAME_GET_NICK($uid) != ""); +} + // ?>