Browse Source

add name and og:site_name to the metas tags

Olivier Massot 1 year ago
parent
commit
a854f4b9a2

+ 15 - 0
ot_templating/Classes/ViewHelpers/Social/MetadataViewHelper.php

@@ -6,6 +6,7 @@ use FluidTYPO3\Vhs\Traits\TemplateVariableViewHelperTrait;
 use FluidTYPO3\Vhs\ViewHelpers\Resource\Record\FalViewHelper;
 use Opentalent\OtCore\Exception\ApiRequestException;
 use Opentalent\OtCore\ViewHelpers\OtAbstractViewHelper;
+use Opentalent\OtCore\Website\OtWebsiteRepository;
 use TYPO3\CMS\Core\Database\ConnectionPool;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Extbase\Service\ImageService;
@@ -28,6 +29,10 @@ class MetadataViewHelper extends OtAbstractViewHelper
 {
     use TemplateVariableViewHelperTrait;
 
+    public function __construct(
+        private readonly OtWebsiteRepository $otWebsiteRepository,
+    ) {}
+
     /**
      * >> Required to prevent typo3 to escape the html output
      * @var boolean
@@ -111,8 +116,11 @@ class MetadataViewHelper extends OtAbstractViewHelper
         $uri = $GLOBALS['TYPO3_REQUEST']->getUri();
         $page = $GLOBALS['TSFE']->page;
 
+        $website = $this->otWebsiteRepository->getCurrentWebsiteFromFEGlobals();
+
         // Forced values registered with https://viewhelpers.fluidtypo3.org/fluidtypo3/vhs/5.0.1/Variable/Register/Set.html
         $registered = $GLOBALS["TSFE"]->register;
+        $forcedSiteName = ($registered['forceSocialWebsiteTitle'] ?? null);
         $forcedTitle = ($registered['forceSocialTitle'] ?? null);
         $forcedDescription = ($registered['forceSocialDescription'] ?? null);
         $forcedImageUrl = ($registered['forceSocialImageUrl'] ?? '');
@@ -122,6 +130,13 @@ class MetadataViewHelper extends OtAbstractViewHelper
             'domain' => $uri->getHost(),
         ];
 
+        // Determine OG website title
+        if ($forcedSiteName != null) {
+            $data['ogSiteName'] = $forcedTitle;
+        } else {
+            $data['ogSiteName'] = $website['organization_name'];
+        }
+
         // Determine OG title
         if ($forcedTitle != null) {
             $data['ogPageTitle'] = $forcedTitle;

+ 2 - 0
ot_templating/Resources/Private/Partials/Classic/MetaSocial.html

@@ -3,6 +3,8 @@
 
 <ot:social.metadata as="meta">
      <f:comment><!-- Facebook Meta Tags --></f:comment>
+     <v:page.header.meta property="name" content="{meta.ogSiteName}"/>
+     <v:page.header.meta property="og:site_name" content="{meta.ogSiteName}"/>
      <v:page.header.meta property="og:url" content="{meta.pageUrl}"/>
      <v:page.header.meta property="og:type" content="website"/>
      <v:page.header.meta property="og:title" content="{meta.ogPageTitle}"/>