Browse Source

feat(files_sharing): Add opengraph meta tags for multimedia, change opengraph type to website

- Adds the following opengraph tags
  - images:
    - `og:image:type`: the mimetype of the image file
  - audio:
    - `og:audio`: a direct link to the audio file
    - `og:audio:type`: the mimetype of the audio file
  - video:
    - `og:video`: a direct link to the video file
    - `og:video:type`: the mimetype of the video file
- Changes th `og:type` meta tag from `object` (which is not valid) to `website`

Signed-off-by: solonovamax <solonovamax@12oclockpoint.com>
pull/49872/head
solonovamax 11 months ago
committed by Ferdinand Thiessen
parent
commit
9b9ea77035
  1. 16
      apps/files_sharing/lib/DefaultPublicShareTemplateProvider.php

16
apps/files_sharing/lib/DefaultPublicShareTemplateProvider.php

@ -236,8 +236,20 @@ class DefaultPublicShareTemplateProvider implements IPublicShareTemplateProvider
Util::addHeader('meta', ['property' => 'og:description', 'content' => $description]);
Util::addHeader('meta', ['property' => 'og:site_name', 'content' => $siteName]);
Util::addHeader('meta', ['property' => 'og:url', 'content' => $shareUrl]);
Util::addHeader('meta', ['property' => 'og:type', 'content' => 'object']);
Util::addHeader('meta', ['property' => 'og:image', 'content' => $ogPreview]);
Util::addHeader('meta', ['property' => 'og:type', 'content' => 'website']);
Util::addHeader('meta', ['property' => 'og:image', 'content' => $ogPreview]); // recommended to always have the image
if ($shareNode->getMimePart() === 'image') {
Util::addHeader('meta', ['property' => 'og:image:type', 'content' => $shareNode->getMimeType()]);
} elseif ($shareNode->getMimePart() === 'audio') {
$audio = $this->urlGenerator->linkToRouteAbsolute('files_sharing.sharecontroller.downloadshare', ['token' => $token]);
Util::addHeader('meta', ['property' => 'og:audio', 'content' => $audio]);
Util::addHeader('meta', ['property' => 'og:audio:type', 'content' => $shareNode->getMimeType()]);
} elseif ($shareNode->getMimePart() === 'video') {
$video = $this->urlGenerator->linkToRouteAbsolute('files_sharing.sharecontroller.downloadshare', ['token' => $token]);
Util::addHeader('meta', ['property' => 'og:video', 'content' => $video]);
Util::addHeader('meta', ['property' => 'og:video:type', 'content' => $shareNode->getMimeType()]);
}
// Twitter Support: https://developer.x.com/en/docs/x-for-websites/cards/overview/markup
Util::addHeader('meta', ['property' => 'twitter:title', 'content' => $title]);

Loading…
Cancel
Save