Rewritten to use NICKNAME_IS_ACTIVE()
[mailer.git] / inc / libs / nickname_functions.php
index fde09eadf90ed5784c44097cabec4f3dd6700d93..c776c5fb50092588a4790f3368546f66883a7bb4 100644 (file)
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Nickname-Funktionen                              *
  * -------------------------------------------------------------------- *
- *                                                                      *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * Needs to be in all Files and every File needs "svn propset           *
+ * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2008 by Roland Haeder                           *
  * For more information visit: http://www.mxchange.org                  *
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
+       $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), '/inc') + 4) . '/security.php';
        require($INC);
 }
 
-//
-function NICKNAME_IS_ACTIVE($uidNick)
-{
+// Checks wether the nickname is active
+function NICKNAME_IS_ACTIVE ($uidNick) {
+       // 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($GLOBALS['cache_array']['nick_active'][$uidNick])) {
+               // Use it directly
+               $ret = $GLOBALS['cache_array']['nick_active'][$uidNick];
 
-       // Free result
-       SQL_FREERESULT($result);
+               // Increment cache counter
+               incrementConfigEntry('cache_hits');
+       } else {
+               // Nickname or userid used?
+               $nick = NICKNAME_GET_NICK($uidNick);
+
+               // Put it in cache
+               $GLOBALS['cache_array']['nick_active'][$uidNick] = (!empty($nick));
+
+               // Free result
+               SQL_FREERESULT($result);
+       }
 
        // Return nickname
        return $ret;
 }
-//
-function NICKNAME_GET_NICK($userid)
-{
+
+// "Getter" for nickname for specfied userid
+function NICKNAME_GET_NICK ($userid) {
        // If not found...
-       $ret = "";
+       $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($GLOBALS['cache_array']['nicknames'][$userid])) {
+               // Use it directly
+               $ret = $GLOBALS['cache_array']['nicknames'][$userid];
 
-       // Found?
-       if (SQL_NUMROWS($result) == 1)
-       {
-               // Load nickname from database
-               list($ret) = SQL_FETCHROW($result);
-       }
+               // Increment cache counter
+               incrementConfigEntry('cache_hits');
+       } else {
+               // Init result
+               $result = false;
+
+               // Nickname or userid used?
+               if (''.round($uidNick).'' === ''.$uidNick.'') {
+                       // Userid given
+                       $result = SQL_QUERY_ESC("SELECT `userid`  FROM `{!_MYSQL_PREFIX!}_user_data` WHERE `userid` =%s LIMIT 1",
+                               array(bigintval($uidNick)), __FUNCTION__, __LINE__);
+               } else {
+                       // Nickname given
+                       $result = SQL_QUERY_ESC("SELECT `userid`  FROM `{!_MYSQL_PREFIX!}_user_data` WHERE `nickname`='%s' LIMIT 1",
+                               array($uidNick), __FUNCTION__, __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
+                       $GLOBALS['cache_array']['nicknames'][$userid] = $ret;
+               } // END - if
+
+               // Free result
+               SQL_FREERESULT($result);
+       }
 
        // Return nickname
        return $ret;
 }
+
 //
 ?>