TypoScript HEAD Setup
TypoScript Code für den Bereich zur Konfiguration einer Webseite. Angaben zur Einbindung von CSS und JavaScript. Steuerung der META-Tags einer Webseite.
Page META Data
Konfiguration der META Angaben zur Darstellung und Ansteuerung von Suchmaschinen.
page { meta { viewport = width=device-width, initial-scale=1.0, user-scalable=yes robots = INDEX,FOLLOW title.field = subtitle keywords.field = keywords // subtitle // title keywords.ifEmpty = Internetagentur Irma Berscheid-Kimeridze keywords.wrap = | description.field = description // subtitle // title description.ifEmpty = Internetagentur Irma Berscheid-Kimeridze description.wrap = | } }
Page HEADER Data
Facebook Open Graph und Twitter Cards einbinden
Einfügen von TITLE Angaben sowie Einbindung von Tags für Facebook und Twitter.
page { headerData { ## TITLE Tag 10 = TEXT 10 { field = subtitle // title noTrimWrap = |<title>|</title>| } ## Open Graph TITLE 20 = TEXT 20 { field = subtitle // title noTrimWrap = |<meta property="og:title" content="|" />| } ## Open Graph DESCRIPTION 25 = TEXT 25 { field = description // subtitle // title noTrimWrap = |<meta property="og:description" content="|" />| } ## Open Graph URL 30 = TEXT 30 { htmlSpecialChars = 1 typolink { parameter.data = TSFE:id returnLast = url } wrap = <meta property="og:url" content="https://www.agentur-ibk.de|"> } 40 = TEXT 40.wrap = <meta property="og:type" content="article" /> 45 = TEXT 45.wrap = <meta property="og:image" content="https://www.agentur-ibk.de/bild.jpg" /> ## META Canonical tag 50 = TEXT 50 { htmlSpecialChars = 1 typolink { parameter.data = TSFE:id returnLast = url } wrap = <link rel="canonical" href="https://www.agentur-ibk.de|"> } 55 = TEXT 55.wrap = <meta name="google-site-verification" content="XXXXXXX" /> } }
Font Awesome mit preload einbinden
Die Einbindung von Font Awesome bietet eine Erweiterung des Layouts der Webseite und hat sich als quasi-Standard für Webseiten etabliert. Um mehr Datenschutz für die Webseite zu gewährleisten, kann man die Dateien für den Browser lokal hosten. Damit man das Laden der Sourcen beschleunigen kann, bietet sich außerdem die Option eines Preload an. Der TypoScript Code dazu kann wie folgt aussehen:
page { headerData { 10 = TEXT 10.wrap = <link rel="preload" href="/extension/Resources/Public/css/fonts/fa-regular-400.woff2" as="font" crossorigin> } }
In diesem Fall ist die Datei für Font Awesome in einer Provider Extension abgelegt und wird lokal geladen.
Google Fonts mit preload einbinden
Google Fonts lassen sich ebenfalls für einen verbesserten Datenschutz und weniger Netzwerkzugriffe lokal speichern. Um ein Vorladen der Dateien zu ermöglichen, können wir einen solchen TypoScript Code nutzen:
page { headerData { 20 = TEXT 20.wrap = <link rel="preload" href="/extension/Resources/Public/css/Google/fonts/ihr-font-latin.woff2" as="font" crossorigin> } }
Mehr Informationen zu den Optionen für das Laden des Font
, den Preload
und die crossorigin
Option bietet das Developer Netzwerk von Mozilla:
Note!
Canonical Link erzeugen
Um eine Extension in TYPO3 mit einem eigenen Canonical Link zu versehen, können Sie das TypoScript Setup Ihrer Extension mit dem HeaderData Objekt erweitern:
page { headerData { 200 = TEXT 200 { htmlSpecialChars = 1 typolink { parameter.data = TSFE:id returnLast = url addQueryString = 1 addQueryString.method = GET forceAbsoluteUrl = 1 } wrap = <link rel="canonical" href="|"> } } }
Die Parameter des TypoScript Objekts typolink:
parameter.data = TSFE:id
Damit sagen Sie Ihrem TYPO3, dass es sich die Daten für das Frontend zur UID Ihrer Seite auslesen soll
returnLast = url
Liefert die URL der Seite zurück.
addQueryString = 1
Alle Parameter des Links sollen übergeben werden, also auch die einzelnen query Daten einer Extension
addQueryString.method = GET
Die Parameter des Links sollen ausgelesen werden
forceAbsoluteUrl = 1
Damit stellen wir sicher, dass die gesamte Domain mit übergeben wird.
Canonical Link abschalten
TYPO3 baut seit der Version 9.5 immer einen Canonical Link für die Webseite auf. Dies gilt auch für Extensions. Wenn wir, wie im Absatz zuvor geschildert, aber einen eigenen Canonical Link erzeugen möchten, dann sollten wir diesen für die Inhalte der Erweiterung abschalten.
Dazu können wir in die PHP Datei ext_localconf.php im Stammverzeichnis unserer Extension gehen und den Canonical Link deaktivieren. Der Quellcode sieht dann wie folgt aus:
<?php defined('TYPO3_MODE') || die('Access denied.'); call_user_func( function() { unset($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['TYPO3\CMS\Frontend\Page\PageGenerator']['generateMetaTags']['canonical']); } )
Page includeCSS
Einfügen aller Sourcen für die CSS Dateien der Webseite. Hier wird keine Entscheidung darüber getroffen, ob diese Elemente komprimiert und / oder zu einer Datei zusammengefasst werden sollen. Dieses geschieht in Abhängigkeit von der Umgebung (DEV, PROD, …) im Page Template der Webseite.
page { includeCSS { ## Bootstrap CSS Datei css10 = EXT:ibkprovider/Resources/Public/js/bootstrap/css/bootstrap.min.css css10.media = all ## Google Fonts css20 = https://fonts.googleapis.com/css?family=Hammersmith+One css20 { external = 1 media = all } ## CSS Accordions und andere jQuery css30 = EXT:ibkprovider/Resources/Public/css/theme-1.9.2/jquery-ui-1.9.2.custom.css css30.media = all ## CSS Slider vom Hersteller css40 = EXT:ibkprovider/Resources/Public/css/slider/styles/jquery.sliderTabs.min.css css40.media = all ## CSS gesamte Webseite css70 = EXT:ibkprovider/Resources/Public/css/ibkcontent.css css70.media = all } }
Page includeJS
Einfügen der JavaScript Sourcen für die Webseite. Die Steuerung der Komprimierung der Sourcen und ihre Verlagerung in den Footer der Webseite geschieht über das Page Template.
page { includeJSFooterlibs { file_01 = EXT:ibkprovider/Resources/Public/js/jquery-3.3.1.min.js file_02 = EXT:ibkprovider/Resources/Public/js/jquery-ui-1.9.2.custom.js file_03 = EXT:ibkprovider/Resources/Public/css/slider/jquery.slidertabs.min.js file_04 = EXT:ibkprovider/Resources/Public/js/ibkfunctions.js file_05 = EXT:ibkprovider/Resources/Public/js/bootstrap/js/bootstrap.min.js } }