mirror of
https://github.com/flarum/framework.git
synced 2025-02-15 01:22:52 +08:00
Add canonical URL to discussion list (#1814)
This commit is contained in:
parent
2fc2cd5863
commit
b3019e72fe
|
@ -14,6 +14,8 @@ namespace Flarum\Forum\Content;
|
||||||
use Flarum\Api\Client;
|
use Flarum\Api\Client;
|
||||||
use Flarum\Api\Controller\ListDiscussionsController;
|
use Flarum\Api\Controller\ListDiscussionsController;
|
||||||
use Flarum\Frontend\Document;
|
use Flarum\Frontend\Document;
|
||||||
|
use Flarum\Http\UrlGenerator;
|
||||||
|
use Flarum\Settings\SettingsRepositoryInterface;
|
||||||
use Flarum\User\User;
|
use Flarum\User\User;
|
||||||
use Illuminate\Contracts\View\Factory;
|
use Illuminate\Contracts\View\Factory;
|
||||||
use Illuminate\Support\Arr;
|
use Illuminate\Support\Arr;
|
||||||
|
@ -31,14 +33,28 @@ class Index
|
||||||
*/
|
*/
|
||||||
protected $view;
|
protected $view;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var SettingsRepositoryInterface
|
||||||
|
*/
|
||||||
|
protected $settings;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var UrlGenerator
|
||||||
|
*/
|
||||||
|
protected $url;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Client $api
|
* @param Client $api
|
||||||
* @param Factory $view
|
* @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->api = $api;
|
||||||
$this->view = $view;
|
$this->view = $view;
|
||||||
|
$this->settings = $settings;
|
||||||
|
$this->url = $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __invoke(Document $document, Request $request)
|
public function __invoke(Document $document, Request $request)
|
||||||
|
@ -58,9 +74,11 @@ class Index
|
||||||
];
|
];
|
||||||
|
|
||||||
$apiDocument = $this->getApiDocument($request->getAttribute('actor'), $params);
|
$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->content = $this->view->make('flarum.forum::frontend.content.index', compact('apiDocument', 'page'));
|
||||||
$document->payload['apiDocument'] = $apiDocument;
|
$document->payload['apiDocument'] = $apiDocument;
|
||||||
|
$document->canonicalUrl = $defaultRoute === '/all' ? $this->url->to('forum')->base() : $request->getUri()->withQuery('');
|
||||||
|
|
||||||
return $document;
|
return $document;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user