From 5209cdccdbe926d31bafec0e284a0b19f3962625 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 4 Jun 2019 14:11:24 +0200 Subject: [PATCH] fix loading multiple version backends from one app Signed-off-by: Robin Appelman --- .../lib/AppInfo/Application.php | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/apps/files_versions/lib/AppInfo/Application.php b/apps/files_versions/lib/AppInfo/Application.php index 45dc6da6e2c..6a8e50dba93 100644 --- a/apps/files_versions/lib/AppInfo/Application.php +++ b/apps/files_versions/lib/AppInfo/Application.php @@ -65,25 +65,36 @@ class Application extends App { public function registerVersionBackends() { $server = $this->getContainer()->getServer(); - $logger = $server->getLogger(); $appManager = $server->getAppManager(); - /** @var IVersionManager $versionManager */ - $versionManager = $this->getContainer()->getServer()->query(IVersionManager::class); foreach($appManager->getInstalledApps() as $app) { $appInfo = $appManager->getAppInfo($app); if (isset($appInfo['versions'])) { $backends = $appInfo['versions']; foreach($backends as $backend) { - $class = $backend['@value']; - $for = $backend['@attributes']['for']; - try { - $backendObject = $server->query($class); - $versionManager->registerBackend($for, $backendObject); - } catch (\Exception $e) { - $logger->logException($e); + if (isset($backend['@value'])) { + $this->loadBackend($backend); + } else { + foreach ($backend as $singleBackend) { + $this->loadBackend($singleBackend); + } } } } } } + + private function loadBackend(array $backend) { + $server = $this->getContainer()->getServer(); + $logger = $server->getLogger(); + /** @var IVersionManager $versionManager */ + $versionManager = $this->getContainer()->getServer()->query(IVersionManager::class); + $class = $backend['@value']; + $for = $backend['@attributes']['for']; + try { + $backendObject = $server->query($class); + $versionManager->registerBackend($for, $backendObject); + } catch (\Exception $e) { + $logger->logException($e); + } + } } -- 2.39.5