Skip to content
Snippets Groups Projects
Commit e1c25e69 authored by Fabian Galinski's avatar Fabian Galinski :pouting_cat:
Browse files

[FEATURE] Use the single news imaga data for teaser image data, if they are empty.

parent d48bb366
No related branches found
No related tags found
No related merge requests found
......@@ -80,11 +80,41 @@ abstract class AbstractController extends ActionController {
* @return array
*/
protected function getMetaDataForNews(News $news, Category $category) {
/** @var FileReference $teaserImage */
$singleNewsImageData = $this->getDataForSingleViewImage($news, $category);
$teaserImageData = $this->getDataForTeaserImage($news, $category);
// Use single news image data for teaser image data, if the teaser imaga data are empty.
$teaserIsEmpty = $teaserImageData['teaserImage'] === NULL && $teaserImageData['teaserImageObject'] === NULL;
$singleNewsIsEmpty = $singleNewsImageData['image'] === NULL && $singleNewsImageData['imageObject'] === NULL;
if ($teaserIsEmpty && !$singleNewsIsEmpty) {
$teaserImageData = [
'teaserImage' => $singleNewsImageData['image'],
'teaserImageObject' => $singleNewsImageData['imageObject'],
'teaserImageHeadlineColor' => $singleNewsImageData['imageHeadlineColor'],
];
}
return array_merge(
[
'category' => $category,
'news' => $news,
],
$singleNewsImageData,
$teaserImageData
);
}
/**
* Returns the single view image data as an array for the given news and category as fallback.
*
* @param News $news
* @param Category $category
* @return array
*/
protected function getDataForSingleViewImage(News $news, Category $category) {
/** @var FileReference $singleNewsImage */
$singleNewsImage = $singleNewsImageObject = NULL;
$objectForData = $news;
$teaserImage = $singleNewsImage = $singleNewsImageObject = $teaserImageObject = NULL;
$singleNewsImages = $news->getTeaser2Image();
if (count($singleNewsImages)) {
$singleNewsImage = $singleNewsImages->current();
......@@ -108,6 +138,23 @@ abstract class AbstractController extends ActionController {
}
}
return [
'image' => $singleNewsImage,
'imageObject' => $singleNewsImageObject,
'imageHeadlineColor' => $imageHeadlineColor,
];
}
/**
* Returns the teaser image data as an array for the given news and category as fallback.
*
* @param News $news
* @param Category $category
* @return array
*/
protected function getDataForTeaserImage(News $news, Category $category) {
/** @var FileReference $teaserImage */
$teaserImage = $teaserImageObject = NULL;
$objectForData = $news;
$teaserImages = $news->getTeaser1Image();
if (count($teaserImages)) {
......@@ -133,13 +180,8 @@ abstract class AbstractController extends ActionController {
}
return [
'category' => $category,
'news' => $news,
'image' => $singleNewsImage,
'imageObject' => $singleNewsImageObject,
'teaserImage' => $teaserImage,
'teaserImageObject' => $teaserImageObject,
'imageHeadlineColor' => $imageHeadlineColor,
'teaserImageHeadlineColor' => $teaserImageHeadlineColor,
];
}
......
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