diff --git a/Classes/Controller/ListByCategoryController.php b/Classes/Controller/ListByCategoryController.php index 5be93e21ec44e7da6974b4ae674b3c4426eff694..0962a22dd9ac4bbe214fea380d8058d556d694f1 100644 --- a/Classes/Controller/ListByCategoryController.php +++ b/Classes/Controller/ListByCategoryController.php @@ -32,6 +32,7 @@ use SGalinski\SgNews\Domain\Repository\NewsRepository; use SGalinski\SgNews\Domain\Repository\TagRepository; use SGalinski\SgNews\Service\ConfigurationService; use SGalinski\SgNews\Service\HeaderMetaDataService; +use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; use TYPO3\CMS\Core\Http\ImmediateResponseException; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Frontend\Controller\ErrorController; @@ -167,12 +168,22 @@ class ListByCategoryController extends AbstractController { $newsMetaData[] = $data; if (!$headerSet) { - if ($data['image']) { - HeaderMetaDataService::addOgImageToHeader($data['image']); - $headerSet = TRUE; - } elseif ($data['teaserImage']) { - HeaderMetaDataService::addOgImageToHeader($data['teaserImage']); - $headerSet = TRUE; + if (version_compare(ExtensionManagementUtility::getExtensionVersion('sg_seo'), '5.0.0', '>=')) { + if ($data['image']) { + HeaderMetaDataService::addOgImageToHeader($data['imageObject']->getOriginalResource()); + $headerSet = TRUE; + } elseif ($data['teaserImage']) { + HeaderMetaDataService::addOgImageToHeader($data['teaserImageObject']->getOriginalResource()); + $headerSet = TRUE; + } + } else { + if ($data['image']) { + HeaderMetaDataService::addOgImageToHeader($data['image']); + $headerSet = TRUE; + } elseif ($data['teaserImage']) { + HeaderMetaDataService::addOgImageToHeader($data['teaserImage']); + $headerSet = TRUE; + } } } } diff --git a/Classes/Controller/OverviewController.php b/Classes/Controller/OverviewController.php index d3d589fc0c8c15d83187cfaa1e070d07cdf0363b..ee0d90c486a7819d11d79bbf402d81ce3a32b3df 100644 --- a/Classes/Controller/OverviewController.php +++ b/Classes/Controller/OverviewController.php @@ -41,6 +41,7 @@ use TYPO3\CMS\Extbase\Persistence\Generic\QueryResult; use TYPO3\CMS\Extbase\Persistence\QueryInterface; use TYPO3\CMS\Frontend\Controller\ErrorController; use TYPO3\CMS\Frontend\Page\PageAccessFailureReasons; +use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; /** * Controller that handles the overview page of categories and their news @@ -147,10 +148,18 @@ class OverviewController extends AbstractController { $highlightedNewsMetaData = $this->getMetaDataForNews($highlightedNews, $category); } - if ($highlightedNewsMetaData['image']) { - HeaderMetaDataService::addOgImageToHeader($highlightedNewsMetaData['image']); - } elseif ($highlightedNewsMetaData['teaserImage']) { - HeaderMetaDataService::addOgImageToHeader($highlightedNewsMetaData['teaserImage']); + if (version_compare(ExtensionManagementUtility::getExtensionVersion('sg_seo'), '5.0.0', '>=')) { + if ($highlightedNewsMetaData['image']) { + HeaderMetaDataService::addOgImageToHeader($highlightedNewsMetaData['imageObject']->getOriginalResource()); + } elseif ($highlightedNewsMetaData['teaserImage']) { + HeaderMetaDataService::addOgImageToHeader($highlightedNewsMetaData['teaserImageObject']->getOriginalResource()); + } + } else { + if ($highlightedNewsMetaData['image']) { + HeaderMetaDataService::addOgImageToHeader($highlightedNewsMetaData['image']); + } elseif ($highlightedNewsMetaData['teaserImage']) { + HeaderMetaDataService::addOgImageToHeader($highlightedNewsMetaData['teaserImage']); + } } } diff --git a/Classes/Controller/SingleViewController.php b/Classes/Controller/SingleViewController.php index 16587afde8a096dd9bf74bdcfd59a08a7a3153de..40c14e0afbfa1c830c0be569c3f18771af04b095 100644 --- a/Classes/Controller/SingleViewController.php +++ b/Classes/Controller/SingleViewController.php @@ -33,6 +33,7 @@ use SGalinski\SgNews\Domain\Repository\NewsRepository; use SGalinski\SgNews\Domain\Repository\TagRepository; use SGalinski\SgNews\Service\HeaderMetaDataService; use TYPO3\CMS\Core\Charset\CharsetConverter; +use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; /** * Controller that handles the news single view page @@ -92,10 +93,18 @@ class SingleViewController extends AbstractController { // } $newsMetaData = $this->getMetaDataForNews($news, $newsCategory); - if ($newsMetaData['image']) { - HeaderMetaDataService::addOgImageToHeader($newsMetaData['image']); - } elseif ($newsMetaData['teaserImage']) { - HeaderMetaDataService::addOgImageToHeader($newsMetaData['teaserImage']); + if (version_compare(ExtensionManagementUtility::getExtensionVersion('sg_seo'), '5.0.0', '>=')) { + if ($newsMetaData['image']) { + HeaderMetaDataService::addOgImageToHeader($newsMetaData['imageObject']->getOriginalResource()); + } elseif ($newsMetaData['teaserImage']) { + HeaderMetaDataService::addOgImageToHeader($newsMetaData['teaserImageObject']->getOriginalResource()); + } + } else { + if ($newsMetaData['image']) { + HeaderMetaDataService::addOgImageToHeader($newsMetaData['image']); + } elseif ($newsMetaData['teaserImage']) { + HeaderMetaDataService::addOgImageToHeader($newsMetaData['teaserImage']); + } } $previousNews = $this->newsRepository->findPreviousNewsEntryFromCurrentNews($news, $this->settings['sortBy']) diff --git a/Classes/Service/HeaderMetaDataService.php b/Classes/Service/HeaderMetaDataService.php index 87ab25ef308fff5bdf04668c8fd8384cc8e163c1..807a64f57207d5cfde84145731bd6692c26d01e5 100644 --- a/Classes/Service/HeaderMetaDataService.php +++ b/Classes/Service/HeaderMetaDataService.php @@ -26,6 +26,7 @@ namespace SGalinski\SgNews\Service; * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ +use TYPO3\CMS\Core\Resource\FileReference; use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController; /** @@ -35,14 +36,10 @@ class HeaderMetaDataService { /** * Sets the data for the og:image meta data header tag. * - * @param string $path + * @param string|FileReference $path * @return void */ - public static function addOgImageToHeader($path) { - if (strlen($path) <= 0) { - return; - } - + public static function addOgImageToHeader($path): void { /** @var $typoScriptController TypoScriptFrontendController */ $typoScriptController = $GLOBALS['TSFE']; $typoScriptController->page['og_image_path_by_extension'] = $path; diff --git a/Configuration/TCA/Overrides/pages.php b/Configuration/TCA/Overrides/pages.php index c7613ed82245b16c6c0e6c456f1714510f55bd34..5fb02a71c9de3e14f7ae25f2466850402cd476de 100644 --- a/Configuration/TCA/Overrides/pages.php +++ b/Configuration/TCA/Overrides/pages.php @@ -62,12 +62,18 @@ $GLOBALS['TCA']['pages']['types'][\SGalinski\SgNews\Utility\BackendNewsUtility:: --palette--;;titleDescriptionAndHighlightFlag, --palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:pages.palettes.editorial;editorialWithNewsAuthor, tx_sgnews_content_from_another_page, tx_sgnews_related_news, tx_sgnews_tags, + --div--;LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.tabs.seo, + --palette--;;seo, + --palette--;;robots, + --palette--;;canonical, + --palette--;;sitemap, + --div--;LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.tabs.socialmedia, + --palette--;;opengraph, + --palette--;;twittercards, --div--;' . $localLangDbPath . 'pages.tabs.images, tx_sgnews_teaser2_image, tx_sgnews_teaser1_image, --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.metadata, - tx_projectbase_devnullrobots_flags, --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.abstract;abstract, - tx_projectbase_seo_titletag,tx_projectbase_seo_canonicaltag, --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.appearance, --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.layout;layout, --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, @@ -85,12 +91,19 @@ $GLOBALS['TCA']['pages']['types'][\SGalinski\SgNews\Utility\BackendNewsUtility:: 'showitem' => '--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, --palette--;;standard, title, slug, tx_projectbase_path_segment, tx_projectbase_excludefromsluggeneration, tx_realurl_pathsegment, tx_realurl_exclude, + --div--;LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.tabs.seo, + --palette--;;seo, + --palette--;;robots, + --palette--;;canonical, + --palette--;;sitemap, + --div--;LLL:EXT:seo/Resources/Private/Language/locallang_tca.xlf:pages.tabs.socialmedia, + --palette--;;opengraph, + --palette--;;twittercards, --div--;' . $localLangDbPath . 'pages.tabs.images, tx_sgnews_teaser2_image, tx_sgnews_teaser1_image, --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.metadata, - tx_projectbase_devnullrobots_flags, --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.abstract;abstract, - tx_projectbase_seo_titletag,tx_projectbase_seo_canonicaltag, description, + seo_title,canonical_link, description, --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.appearance, --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.layout;layout, --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:access, @@ -404,8 +417,8 @@ foreach ($GLOBALS['TCA']['pages']['columns'] as $languageExcludeField => $_) { 'tx_sgnews_teaser2_image', 'tx_sgnews_tags', 'abstract', - 'tx_projectbase_seo_titletag', - 'tx_projectbase_seo_canonicaltag', + 'seo_title', + 'canonical_link', 'hidden', 'sys_language_uid', 'tx_languagevisibility_visibility',