Preload Adapter Fix
This commit is contained in:
parent
a3152a96c2
commit
2fc81898da
5 changed files with 36 additions and 14 deletions
|
@ -33,10 +33,13 @@ class JITConfigAdapter extends AbstractDbaConfigAdapter implements IConfigAdapte
|
|||
|
||||
$configs = DBA::select('config', ['v', 'k'], ['cat' => $cat]);
|
||||
while ($config = DBA::fetch($configs)) {
|
||||
$key = $config['k'];
|
||||
$key = $config['k'];
|
||||
$value = $config['v'];
|
||||
|
||||
$return[$key] = $config['v'];
|
||||
$this->in_db[$cat][$key] = true;
|
||||
if (isset($value) && $value !== '') {
|
||||
$return[$key] = $value;
|
||||
$this->in_db[$cat][$key] = true;
|
||||
}
|
||||
}
|
||||
DBA::close($configs);
|
||||
|
||||
|
|
|
@ -29,10 +29,12 @@ class JITPConfigAdapter extends AbstractDbaConfigAdapter implements IPConfigAdap
|
|||
if (DBA::isResult($pconfigs)) {
|
||||
while ($pconfig = DBA::fetch($pconfigs)) {
|
||||
$key = $pconfig['k'];
|
||||
$value = $pconfig['v'];
|
||||
|
||||
$return[$key] = $pconfig['v'];
|
||||
|
||||
$this->in_db[$uid][$cat][$key] = true;
|
||||
if (isset($value) && $value !== '') {
|
||||
$return[$key] = $value;
|
||||
$this->in_db[$uid][$cat][$key] = true;
|
||||
}
|
||||
}
|
||||
} else if ($cat != 'config') {
|
||||
// Negative caching
|
||||
|
|
|
@ -32,7 +32,10 @@ class PreloadConfigAdapter extends AbstractDbaConfigAdapter implements IConfigAd
|
|||
|
||||
$configs = DBA::select('config', ['cat', 'v', 'k']);
|
||||
while ($config = DBA::fetch($configs)) {
|
||||
$return[$config['cat']][$config['k']] = $config['v'];
|
||||
$value = $config['v'];
|
||||
if (isset($value) && $value !== '') {
|
||||
$return[$config['cat']][$config['k']] = $value;
|
||||
}
|
||||
}
|
||||
DBA::close($configs);
|
||||
|
||||
|
|
|
@ -44,7 +44,10 @@ class PreloadPConfigAdapter extends AbstractDbaConfigAdapter implements IPConfig
|
|||
|
||||
$pconfigs = DBA::select('pconfig', ['cat', 'v', 'k'], ['uid' => $uid]);
|
||||
while ($pconfig = DBA::fetch($pconfigs)) {
|
||||
$return[$pconfig['cat']][$pconfig['k']] = $pconfig['v'];
|
||||
$value = $pconfig['v'];
|
||||
if (isset($value) && $value !== '') {
|
||||
$return[$pconfig['cat']][$pconfig['k']] = $value;
|
||||
}
|
||||
}
|
||||
DBA::close($pconfigs);
|
||||
|
||||
|
|
|
@ -36,11 +36,12 @@ class ConfigCache implements IConfigCache, IPConfigCache
|
|||
$keys = array_keys($config[$category]);
|
||||
|
||||
foreach ($keys as $key) {
|
||||
if (isset($config[$category][$key])) {
|
||||
$value = $config[$category][$key];
|
||||
if (isset($value) && $value !== '!<unset>!') {
|
||||
if ($overwrite) {
|
||||
$this->set($category, $key, $config[$category][$key]);
|
||||
$this->set($category, $key, $value);
|
||||
} else {
|
||||
$this->setDefault($category, $key, $config[$category][$key]);
|
||||
$this->setDefault($category, $key, $value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -132,9 +133,19 @@ class ConfigCache implements IConfigCache, IPConfigCache
|
|||
*/
|
||||
public function loadP($uid, array $config)
|
||||
{
|
||||
foreach ($config as $category => $values) {
|
||||
foreach ($values as $key => $value) {
|
||||
$this->setP($uid, $category, $key, $value);
|
||||
$categories = array_keys($config);
|
||||
|
||||
foreach ($categories as $category) {
|
||||
if (isset($config[$category]) && is_array($config[$category])) {
|
||||
|
||||
$keys = array_keys($config[$category]);
|
||||
|
||||
foreach ($keys as $key) {
|
||||
$value = $config[$category][$key];
|
||||
if (isset($value) && $value !== '!<unset>!') {
|
||||
$this->setP($uid, $category, $key, $value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue