Skip to content
Snippets Groups Projects
Commit f896c3df authored by Georg Ringer's avatar Georg Ringer Committed by Benni Mack
Browse files

[TASK] Render meta tag twitter:card only if required

Instead of rendering the tag meta tag `twitter:card` always it is now
only rendered if either one of the twitter fields is filled or
the twitter card attribute is selected in the page record.

Additionally the default value is now set to an empty string

This leads to one markup line less for most of the pages.

Resolves: #101621
Releases: main
Change-Id: I55061debc4425d8c2207efec7ee5c5d376a83ca3
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/84622


Tested-by: default avatarGarvin Hicking <gh@faktor-e.de>
Reviewed-by: default avatarBenni Mack <benni@typo3.org>
Tested-by: default avatarcore-ci <typo3@b13.com>
Reviewed-by: default avatarGarvin Hicking <gh@faktor-e.de>
Tested-by: default avatarBenni Mack <benni@typo3.org>
parent a1c15e4c
Branches
Tags
No related merge requests found
.. include:: /Includes.rst.txt
.. _important-101621-1718125029:
=================================================================
Important: #101621 - Changed default value for twitter_card field
=================================================================
See :issue:`101621`
Description
===========
The default value of the field `twitter_card` of a page is now an empty string instead of `summary`.
Only if one of the following fields is filled, the meta tag :html:`<meta name="twitter:card">` is rendered.
- `twitter_title`
- `twitter_description`
- `twitter_image`
- `twitter_card`
If no twitter card is selected, the fallback value is `summary`.
.. index:: Frontend, ext:seo
......@@ -88,15 +88,15 @@ readonly class MetaTagGenerator
}
}
$manager = $this->metaTagManagerRegistry->getManagerForProperty('twitter:card');
$manager->addProperty('twitter:card', $pageRecord['twitter_card'] ?: 'summary');
$twitterCardTagRequired = false;
if (!empty($pageRecord['twitter_title'])) {
$twitterCardTagRequired = true;
$manager = $this->metaTagManagerRegistry->getManagerForProperty('twitter:title');
$manager->addProperty('twitter:title', $pageRecord['twitter_title']);
}
if (!empty($pageRecord['twitter_description'])) {
$twitterCardTagRequired = true;
$manager = $this->metaTagManagerRegistry->getManagerForProperty('twitter:description');
$manager->addProperty('twitter:description', $pageRecord['twitter_description']);
}
......@@ -108,6 +108,7 @@ readonly class MetaTagGenerator
$twitterImages = $this->generateSocialImages($fileCollector->getFiles());
foreach ($twitterImages as $twitterImage) {
$twitterCardTagRequired = true;
$subProperties = [];
if (!empty($twitterImage['alternative'])) {
......@@ -122,6 +123,12 @@ readonly class MetaTagGenerator
}
}
$twitterCard = $pageRecord['twitter_card'] ?: ($twitterCardTagRequired ? 'summary' : '');
if (!empty($twitterCard)) {
$manager = $this->metaTagManagerRegistry->getManagerForProperty('twitter:card');
$manager->addProperty('twitter:card', $twitterCard);
}
$noIndex = ($pageRecord['no_index']) ? 'noindex' : 'index';
$noFollow = ($pageRecord['no_follow']) ? 'nofollow' : 'follow';
......
......@@ -265,8 +265,9 @@ $tca = [
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'default' => 'summary',
'default' => '',
'items' => [
['label' => '', 'value' => ''],
['label' => 'LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.twitter_card.summary', 'value' => 'summary'],
['label' => 'LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.twitter_card.summary_large_image', 'value' => 'summary_large_image'],
],
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment