diff options
Diffstat (limited to 'app/news.php')
-rw-r--r-- | app/news.php | 56 |
1 files changed, 53 insertions, 3 deletions
diff --git a/app/news.php b/app/news.php index 1214c1918..ecf1a33d0 100644 --- a/app/news.php +++ b/app/news.php @@ -16,6 +16,8 @@ namespace OCA\News\App; use \OC\Files\View; use \OCP\AppFramework\App; +use \OCA\News\Config\AppConfig; + use \OCA\News\Core\Logger; use \OCA\News\Core\Db; @@ -214,7 +216,8 @@ class News extends App { */ $container->registerService('MapperFactory', function($c) { return new MapperFactory( - $c->query('CoreConfig'), $c->query('Db') + $c->query('DatabaseType'), + $c->query('Db') ); }); @@ -236,11 +239,45 @@ class News extends App { ); }); + + /** + * App config parser + */ + $container->registerService('AppConfig', function($c) { + // not performant but well :/ + $config = $c->query('ServerContainer')->getAppConfig(); + $installedApps = $config->getApps(); + $apps = array(); + foreach($installedApps as $app) { + $apps[] = array( + $app => $config->getValue($app, 'installed_version', '0') + ); + } + + // order extensions in name => version + $loadedExtensions = get_loaded_extensions(); + $extensions = array(); + foreach ($loadedExtensions as $extension) { + $extensions[$extension] = phpversion($extension); + } + + return new AppConfig( + $c->query('ServerContainer')->getNavigationManager(), + $c->query('L10N'), + $c->query('ServerContainer')->getURLGenerator(), + phpversion(), + implode('.', \OCP\Util::getVersion()), + $apps, + $extensions, + $c->query('DatabaseType') + ); + }); + /** * Core */ $container->registerService('L10N', function($c) { - return \OC_L10N::get($c['AppName']); + return $c->query('ServerContainer')->getL10N($c->query('AppName')); }); $container->registerService('UserId', function($c) { @@ -248,7 +285,7 @@ class News extends App { }); $container->registerService('Logger', function($c) { - return new Logger($c['AppName']); + return new Logger($c->query('AppName')); }); $container->registerService('Db', function($c) { @@ -259,6 +296,10 @@ class News extends App { return $c->query('ServerContainer')->getConfig(); }); + $container->registerService('DatabaseType', function($c) { + return $c->query('ServerContainer')->getConfig()->getSystemValue('dbtype'); + }); + /** * Utility @@ -398,5 +439,14 @@ class News extends App { $container->registerMiddleWare('CORSMiddleware'); } + + public function getAppConfig() { + return $this->getContainer()->query('AppConfig'); + } + + + public function getLogger() { + return $this->getContainer()->query('Logger'); + } } |