]> git.mxchange.org Git - friendica.git/blobdiff - src/App/BaseURL.php
Replace BaseObject class with DI::* calls
[friendica.git] / src / App / BaseURL.php
index 8d76a0d2d25d9dcaa519dc87a64f88907e2bc046..501e5fbd3bc32c6846554761e9fb225b1fa43aad 100644 (file)
@@ -3,8 +3,10 @@
 namespace Friendica\App;
 
 use Friendica\Core\Config\Configuration;
+use Friendica\Core\System;
 use Friendica\Util\Network;
 use Friendica\Util\Strings;
+use Friendica\Network\HTTPException;
 
 /**
  * A class which checks and contains the basic
@@ -414,4 +416,23 @@ class BaseURL
                        return $url;
                }
        }
+
+       /**
+        * Redirects to another module relative to the current Friendica base URL.
+        * If you want to redirect to a external URL, use System::externalRedirectTo()
+        *
+        * @param string $toUrl The destination URL (Default is empty, which is the default page of the Friendica node)
+        * @param bool   $ssl   if true, base URL will try to get called with https:// (works just for relative paths)
+        *
+        * @throws HTTPException\InternalServerErrorException In Case the given URL is not relative to the Friendica node
+        */
+       public function redirect($toUrl = '', $ssl = false)
+       {
+               if (!empty(parse_url($toUrl, PHP_URL_SCHEME))) {
+                       throw new HTTPException\InternalServerErrorException("'$toUrl is not a relative path, please use System::externalRedirectTo");
+               }
+
+               $redirectTo = $this->get($ssl) . '/' . ltrim($toUrl, '/');
+               System::externalRedirect($redirectTo);
+       }
 }