From b3019e72fe198b74c5c366403b8f7c679878ec27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Sevilla=20Mart=C3=ADn?= Date: Wed, 7 Aug 2019 18:01:25 -0400 Subject: [PATCH] Add canonical URL to discussion list (#1814) --- framework/core/src/Forum/Content/Index.php | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/framework/core/src/Forum/Content/Index.php b/framework/core/src/Forum/Content/Index.php index f141133d3..5b2b476fc 100644 --- a/framework/core/src/Forum/Content/Index.php +++ b/framework/core/src/Forum/Content/Index.php @@ -14,6 +14,8 @@ namespace Flarum\Forum\Content; use Flarum\Api\Client; use Flarum\Api\Controller\ListDiscussionsController; use Flarum\Frontend\Document; +use Flarum\Http\UrlGenerator; +use Flarum\Settings\SettingsRepositoryInterface; use Flarum\User\User; use Illuminate\Contracts\View\Factory; use Illuminate\Support\Arr; @@ -31,14 +33,28 @@ class Index */ protected $view; + /** + * @var SettingsRepositoryInterface + */ + protected $settings; + + /** + * @var UrlGenerator + */ + protected $url; + /** * @param Client $api * @param Factory $view + * @param SettingsRepositoryInterface $settings + * @param UrlGenerator $url */ - public function __construct(Client $api, Factory $view) + public function __construct(Client $api, Factory $view, SettingsRepositoryInterface $settings, UrlGenerator $url) { $this->api = $api; $this->view = $view; + $this->settings = $settings; + $this->url = $url; } public function __invoke(Document $document, Request $request) @@ -58,9 +74,11 @@ class Index ]; $apiDocument = $this->getApiDocument($request->getAttribute('actor'), $params); + $defaultRoute = $this->settings->get('default_route'); $document->content = $this->view->make('flarum.forum::frontend.content.index', compact('apiDocument', 'page')); $document->payload['apiDocument'] = $apiDocument; + $document->canonicalUrl = $defaultRoute === '/all' ? $this->url->to('forum')->base() : $request->getUri()->withQuery(''); return $document; }