diff options
author | cash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-11-29 12:36:38 +0000 |
---|---|---|
committer | cash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-11-29 12:36:38 +0000 |
commit | f0e7d14c218696142b41e0183dc734ddff162018 (patch) | |
tree | 9d085eaef6bf5425796951cc50c3c50bbb666417 /engine/lib | |
parent | e7fd07af05e1812e08a2e5ea39912e61af17d2d1 (diff) | |
download | elgg-f0e7d14c218696142b41e0183dc734ddff162018.tar.gz elgg-f0e7d14c218696142b41e0183dc734ddff162018.tar.bz2 |
Refs #2428 added elgg_get_config(), elgg_set_config(), and elgg_save_config()
git-svn-id: http://code.elgg.org/elgg/trunk@7470 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'engine/lib')
-rw-r--r-- | engine/lib/configuration.php | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/engine/lib/configuration.php b/engine/lib/configuration.php index b222b6b4f..bf5122653 100644 --- a/engine/lib/configuration.php +++ b/engine/lib/configuration.php @@ -18,6 +18,92 @@ */ /** + * Get an Elgg configuration value + * + * @param string $name Name of the configuration value + * @param int $site_guid NULL for installation setting, 0 for default site + * + * @return mixed Configuration value or false if it does not exist + * @since 1.8.0 + */ +function elgg_get_config($name, $site_guid = 0) { + global $CONFIG; + + $name = trim($name); + + if (isset($CONFIG->$name)) { + return $CONFIG->$name; + } + + if ($site_guid === NULL) { + // installation wide setting + $value = datalist_get($name); + } else { + // site specific setting + if ($site_guid == 0) { + $site_guid = (int) $CONFIG->site_id; + } + $value = get_config($name, $site_guid); + } + + if ($value !== false) { + $CONFIG->$name = $value; + return $value; + } + + return false; +} + +/** + * Set an Elgg configuration value + * + * @warning This does not persist the configuration setting. Use elgg_save_config() + * + * @param string $name Name of the configuration value + * @param mixed $value Value + * + * @return void + * @since 1.8.0 + */ +function elgg_set_config($name, $value) { + global $CONFIG; + + $name = trim($name); + + $CONFIG->$name = $value; +} + +/** + * Save a configuration setting + * + * @param string $name Configuration name + * @param mixed $value Configuration value. Should be string for installation setting + * @param int $site_guid NULL for installation setting, 0 for default site + * + * @return bool + * @since 1.8.0 + */ +function elgg_save_config($name, $value, $site_guid = 0) { + global $CONFIG; + + $name = trim($name); + + elgg_set_config($name, $value); + + if ($site_guid === NULL) { + if (is_array($value) || is_object($value)) { + return false; + } + return datalist_set($name, $value); + } else { + if ($site_guid == 0) { + $site_guid = (int) $CONFIG->site_id; + } + return set_config($name, $value, $site_guid); + } +} + +/** * Check that installation has completed and the database is populated. * * @throws InstallationException |