From 07465f8f956ad5dc3c62e0f451d00ac573e4d267 Mon Sep 17 00:00:00 2001
From: Torsten Oppermann <torsten@sgalinski.de>
Date: Wed, 14 Mar 2018 14:52:24 +0100
Subject: [PATCH] [TASK] Added structured data implementation to single view

---
 Configuration/TypoScript/Frontend/setup.txt   |  6 +++++
 .../Templates/SingleView/SingleView.html      | 24 +++++++++++++++++++
 2 files changed, 30 insertions(+)

diff --git a/Configuration/TypoScript/Frontend/setup.txt b/Configuration/TypoScript/Frontend/setup.txt
index bc8bbff..fa0468c 100644
--- a/Configuration/TypoScript/Frontend/setup.txt
+++ b/Configuration/TypoScript/Frontend/setup.txt
@@ -97,6 +97,12 @@ plugin.tx_sgnews {
 
 		# How to sort the news in general (date, positionInTree)
 		sortBy = date
+
+		# The publisher value for the structured data implementation (see single view template)
+		publisher = SGalinski Internet Services
+
+		# The logo value for the structured data implementation (see single view template)
+		publisherLogo = https://cdn.sgalinski.de/fileadmin/media/news/logoWithoutText.png
 	}
 
 	features {
diff --git a/Resources/Private/Templates/SingleView/SingleView.html b/Resources/Private/Templates/SingleView/SingleView.html
index 02c9a91..0a5e755 100644
--- a/Resources/Private/Templates/SingleView/SingleView.html
+++ b/Resources/Private/Templates/SingleView/SingleView.html
@@ -4,6 +4,30 @@
 {namespace rx=Reelworx\RxShariff\ViewHelper}
 
 <f:section name="main">
+	<f:alias map="{leftBrace: '{', rightBrace: '}'}">
+		<script type="application/ld+json">
+				{leftBrace}
+					"@context": "http://schema.org/",
+					"@type": "NewsArticle",
+					"author": "{newsMetaData.news.author}",
+					"publisher": {leftBrace}
+						"@type": "Organization",
+						"name": "{settings.publisher}",
+						"logo":   {leftBrace}
+							"@type": "ImageObject",
+							"url": "{settings.publisherLogo}"
+						 {rightBrace}
+					{rightBrace},
+					"image": "<f:uri.image absolute="TRUE" image="{newsMetaData.imageObject}" />",
+					"headline": "{newsMetaData.news.navTitle}",
+					"description": "{newsMetaData.news.description}",
+					"dateCreated": "<f:format.date format="Y-m-d">{newsMetaData.news.creationDate}</f:format.date>",
+					"datePublished": "<f:format.date format="Y-m-d">{newsMetaData.news.creationDate}</f:format.date>",
+					"dateModified": "<f:format.date format="Y-m-d">{newsMetaData.news.lastUpdated}</f:format.date>"
+				{rightBrace}
+		</script>
+	</f:alias>
+
 	<div class="intro-section">
 		<section class="dark-bg">
 			<div class="tx-sgnews-single-header {f:if(condition: newsMetaData.imageObject, then: 'tx-sgnews-single-header-image')}">
-- 
GitLab