Fixed logfile writing in installation phase, .revision is now ignored
[mailer.git] / inc / libs / nickname_functions.php
index fde09eadf90ed5784c44097cabec4f3dd6700d93..ed265ed750bc75d6d2ce50d2304dfe4a25ec8dd9 100644 (file)
  * -------------------------------------------------------------------- *
  * Kurzbeschreibung  : Nickname-Funktionen                              *
  * -------------------------------------------------------------------- *
- *                                                                      *
+ * $Revision:: 856                                                    $ *
+ * $Date:: 2009-03-06 20:24:32 +0100 (Fr, 06. Mär 2009)              $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author:: stelzi                                                   $ *
+ * 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                  *
@@ -38,43 +43,75 @@ if (!defined('__SECURITY')) {
 }
 
 //
-function NICKNAME_IS_ACTIVE($uidNick)
-{
+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];
+
+               // 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), __FUNCTION__, __LINE__);
 
-       // Free result
-       SQL_FREERESULT($result);
+               // Check existence of nickname
+               $ret = (SQL_NUMROWS($result) == 1);
+
+               // Put it in cache
+               $GLOBALS['cache_array']['nick_active'][$uidNick] = $ret;
+
+               // Free result
+               SQL_FREERESULT($result);
+       }
 
        // Return nickname
        return $ret;
 }
+
 //
-function NICKNAME_GET_NICK($userid)
-{
+function NICKNAME_GET_NICK ($userid) {
        // 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($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');
+       } 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)), __FUNCTION__, __LINE__);
 
-       // Free result
-       SQL_FREERESULT($result);
+               // Found?
+               if (SQL_NUMROWS($result) == 1) {
+                       // Load nickname from database
+                       list($ret) = SQL_FETCHROW($result);
+
+                       // Put it in cche
+                       $GLOBALS['cache_array']['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) != "");
+}
+
 //
 ?>