Merge pull request #21424 from owncloud/appversions

Use appConfig to get app versions
This commit is contained in:
Thomas Müller 2016-01-25 10:02:02 +01:00
commit d69167caff
2 changed files with 11 additions and 21 deletions

View File

@ -1024,21 +1024,12 @@ class OC_App {
*/
public static function getAppVersions() {
static $versions;
if (isset($versions)) { // simple cache, needs to be fixed
return $versions; // when function is used besides in checkUpgrade
}
$versions = array();
try {
$query = OC_DB::prepare('SELECT `appid`, `configvalue` FROM `*PREFIX*appconfig`'
. ' WHERE `configkey` = \'installed_version\'');
$result = $query->execute();
while ($row = $result->fetchRow()) {
$versions[$row['appid']] = $row['configvalue'];
}
return $versions;
} catch (\Exception $e) {
return array();
if(!$versions) {
$appConfig = \OC::$server->getAppConfig();
$versions = $appConfig->getValues(false, 'installed_version');
}
return $versions;
}

View File

@ -251,14 +251,13 @@ class AppConfig implements IAppConfig {
if ($key === false) {
return $this->getAppValues($app);
} else {
$configs = [];
foreach ($this->getApps() as $appId) {
if ($this->hasKey($appId, $key)) {
$configs[$appId] = $this->getValue($appId, $key);
}
}
$appIds = $this->getApps();
$values = array_map(function($appId) use ($key) {
return isset($this->cache[$appId][$key]) ? $this->cache[$appId][$key] : null;
}, $appIds);
$result = array_combine($appIds, $values);
return $configs;
return array_filter($result);
}
}