]> git.mxchange.org Git - friendica.git/blobdiff - src/App/BaseURL.php
Merge pull request #11515 from annando/issue-11492
[friendica.git] / src / App / BaseURL.php
index 501e5fbd3bc32c6846554761e9fb225b1fa43aad..9a8348510de65d8993de6480c1c8d1bb8f390c3c 100644 (file)
@@ -1,8 +1,27 @@
 <?php
+/**
+ * @copyright Copyright (C) 2010-2022, the Friendica project
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <https://www.gnu.org/licenses/>.
+ *
+ */
 
 namespace Friendica\App;
 
-use Friendica\Core\Config\Configuration;
+use Friendica\Core\Config\Capability\IManageConfigValues;
 use Friendica\Core\System;
 use Friendica\Util\Network;
 use Friendica\Util\Strings;
@@ -37,7 +56,7 @@ class BaseURL
        /**
         * The Friendica Config
         *
-        * @var Configuration
+        * @var IManageConfigValues
         */
        private $config;
 
@@ -213,7 +232,7 @@ class BaseURL
        {
                $parsed = @parse_url($url);
 
-               if (empty($parsed)) {
+               if (empty($parsed) || empty($parsed['host'])) {
                        return false;
                }
 
@@ -253,10 +272,10 @@ class BaseURL
        }
 
        /**
-        * @param Configuration $config The Friendica configuration
-        * @param array         $server The $_SERVER array
+        * @param IManageConfigValues $config The Friendica IConfiguration
+        * @param array               $server The $_SERVER array
         */
-       public function __construct(Configuration $config, array $server)
+       public function __construct(IManageConfigValues $config, array $server)
        {
                $this->config = $config;
                $this->server = $server;
@@ -355,7 +374,7 @@ class BaseURL
                if (!empty($relative_script_path)) {
                        // Module
                        if (!empty($this->server['QUERY_STRING'])) {
-                               $this->urlPath = trim(rdirname($relative_script_path, substr_count(trim($this->server['QUERY_STRING'], '/'), '/') + 1), '/');
+                               $this->urlPath = trim(dirname($relative_script_path, substr_count(trim($this->server['QUERY_STRING'], '/'), '/') + 1), '/');
                        } else {
                                // Root page
                                $this->urlPath = trim($relative_script_path, '/');
@@ -435,4 +454,12 @@ class BaseURL
                $redirectTo = $this->get($ssl) . '/' . ltrim($toUrl, '/');
                System::externalRedirect($redirectTo);
        }
+
+       /**
+        * Returns the base url as string
+        */
+       public function __toString()
+       {
+               return $this->get();
+       }
 }