Ejemplo n.º 1
0
 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;
 }