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)) $strOutput = Settings::$varValues[$strSettingName]; else { if ($intSave) Settings::set($strSettingName, $strDefault); } return trim($strOutput); } public static function set($strSettingName, $strValue) { Settings::$varValues = null; global $c; $strValue = trim($strValue); $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); } public static function makeReplacements($strText) { // Handle nested setting value injection: preg_match_all("/\{\{([A-Za-z0-9_]{1,})\}\}/i", $strText, $varMatches); if (count($varMatches[1]) > 0) foreach ($varMatches[1] as $varMatch) { $strKey = $varMatch; $strValue = Settings::get($strKey); $strText = preg_replace("/\{\{$strKey\}\}/i", $strValue, $strText); } return $strText; } } ?>