Skip to content
Snippets Groups Projects
Commit 1cc6308a authored by Georgi's avatar Georgi
Browse files

Merge branch 'feature_10.0.0_manual' into 'master'

[TASK] Adapt sg_news to sg_seo 5.0.0

See merge request !37
parents 0b00b6fb b81c0869
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; ...@@ -32,6 +32,7 @@ use SGalinski\SgNews\Domain\Repository\NewsRepository;
use SGalinski\SgNews\Domain\Repository\TagRepository; use SGalinski\SgNews\Domain\Repository\TagRepository;
use SGalinski\SgNews\Service\ConfigurationService; use SGalinski\SgNews\Service\ConfigurationService;
use SGalinski\SgNews\Service\HeaderMetaDataService; use SGalinski\SgNews\Service\HeaderMetaDataService;
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
use TYPO3\CMS\Core\Http\ImmediateResponseException; use TYPO3\CMS\Core\Http\ImmediateResponseException;
use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\GeneralUtility;
use TYPO3\CMS\Frontend\Controller\ErrorController; use TYPO3\CMS\Frontend\Controller\ErrorController;
...@@ -167,12 +168,22 @@ class ListByCategoryController extends AbstractController { ...@@ -167,12 +168,22 @@ class ListByCategoryController extends AbstractController {
$newsMetaData[] = $data; $newsMetaData[] = $data;
if (!$headerSet) { if (!$headerSet) {
if ($data['image']) { if (version_compare(ExtensionManagementUtility::getExtensionVersion('sg_seo'), '5.0.0', '>=')) {
HeaderMetaDataService::addOgImageToHeader($data['image']); if ($data['image']) {
$headerSet = TRUE; HeaderMetaDataService::addOgImageToHeader($data['imageObject']->getOriginalResource());
} elseif ($data['teaserImage']) { $headerSet = TRUE;
HeaderMetaDataService::addOgImageToHeader($data['teaserImage']); } elseif ($data['teaserImage']) {
$headerSet = TRUE; 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; ...@@ -41,6 +41,7 @@ use TYPO3\CMS\Extbase\Persistence\Generic\QueryResult;
use TYPO3\CMS\Extbase\Persistence\QueryInterface; use TYPO3\CMS\Extbase\Persistence\QueryInterface;
use TYPO3\CMS\Frontend\Controller\ErrorController; use TYPO3\CMS\Frontend\Controller\ErrorController;
use TYPO3\CMS\Frontend\Page\PageAccessFailureReasons; use TYPO3\CMS\Frontend\Page\PageAccessFailureReasons;
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
/** /**
* Controller that handles the overview page of categories and their news * Controller that handles the overview page of categories and their news
...@@ -147,10 +148,18 @@ class OverviewController extends AbstractController { ...@@ -147,10 +148,18 @@ class OverviewController extends AbstractController {
$highlightedNewsMetaData = $this->getMetaDataForNews($highlightedNews, $category); $highlightedNewsMetaData = $this->getMetaDataForNews($highlightedNews, $category);
} }
if ($highlightedNewsMetaData['image']) { if (version_compare(ExtensionManagementUtility::getExtensionVersion('sg_seo'), '5.0.0', '>=')) {
HeaderMetaDataService::addOgImageToHeader($highlightedNewsMetaData['image']); if ($highlightedNewsMetaData['image']) {
} elseif ($highlightedNewsMetaData['teaserImage']) { HeaderMetaDataService::addOgImageToHeader($highlightedNewsMetaData['imageObject']->getOriginalResource());
HeaderMetaDataService::addOgImageToHeader($highlightedNewsMetaData['teaserImage']); } 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; ...@@ -33,6 +33,7 @@ use SGalinski\SgNews\Domain\Repository\NewsRepository;
use SGalinski\SgNews\Domain\Repository\TagRepository; use SGalinski\SgNews\Domain\Repository\TagRepository;
use SGalinski\SgNews\Service\HeaderMetaDataService; use SGalinski\SgNews\Service\HeaderMetaDataService;
use TYPO3\CMS\Core\Charset\CharsetConverter; use TYPO3\CMS\Core\Charset\CharsetConverter;
use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
/** /**
* Controller that handles the news single view page * Controller that handles the news single view page
...@@ -92,10 +93,18 @@ class SingleViewController extends AbstractController { ...@@ -92,10 +93,18 @@ class SingleViewController extends AbstractController {
// } // }
$newsMetaData = $this->getMetaDataForNews($news, $newsCategory); $newsMetaData = $this->getMetaDataForNews($news, $newsCategory);
if ($newsMetaData['image']) { if (version_compare(ExtensionManagementUtility::getExtensionVersion('sg_seo'), '5.0.0', '>=')) {
HeaderMetaDataService::addOgImageToHeader($newsMetaData['image']); if ($newsMetaData['image']) {
} elseif ($newsMetaData['teaserImage']) { HeaderMetaDataService::addOgImageToHeader($newsMetaData['imageObject']->getOriginalResource());
HeaderMetaDataService::addOgImageToHeader($newsMetaData['teaserImage']); } 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']) $previousNews = $this->newsRepository->findPreviousNewsEntryFromCurrentNews($news, $this->settings['sortBy'])
......
...@@ -26,6 +26,7 @@ namespace SGalinski\SgNews\Service; ...@@ -26,6 +26,7 @@ namespace SGalinski\SgNews\Service;
* This copyright notice MUST APPEAR in all copies of the script! * This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/ ***************************************************************/
use TYPO3\CMS\Core\Resource\FileReference;
use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController; use TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController;
/** /**
...@@ -35,14 +36,10 @@ class HeaderMetaDataService { ...@@ -35,14 +36,10 @@ class HeaderMetaDataService {
/** /**
* Sets the data for the og:image meta data header tag. * Sets the data for the og:image meta data header tag.
* *
* @param string $path * @param string|FileReference $path
* @return void * @return void
*/ */
public static function addOgImageToHeader($path) { public static function addOgImageToHeader($path): void {
if (strlen($path) <= 0) {
return;
}
/** @var $typoScriptController TypoScriptFrontendController */ /** @var $typoScriptController TypoScriptFrontendController */
$typoScriptController = $GLOBALS['TSFE']; $typoScriptController = $GLOBALS['TSFE'];
$typoScriptController->page['og_image_path_by_extension'] = $path; $typoScriptController->page['og_image_path_by_extension'] = $path;
......
...@@ -56,8 +56,40 @@ foreach ( ...@@ -56,8 +56,40 @@ foreach (
]; ];
} }
$GLOBALS['TCA']['pages']['types'][\SGalinski\SgNews\Utility\BackendNewsUtility::NEWS_DOKTYPE] = [ if (version_compare(\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getExtensionVersion('sg_seo'), '5.0.0', '>=')) {
'showitem' => '--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, $GLOBALS['TCA']['pages']['types'][\SGalinski\SgNews\Utility\BackendNewsUtility::NEWS_DOKTYPE] = [
'showitem' => '--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,
--palette--;;standard,
--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,
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.abstract;abstract,
--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,
--palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:pages.palettes.visibility;visibility,
--palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:pages.palettes.access;access,
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.behaviour,
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.caching;caching,
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.miscellaneous;miscellaneous,
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,
--palette--;;language
'
];
} else {
$GLOBALS['TCA']['pages']['types'][\SGalinski\SgNews\Utility\BackendNewsUtility::NEWS_DOKTYPE] = [
'showitem' => '--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,
--palette--;;standard, --palette--;;standard,
--palette--;;titleDescriptionAndHighlightFlag, --palette--;;titleDescriptionAndHighlightFlag,
--palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:pages.palettes.editorial;editorialWithNewsAuthor, --palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:pages.palettes.editorial;editorialWithNewsAuthor,
...@@ -79,10 +111,41 @@ $GLOBALS['TCA']['pages']['types'][\SGalinski\SgNews\Utility\BackendNewsUtility:: ...@@ -79,10 +111,41 @@ $GLOBALS['TCA']['pages']['types'][\SGalinski\SgNews\Utility\BackendNewsUtility::
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,
--palette--;;language --palette--;;language
' '
]; ];
}
$GLOBALS['TCA']['pages']['types'][\SGalinski\SgNews\Utility\BackendNewsUtility::CATEGORY_DOKTYPE] = [ if (version_compare(\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getExtensionVersion('sg_seo'), '5.0.0', '>=')) {
'showitem' => '--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general, $GLOBALS['TCA']['pages']['types'][\SGalinski\SgNews\Utility\BackendNewsUtility::CATEGORY_DOKTYPE] = [
'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,
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.abstract;abstract,
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,
--palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:pages.palettes.visibility;visibility,
--palette--;LLL:EXT:core/Resources/Private/Language/locallang_tca.xlf:pages.palettes.access;access,
--div--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.tabs.behaviour,
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.caching;caching,
--palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:pages.palettes.miscellaneous;miscellaneous,
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,
--palette--;;language
'
];
} else {
$GLOBALS['TCA']['pages']['types'][\SGalinski\SgNews\Utility\BackendNewsUtility::CATEGORY_DOKTYPE] = [
'showitem' => '--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,
--palette--;;standard, --palette--;;standard,
title, slug, tx_projectbase_path_segment, tx_projectbase_excludefromsluggeneration, tx_realurl_pathsegment, tx_realurl_exclude, title, slug, tx_projectbase_path_segment, tx_projectbase_excludefromsluggeneration, tx_realurl_pathsegment, tx_realurl_exclude,
--div--;' . $localLangDbPath . 'pages.tabs.images, --div--;' . $localLangDbPath . 'pages.tabs.images,
...@@ -102,7 +165,8 @@ $GLOBALS['TCA']['pages']['types'][\SGalinski\SgNews\Utility\BackendNewsUtility:: ...@@ -102,7 +165,8 @@ $GLOBALS['TCA']['pages']['types'][\SGalinski\SgNews\Utility\BackendNewsUtility::
--div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language, --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:language,
--palette--;;language --palette--;;language
' '
]; ];
}
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns( \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
'pages', 'pages',
...@@ -391,29 +455,56 @@ $GLOBALS['TCA']['pages']['palettes']['editorialWithNewsAuthor'] = [ ...@@ -391,29 +455,56 @@ $GLOBALS['TCA']['pages']['palettes']['editorialWithNewsAuthor'] = [
]; ];
foreach ($GLOBALS['TCA']['pages']['columns'] as $languageExcludeField => $_) { foreach ($GLOBALS['TCA']['pages']['columns'] as $languageExcludeField => $_) {
if (!in_array($languageExcludeField, [ if (version_compare(\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getExtensionVersion('sg_seo'), '5.0.0', '>=')) {
'doktype', $fieldNames = [
'title', 'doktype',
'subtitle', 'title',
'description', 'subtitle',
'slug', 'description',
'tx_projectbase_path_segment', 'slug',
'tx_projectbase_excludefromsluggeneration', 'tx_projectbase_path_segment',
'tx_sgnews_location', 'tx_projectbase_excludefromsluggeneration',
'tx_sgnews_teaser1_image', 'tx_sgnews_location',
'tx_sgnews_teaser2_image', 'tx_sgnews_teaser1_image',
'tx_sgnews_tags', 'tx_sgnews_teaser2_image',
'abstract', 'tx_sgnews_tags',
'tx_projectbase_seo_titletag', 'abstract',
'tx_projectbase_seo_canonicaltag', 'seo_title',
'hidden', 'canonical_link',
'sys_language_uid', 'hidden',
'tx_languagevisibility_visibility', 'sys_language_uid',
'lastUpdated', 'tx_languagevisibility_visibility',
'tx_sgnews_date_end', 'lastUpdated',
'tx_sgnews_highlighted', 'tx_sgnews_date_end',
'tx_sgnews_never_highlighted', 'tx_sgnews_highlighted',
])) { 'tx_sgnews_never_highlighted',
];
} else {
$fieldNames = [
'doktype',
'title',
'subtitle',
'description',
'slug',
'tx_projectbase_path_segment',
'tx_projectbase_excludefromsluggeneration',
'tx_sgnews_location',
'tx_sgnews_teaser1_image',
'tx_sgnews_teaser2_image',
'tx_sgnews_tags',
'abstract',
'tx_projectbase_seo_titletag',
'tx_projectbase_seo_canonicaltag',
'hidden',
'sys_language_uid',
'tx_languagevisibility_visibility',
'lastUpdated',
'tx_sgnews_date_end',
'tx_sgnews_highlighted',
'tx_sgnews_never_highlighted',
];
}
if (!in_array($languageExcludeField, $fieldNames)) {
$GLOBALS['TCA']['pages']['types'][\SGalinski\SgNews\Utility\BackendNewsUtility::NEWS_DOKTYPE]['columnsOverrides'][$languageExcludeField]['l10n_mode'] = 'exclude'; $GLOBALS['TCA']['pages']['types'][\SGalinski\SgNews\Utility\BackendNewsUtility::NEWS_DOKTYPE]['columnsOverrides'][$languageExcludeField]['l10n_mode'] = 'exclude';
} }
} }
......
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