getUserId(); if (isset(self::$cache[$id_user], self::$cache[$id_user][$key])) unset(self::$cache[$id_user][$key]); if (Registry::get('db')->query(' REPLACE INTO settings (id_user, variable, value, time_set) VALUES (:id_user, :key, :value, CURRENT_TIMESTAMP())', [ 'id_user' => $id_user, 'key' => $key, 'value' => $value, ])) { if (!isset(self::$cache[$id_user])) self::$cache[$id_user] = []; self::$cache[$id_user][$key] = $value; } } public static function get($key, $id_user = null) { $id_user = Registry::get('user')->getUserId(); if (isset(self::$cache[$id_user], self::$cache[$id_user][$key])) return self::$cache[$id_user][$key]; $value = Registry::get('db')->queryValue(' SELECT value FROM settings WHERE id_user = :id_user AND variable = :key', [ 'id_user' => $id_user, 'key' => $key, ]); if (!$value) return false; if (!isset(self::$cache[$id_user])) self::$cache[$id_user] = []; self::$cache[$id_user][$key] = $value; return $value; } public static function remove($key, $id_user = null) { // User setting or global setting? if ($id_user === null) $id_user = Registry::get('user')->getUserId(); $pairs = Registry::get('db')->queryPair(' SELECT variable, value FROM settings WHERE id_user = :id_user', [ 'id_user' => $id_user, ]); return $pairs; } public static function remove($key, $id_user = 0) { // User setting or global setting? if ($id_user === null) $id_user = Registry::get('user')->getUserId(); if (Registry::get('db')->query(' DELETE FROM settings WHERE id_user = :id_user AND variable = :key', [ 'id_user' => $id_user, 'key' => $key, ])) { if (isset(self::$cache[$id_user], self::$cache[$id_user][$key])) unset(self::$cache[$id_user][$key]); } } }