* -------------------------------------------------------------------- *
* 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 *
}
//
-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) != "");
+}
+
//
?>