static function value($name, $user = false) { if (!$user instanceof eZUser) { $user = eZUser::currentUser(); } $value = false; // If the user object is not the currently logged in user we cannot use the session values $http = eZHTTPTool::instance(); $useCache = $user->ContentObjectID == $http->sessionVariable('eZUserLoggedInID', false); if ($useCache and eZPreferences::isStoredInSession($name)) { return eZPreferences::storedSessionValue($name); } // If this the anonymous user we should return false, no need to check database. if ($user->isAnonymous()) { return false; } $db = eZDB::instance(); $name = $db->escapeString($name); $userID = $user->attribute('contentobject_id'); $existingRes = $db->arrayQuery("SELECT value FROM ezpreferences WHERE user_id = {$userID} AND name = '{$name}'"); if (count($existingRes) == 1) { $value = $existingRes[0]['value']; if ($useCache) { eZPreferences::storeInSession($name, $value); } } else { if ($useCache) { eZPreferences::storeInSession($name, false); } } return $value; }