X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FToggleMobile.php;h=0ecf813d324badbf39dcb8f696eab3063204645c;hb=3bca4fe2a64671d09e08346456cdfa6c12f996e9;hp=9788c0b5db40700021a07aa7c65a84bfb46ac85c;hpb=d3a4ed01110337bdf2c79a7d0b5fdf310ccc01dc;p=friendica.git diff --git a/src/Module/ToggleMobile.php b/src/Module/ToggleMobile.php index 9788c0b5db..0ecf813d32 100644 --- a/src/Module/ToggleMobile.php +++ b/src/Module/ToggleMobile.php @@ -1,30 +1,63 @@ . + * + */ namespace Friendica\Module; +use Friendica\App; use Friendica\BaseModule; +use Friendica\Core\L10n; +use Friendica\Core\Session\Capability\IHandleSessions; +use Friendica\Core\System; +use Friendica\Network\HTTPException\BadRequestException; +use Friendica\Util; +use GuzzleHttp\Psr7\Uri; +use Psr\Log\LoggerInterface; /** * Toggles the mobile view (on/off) */ class ToggleMobile extends BaseModule { - public static function content() + /** @var IHandleSessions */ + private $session; + + public function __construct(IHandleSessions $session, L10n $l10n, App\BaseURL $baseUrl, App\Arguments $args, LoggerInterface $logger, Util\Profiler $profiler, Response $response, array $server, array $parameters = []) { - $a = self::getApp(); + parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters); - if (isset($_GET['off'])) { - $_SESSION['show-mobile'] = false; - } else { - $_SESSION['show-mobile'] = true; - } + $this->session = $session; + } - if (isset($_GET['address'])) { - $address = $_GET['address']; - } else { - $address = ''; + protected function rawContent(array $request = []) + { + $address = $request['address'] ?? '' ?: $this->baseUrl; + + $uri = new Uri($address); + + if (!$this->baseUrl->isLocalUri($uri)) { + throw new BadRequestException(); } - $a->redirect($address); + $this->session->set('show-mobile', !isset($request['off'])); + + System::externalRedirect((string)$uri); } }