/** * Get the site’s configuration settings * * @param string $setting_name * * @return string */ public static function getPreference($setting_name) { // There are lots of settings, and we need to fetch lots of them on every page // so it is quicker to fetch them all in one go. if (self::$setting === null) { self::$setting = WT_DB::prepare("SELECT SQL_CACHE setting_name, setting_value FROM `##site_setting`")->fetchAssoc(); } // A setting that hasn't yet been set? if (!array_key_exists($setting_name, self::$setting)) { self::$setting[$setting_name] = null; } return self::$setting[$setting_name]; }
public static function preference($setting_name, $setting_value = null) { // There are lots of settings, and we need to fetch lots of them on every page // so it is quicker to fetch them all in one go. if (self::$setting === null) { self::$setting = WT_DB::prepare("SELECT SQL_CACHE setting_name, setting_value FROM `##site_setting`")->fetchAssoc(); } // If $setting_value is null, then GET the setting if ($setting_value === null) { // If parameter two is not specified, GET the setting if (!array_key_exists($setting_name, self::$setting)) { self::$setting[$setting_name] = null; } return self::$setting[$setting_name]; } else { // If parameter two is specified, then SET the setting if (self::preference($setting_name) != $setting_value) { // Audit log of changes Log::addConfigurationLog('Site setting "' . $setting_name . '" set to "' . $setting_value . '"'); } WT_DB::prepare("REPLACE INTO `##site_setting` (setting_name, setting_value) VALUES (?, LEFT(?, 255))")->execute(array($setting_name, $setting_value)); self::$setting[$setting_name] = $setting_value; } }