Skip to content
Snippets Groups Projects
Commit d477ce95 authored by Georgi Mateev's avatar Georgi Mateev
Browse files

[TASK] Adapt sg_news to sg_seo 5.0.0

- Add EXT:seo fields to TCA
- Adapt og:image handling
parent 0b00b6fb
No related branches found
No related tags found
1 merge request!37[TASK] Adapt sg_news to sg_seo 5.0.0
......@@ -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;
}
}
}
}
......
......@@ -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']);
}
}
}
......
......@@ -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'])
......
......@@ -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;
......
......@@ -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',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment