===================== Public share template ===================== .. sectionauthor:: Louis Chmn It is possible to override the default public share view. This is possible by implementing the ``IPublicShareTemplateProvider`` interface. .. code-block:: php registerPublicShareTemplateProvider(MyPublicShareTemplateProvider::class); } } .. code-block:: php getNode(); return ...; // Whether your provider should be used or not. } public function renderPage(IShare $share, string $token, string $path): TemplateResponse { $shareNode = $share->getNode(); $owner = $this->userManager->get($share->getShareOwner()); $this->initialState->provideInitialState('fileId', $shareNode->getId()); ...; // More initial state that you might need in your view. // OpenGraph Support: http://ogp.me/ Util::addHeader('meta', ['property' => "og:title", 'content' => $this->l10n->t("Encrypted share")]); Util::addHeader('meta', ['property' => "og:description", 'content' => $this->defaults->getName() . ($this->defaults->getSlogan() !== '' ? ' - ' . $this->defaults->getSlogan() : '')]); Util::addHeader('meta', ['property' => "og:site_name", 'content' => $this->defaults->getName()]); Util::addHeader('meta', ['property' => "og:url", 'content' => $this->urlGenerator->linkToRouteAbsolute('files_sharing.sharecontroller.showShare', ['token' => $token])]); Util::addHeader('meta', ['property' => "og:type", 'content' => "object"]); $csp->addAllowedFrameDomain('\'self\''); $response->setContentSecurityPolicy($csp); $response = new PublicTemplateResponse(Application::APP_ID, 'myCustomTemplateFileName', []); $response->setHeaderTitle($this->l10n->t("My custom title")); $csp = new ContentSecurityPolicy(); return $response; } }