]> source.dussan.org Git - nextcloud-server.git/commitdiff
Untangle the linkToDocs method in OC_Helper
authorMorris Jobke <hey@morrisjobke.de>
Thu, 26 Nov 2015 09:48:08 +0000 (10:48 +0100)
committerMorris Jobke <hey@morrisjobke.de>
Thu, 26 Nov 2015 12:58:43 +0000 (13:58 +0100)
* now uses the proper URLGenerator interface
* add comment about DI problems

lib/base.php
lib/private/config.php
lib/private/helper.php
lib/private/template/functions.php
lib/private/util.php

index feaf46e83f1442f5200de1d67f309597d23fe496..6a1841fa93b7de1a8c5f9a8057be154f27691020 100644 (file)
@@ -246,18 +246,21 @@ class OC {
                $configFileWritable = is_writable($configFilePath);
                if (!$configFileWritable && !OC_Helper::isReadOnlyConfigEnabled()
                        || !$configFileWritable && self::checkUpgrade(false)) {
+
+                       $urlGenerator = \OC::$server->getURLGenerator();
+
                        if (self::$CLI) {
                                echo $l->t('Cannot write into "config" directory!')."\n";
                                echo $l->t('This can usually be fixed by giving the webserver write access to the config directory')."\n";
                                echo "\n";
-                               echo $l->t('See %s', array(\OC_Helper::linkToDocs('admin-dir_permissions')))."\n";
+                               echo $l->t('See %s', [ $urlGenerator->linkToDocs('admin-dir_permissions') ])."\n";
                                exit;
                        } else {
                                OC_Template::printErrorPage(
                                        $l->t('Cannot write into "config" directory!'),
                                        $l->t('This can usually be fixed by '
                                        . '%sgiving the webserver write access to the config directory%s.',
-                                        array('<a href="'.\OC_Helper::linkToDocs('admin-dir_permissions').'" target="_blank">', '</a>'))
+                                        array('<a href="' . $urlGenerator->linkToDocs('admin-dir_permissions') . '" target="_blank">', '</a>'))
                                );
                        }
                }
index 3ad800a00bec7213dfc766ad9e716a1d1f98b625..94b4fd56daa150f3dc2d5489c1c4fbd39fa13b7b 100644 (file)
@@ -234,7 +234,9 @@ class Config {
 
                // File does not exist, this can happen when doing a fresh install
                if(!is_resource ($filePointer)) {
-                       $url = \OC_Helper::linkToDocs('admin-dir_permissions');
+                       // TODO fix this via DI once it is very clear that this doesn't cause side effects due to initialization order
+                       // currently this breaks app routes but also could have other side effects especially during setup and exception handling
+                       $url = \OC::$server->getURLGenerator()->linkToDocs('admin-dir_permissions');
                        throw new HintException(
                                "Can't write into config directory!",
                                'This can usually be fixed by '
index fc7653baf6fe545f6e77a6945fde7ee5a3e0a62b..fb8e38cc26e4798ab0be787f597430e19d23d495 100644 (file)
@@ -81,15 +81,6 @@ class OC_Helper {
                return OC::$server->getURLGenerator()->linkTo($app, $file, $args);
        }
 
-       /**
-        * @param string $key
-        * @return string url to the online documentation
-        * @deprecated Use \OC::$server->getURLGenerator()->linkToDocs($key)
-        */
-       public static function linkToDocs($key) {
-               return OC::$server->getURLGenerator()->linkToDocs($key);
-       }
-
        /**
         * Creates an absolute url
         * @param string $app app
index cea5860cec68c1e37c81e70d80c4b55e8feaa25d..79d18632d2fa79505e0e502bc3829ef51b7f1d79 100644 (file)
@@ -154,7 +154,7 @@ function link_to( $app, $file, $args = array() ) {
  * @return string url to the online documentation
  */
 function link_to_docs($key) {
-       return OC_Helper::linkToDocs($key);
+       return \OC::$server->getURLGenerator()->linkToDocs($key);
 }
 
 /**
index 69f01c22be9637cf736b16cceb23d74e93932326..84a8c49c3839726a3ad1b491ee6ae8f0b2900bf1 100644 (file)
@@ -621,6 +621,9 @@ class OC_Util {
                $webServerRestart = false;
                $setup = new \OC\Setup($config, \OC::$server->getIniWrapper(), \OC::$server->getL10N('lib'),
                        new \OC_Defaults(), \OC::$server->getLogger(), \OC::$server->getSecureRandom());
+
+               $urlGenerator = \OC::$server->getURLGenerator();
+
                $availableDatabases = $setup->getSupportedDatabases();
                if (empty($availableDatabases)) {
                        $errors[] = array(
@@ -649,7 +652,7 @@ class OC_Util {
                                'error' => $l->t('Cannot write into "config" directory'),
                                'hint' => $l->t('This can usually be fixed by '
                                        . '%sgiving the webserver write access to the config directory%s.',
-                                       array('<a href="' . \OC_Helper::linkToDocs('admin-dir_permissions') . '" target="_blank">', '</a>'))
+                                       array('<a href="' . $urlGenerator->linkToDocs('admin-dir_permissions') . '" target="_blank">', '</a>'))
                        );
                }
 
@@ -664,7 +667,7 @@ class OC_Util {
                                        'hint' => $l->t('This can usually be fixed by '
                                                . '%sgiving the webserver write access to the apps directory%s'
                                                . ' or disabling the appstore in the config file.',
-                                               array('<a href="' . \OC_Helper::linkToDocs('admin-dir_permissions') . '" target="_blank">', '</a>'))
+                                               array('<a href="' . $urlGenerator->linkToDocs('admin-dir_permissions') . '" target="_blank">', '</a>'))
                                );
                        }
                }
@@ -679,14 +682,14 @@ class OC_Util {
                                                'error' => $l->t('Cannot create "data" directory (%s)', array($CONFIG_DATADIRECTORY)),
                                                'hint' => $l->t('This can usually be fixed by '
                                                        . '<a href="%s" target="_blank">giving the webserver write access to the root directory</a>.',
-                                                       array(OC_Helper::linkToDocs('admin-dir_permissions')))
+                                                       array($urlGenerator->linkToDocs('admin-dir_permissions')))
                                        );
                                }
                        } else if (!is_writable($CONFIG_DATADIRECTORY) or !is_readable($CONFIG_DATADIRECTORY)) {
                                //common hint for all file permissions error messages
                                $permissionsHint = $l->t('Permissions can usually be fixed by '
                                        . '%sgiving the webserver write access to the root directory%s.',
-                                       array('<a href="' . \OC_Helper::linkToDocs('admin-dir_permissions') . '" target="_blank">', '</a>'));
+                                       array('<a href="' . $urlGenerator->linkToDocs('admin-dir_permissions') . '" target="_blank">', '</a>'));
                                $errors[] = array(
                                        'error' => 'Data directory (' . $CONFIG_DATADIRECTORY . ') not writable by ownCloud',
                                        'hint' => $permissionsHint