diff --git a/src/Frontend/Frontend.php b/src/Frontend/Frontend.php index 05a4e5405..3c81816f3 100644 --- a/src/Frontend/Frontend.php +++ b/src/Frontend/Frontend.php @@ -49,7 +49,9 @@ class Frontend { $forumDocument = $this->getForumDocument($request); - $document = new Document($this->view, $forumDocument, $request); + $responseDocument = resolve('flarum.frontend.document'); + + $document = $responseDocument($forumDocument, $request); $this->populate($document, $request); diff --git a/src/Frontend/FrontendServiceProvider.php b/src/Frontend/FrontendServiceProvider.php index cb91a5076..52c04c9d0 100644 --- a/src/Frontend/FrontendServiceProvider.php +++ b/src/Frontend/FrontendServiceProvider.php @@ -16,6 +16,8 @@ use Flarum\Http\UrlGenerator; use Flarum\Settings\SettingsRepositoryInterface; use Illuminate\Contracts\Container\Container; use Illuminate\Contracts\View\Factory as ViewFactory; +use Illuminate\View\Factory; +use Psr\Http\Message\ServerRequestInterface as Request; class FrontendServiceProvider extends AbstractServiceProvider { @@ -57,6 +59,16 @@ class FrontendServiceProvider extends AbstractServiceProvider return $frontend; }; }); + + $this->container->singleton('flarum.frontend.document', function (Container $container) { + return function (array $apiDocument, Request $request) use ($container){ + return new Document( + $container->make(Factory::class), + $apiDocument, + $request + ); + }; + }); } /**