PlainSQLiteBlog/lib/Settings.php

63 lines
1.7 KiB
PHP

<?php
class Settings
{
private static $varValues = null;
public static function get($strSettingName=null, $strDefault="", $intSave=0)
{
global $c;
if (Settings::$varValues == null)
{
$varRows = $c->query("SELECT * from settings order by setting");
$varValues = [];
foreach ($varRows as $r)
$varValues[$r["setting"]] = $r["value"];
Settings::$varValues = $varValues;
}
if ($strSettingName == null)
return Settings::$varValues;
if (array_key_exists($strSettingName, Settings::$varValues))
return Settings::$varValues[$strSettingName];
if ($intSave)
Settings::set($strSettingName, $strDefault);
return $strDefault;
}
public static function set($strSettingName, $strValue)
{
Settings::$varValues = null;
global $c;
$varExisting = $c->query("
SELECT *
from settings
where
setting like ?
order by
id desc",
$strSettingName);
if (count($varExisting) !== 1)
{
$c->query("DELETE from settings where setting like ?", $strSettingName);
$c->query("INSERT into settings (setting, value) values (?, ?)", $strSettingName, $strValue);
}
$c->query(
"UPDATE settings
set
value = ?
where setting like ?",
$strValue,
$strSettingName);
}
}
?>