summaryrefslogtreecommitdiffstats
path: root/lib/Config
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2017-05-13 21:31:25 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2017-05-13 21:35:17 +0200
commit53822bb4bc21cadc135d70d3d099c5fd117424b0 (patch)
tree0fe2e35c648cf5441fb3be7f7412aa11d8cfedc1 /lib/Config
parent86c39a75f04a42be50b7f685f84dae46e54fc137 (diff)
add new apis
Diffstat (limited to 'lib/Config')
-rw-r--r--lib/Config/AppConfig.php139
1 files changed, 0 insertions, 139 deletions
diff --git a/lib/Config/AppConfig.php b/lib/Config/AppConfig.php
deleted file mode 100644
index 9c30b4f80..000000000
--- a/lib/Config/AppConfig.php
+++ /dev/null
@@ -1,139 +0,0 @@
-<?php
-/**
- * Nextcloud - News
- *
- * This file is licensed under the Affero General Public License version 3 or
- * later. See the COPYING file.
- *
- * @author Alessandro Cosentino <cosenal@gmail.com>
- * @author Bernhard Posselt <dev@bernhard-posselt.com>
- * @copyright Alessandro Cosentino 2012
- * @copyright Bernhard Posselt 2012, 2014
- */
-
-namespace OCA\News\Config;
-
-use OCP\BackgroundJob\IJobList;
-use SimpleXMLElement;
-
-use OCP\INavigationManager;
-use OCP\IURLGenerator;
-use OCP\Util;
-use OCP\App;
-
-// Used to parse app.json file, should be in core at some point
-class AppConfig {
-
- private $config;
- private $navigationManager;
- private $urlGenerator;
- private $jobList;
-
- /**
- * TODO: External deps that are needed:
- * - add jobs
- * - connect to hooks
- */
- public function __construct(INavigationManager $navigationManager,
- IURLGenerator $urlGenerator,
- IJobList $jobList) {
- $this->navigationManager = $navigationManager;
- $this->urlGenerator = $urlGenerator;
- $this->config = [];
- $this->jobList = $jobList;
- }
-
-
- /**
- * Parse an xml config
- */
- private function parseConfig($string) {
- // no need to worry about XXE since local file
- $xml = simplexml_load_string($string, 'SimpleXMLElement');
- return json_decode(json_encode((array)$xml), true);
- }
-
-
- /**
- * @param string|array $data path to the config file or an array with the
- * config
- */
- public function loadConfig($data) {
- if(is_array($data)) {
- $this->config = $data;
- } else {
- $this->config = $this->parseConfig($data);
- }
- }
-
-
- /**
- * @param string $key if given returns the value of the config at index $key
- * @return array|mixed the config
- */
- public function getConfig($key=null) {
- // FIXME: is this function interface a good idea?
- if($key !== null) {
- return $this->config[$key];
- } else {
- return $this->config;
- }
- }
-
-
- /**
- * Registers all config options
- */
- public function registerAll() {
- $this->registerNavigation();
- $this->registerHooks();
- $this->jobList->add('OC\BackgroundJob\Legacy\RegularJob', [$this->config['cron']['job'], 'run']);
- App::registerAdmin($this->config['id'], $this->config['admin']);
- }
-
-
- /**
- * Parses the navigation and creates a navigation entry if needed
- */
- public function registerNavigation() {
- if (array_key_exists('navigation', $this->config)) {
- $this->navigationManager->add(function () {
- $nav =& $this->config['navigation'];
-
- $navConfig = [
- 'id' => $this->config['id'],
- 'order' => $nav['order'],
- 'name' => $nav['name']
- ];
-
- $navConfig['href'] = $this->urlGenerator->linkToRoute(
- $nav['route']
- );
- $navConfig['icon'] = $this->urlGenerator->imagePath(
- $this->config['id'], $nav['icon']
- );
-
- return $navConfig;
- });
- }
- }
-
-
- /**
- * Registers all hooks in the config
- */
- public function registerHooks() {
- // FIXME: this is temporarily static because core emitters are not
- // future proof, therefore legacy code in here
- foreach ($this->config['hooks'] as $hook) {
- $listener = explode('::', $hook['channel']);
- $reaction = explode('::', $hook['subscriber']);
-
- // config is written like HookNamespace::method => Class::method
- Util::connectHook($listener[0], $listener[1], $reaction[0],
- $reaction[1]);
- }
- }
-
-
-}