pics/models/Setting.php

100 lines
2.2 KiB
PHP

<?php
/*****************************************************************************
* Setting.php
* Contains key class Setting.
*
* Kabuki CMS (C) 2013-2015, Aaron van Geffen
*****************************************************************************/
class Setting
{
public static $cache = [];
public static function set($key, $value, $id_user = null)
{
$id_user = Registry::get('user')->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]);
}
}
}