aboutsummaryrefslogtreecommitdiff
path: root/engine/lib/configuration.php
diff options
context:
space:
mode:
authorSem <sembrestels@riseup.net>2012-12-07 23:55:12 +0100
committerSem <sembrestels@riseup.net>2012-12-07 23:55:12 +0100
commit3ed289b03fa3d851fd7fffbc0441ebc9b5e98310 (patch)
treeb2c8d2d7f569f0e3e7bfa6711cef96f806aea9f1 /engine/lib/configuration.php
parent2b2af5392f0daadc22a1db04aa17c17d4dd37c65 (diff)
parentccf7abb4b2b94781f9b67a6cf8798994aa1cca0d (diff)
downloadelgg-3ed289b03fa3d851fd7fffbc0441ebc9b5e98310.tar.gz
elgg-3ed289b03fa3d851fd7fffbc0441ebc9b5e98310.tar.bz2
Merge tag '1.8.11' of git://github.com/Elgg/Elgg
Elgg 1.8.11 release
Diffstat (limited to 'engine/lib/configuration.php')
-rw-r--r--engine/lib/configuration.php26
1 files changed, 17 insertions, 9 deletions
diff --git a/engine/lib/configuration.php b/engine/lib/configuration.php
index 305aa00b6..b10e51130 100644
--- a/engine/lib/configuration.php
+++ b/engine/lib/configuration.php
@@ -91,23 +91,29 @@ function elgg_get_config($name, $site_guid = 0) {
return $CONFIG->$name;
}
- if ($site_guid === NULL) {
+ 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;
+ // hit DB only if we're not sure if value exists or not
+ if (!isset($CONFIG->site_config_loaded)) {
+ // site specific setting
+ if ($site_guid == 0) {
+ $site_guid = (int) $CONFIG->site_id;
+ }
+ $value = get_config($name, $site_guid);
+ } else {
+ $value = null;
}
- $value = get_config($name, $site_guid);
}
- if ($value !== false) {
- $CONFIG->$name = $value;
- return $value;
+ // @todo document why we don't cache false
+ if ($value === false) {
+ return null;
}
- return null;
+ $CONFIG->$name = $value;
+ return $value;
}
/**
@@ -558,6 +564,8 @@ function _elgg_load_site_config() {
$CONFIG->url = $CONFIG->wwwroot;
get_all_config();
+ // gives hint to elgg_get_config function how to approach missing values
+ $CONFIG->site_config_loaded = true;
}
/**