From 7231ba4afe9108e83cbe60bed9ad6c6d036889f4 Mon Sep 17 00:00:00 2001
From: Fabian Galinski <fabian@sgalinski.de>
Date: Wed, 19 Aug 2015 19:04:21 +0200
Subject: [PATCH] [TASK] Improvements of the og:image tags

---
 Classes/Controller/AbstractController.php      | 18 ------------------
 .../Controller/ListByCategoryController.php    |  9 ++++++++-
 Classes/Controller/OverviewController.php      |  9 ++++++++-
 Classes/Controller/SingleViewController.php    | 11 ++++-------
 ext_emconf.php                                 |  5 +++--
 5 files changed, 23 insertions(+), 29 deletions(-)

diff --git a/Classes/Controller/AbstractController.php b/Classes/Controller/AbstractController.php
index fb46f19..cd840e4 100644
--- a/Classes/Controller/AbstractController.php
+++ b/Classes/Controller/AbstractController.php
@@ -72,24 +72,6 @@ abstract class AbstractController extends ActionController {
 		throw new RuntimeException(parent::errorAction());
 	}
 
-	/**
-	 * Adds the og:image tag with the given image to the meta data.
-	 *
-	 * @param string $image
-	 * @return void
-	 */
-	public function addOgImageMetaTag($image) {
-		/** @var $typoScriptController TypoScriptFrontendController */
-		$typoScriptController = $GLOBALS['TSFE'];
-
-		/** @var PageRenderer $pageRenderer */
-		$pageRenderer = $typoScriptController->getPageRenderer();
-		$pageRenderer->addHeaderDataRegex(
-			'<meta property="og:image" content=".*?"',
-			'<meta property="og:image" content="' . $image . '"'
-		);
-	}
-
 	/**
 	 * Returns the meta data of the given news.
 	 *
diff --git a/Classes/Controller/ListByCategoryController.php b/Classes/Controller/ListByCategoryController.php
index 80acdb1..c116210 100644
--- a/Classes/Controller/ListByCategoryController.php
+++ b/Classes/Controller/ListByCategoryController.php
@@ -26,6 +26,7 @@ namespace SGalinski\SgNews\Controller;
  *  This copyright notice MUST APPEAR in all copies of the script!
  ***************************************************************/
 
+use SGalinski\ProjectBase\Service\HeaderMetaDataService;
 use SGalinski\SgNews\Domain\Model\Category;
 use SGalinski\SgNews\Domain\Model\News;
 use TYPO3\CMS\Core\Utility\GeneralUtility;
@@ -94,6 +95,12 @@ class ListByCategoryController extends AbstractController {
 			$newsMetaData[] = $data;
 		}
 
+		if ($highlightedNewsMetaData['image']) {
+			HeaderMetaDataService::addOgImageToHeader($highlightedNewsMetaData['image']);
+		} elseif ($highlightedNewsMetaData['teaserImage']) {
+			HeaderMetaDataService::addOgImageToHeader($highlightedNewsMetaData['teaserImage']);
+		}
+
 		$this->view->assign('numberOfPages', $numberOfPages);
 		$this->view->assign('newsMetaData', $newsMetaData);
 		$this->view->assign('category', $selectedCategory);
@@ -101,4 +108,4 @@ class ListByCategoryController extends AbstractController {
 	}
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/Classes/Controller/OverviewController.php b/Classes/Controller/OverviewController.php
index 54ffa4e..af6fbf2 100644
--- a/Classes/Controller/OverviewController.php
+++ b/Classes/Controller/OverviewController.php
@@ -26,6 +26,7 @@ namespace SGalinski\SgNews\Controller;
  *  This copyright notice MUST APPEAR in all copies of the script!
  ***************************************************************/
 
+use SGalinski\ProjectBase\Service\HeaderMetaDataService;
 use SGalinski\SgNews\Domain\Model\Category;
 use SGalinski\SgNews\Domain\Model\News;
 use TYPO3\CMS\Extbase\Persistence\Generic\Query;
@@ -85,9 +86,15 @@ class OverviewController extends AbstractController {
 			$highlightedNewsMetaData = $this->getMetaDataForNews($highlightedNews, $category);
 		}
 
+		if ($highlightedNewsMetaData['image']) {
+			HeaderMetaDataService::addOgImageToHeader($highlightedNewsMetaData['image']);
+		} elseif ($highlightedNewsMetaData['teaserImage']) {
+			HeaderMetaDataService::addOgImageToHeader($highlightedNewsMetaData['teaserImage']);
+		}
+
 		$this->view->assign('newsByCategory', $newsByCategory);
 		$this->view->assign('highlightedNewsMetaData', $highlightedNewsMetaData);
 	}
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/Classes/Controller/SingleViewController.php b/Classes/Controller/SingleViewController.php
index aefa6dd..473158f 100644
--- a/Classes/Controller/SingleViewController.php
+++ b/Classes/Controller/SingleViewController.php
@@ -26,6 +26,7 @@ namespace SGalinski\SgNews\Controller;
  *  This copyright notice MUST APPEAR in all copies of the script!
  ***************************************************************/
 
+use SGalinski\ProjectBase\Service\HeaderMetaDataService;
 use SGalinski\SgNews\Domain\Model\Category;
 use SGalinski\SgNews\Domain\Model\News;
 use TYPO3\CMS\Core\Page\PageRenderer;
@@ -94,13 +95,9 @@ class SingleViewController extends AbstractController {
 		$newsAuthor = $news->getAuthorFrontendUser();
 		$newsMetaData = $this->getMetaDataForNews($news, $newsCategory);
 		if ($newsMetaData['image']) {
-			$pageRenderer->addHeaderData(
-				'<meta property="og:image" content="' . $newsMetaData['image'] . '" />'
-			);
+			HeaderMetaDataService::addOgImageToHeader($newsMetaData['image']);
 		} elseif ($newsMetaData['teaserImage']) {
-			$pageRenderer->addHeaderData(
-				'<meta property="og:image" content="' . $newsMetaData['teaserImage'] . '" />'
-			);
+			HeaderMetaDataService::addOgImageToHeader($newsMetaData['teaserImage']);
 		}
 
 		if ($this->settings['facebookPublisher'] !== '') {
@@ -121,4 +118,4 @@ class SingleViewController extends AbstractController {
 	}
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/ext_emconf.php b/ext_emconf.php
index 21d2121..4f8a507 100644
--- a/ext_emconf.php
+++ b/ext_emconf.php
@@ -25,7 +25,8 @@ $EM_CONF[$_EXTKEY] = array(
 			'typo3' => '6.2.0-6.2.99',
 			'php' => '5.4.0-5.6.99',
 			'pw_comments' => '3.0.0-3.9.99',
-			'rx_shariff' => '2.1.0-'
+			'rx_shariff' => '2.1.0-',
+			'project_base' => '1.0.0-'
 		),
 		'conflicts' => array(),
 		'suggests' => array(),
@@ -34,4 +35,4 @@ $EM_CONF[$_EXTKEY] = array(
 	'_md5_values_when_last_written' => '',
 );
 
-?>
\ No newline at end of file
+?>
-- 
GitLab