Ok, news_categories bietet tatsächlich nicht die Möglichkeit einer Ausgabe nach Kategorien, so wie du dies möchtest. Das liegt wohl daran, dass News ja auch mehreren Kategorien zugeordnet werden können und du in so einer Ausgabe dann diese News doppelt hättest. Diese Erweiterung ist dafür gedacht, eine Liste mit den Kategorien auszugeben, welche dann als Filter zu den einzelnen Kategorien dient.
Du könntest folgendes machen.
Das mod_newslist-Template weiß erstmal nichts von den News-Datensätzen, außer der Anzahl und einem Array, welches die generierten News aus dem news_-Template beinhaltet.
Im news_-Template kann man die auszuliefernden News in einer globalen Variable speichern.
PHP-Code:
<?php $GLOBALS['CUSTOM']['newsList'][] = $this->id ?>
Im mod_newslist-Template kann man diese News nun abrufen.
PHP-Code:
<?php
foreach($GLOBALS['CUSTOM']['newsList'] as $news)
{
$newsModel = \NewsModel::findByPk($news);
echo $newsModel->headline.'<br>';
echo $newsModel->alias.'<br>';
$categories = deserialize($newsModel->categories, true);
foreach($categories as $category)
{
$categoryModel = \NewsCategoryModel::findByPk($category);
echo $categoryModel->title.'<br>';
echo $categoryModel->alias.'<br>';
}
}
?>
In dem Beispiel siehst du, wie du anhand einer News-ID über ein Model an den Datensatz der News kommst und anhand einer Category-ID über ein Model an den Datensatz der Kategorie.
Dies nun nochmal aufzubereiten, dass du die Kategorietitel als Überschriften und darunter die passenden News stehen hast, wäre mit PHP möglich, ist mir aber gerade zu viel Aufwand.
Tipp: In Contao 3.5 kannst du zum Debuggen anstatt
PHP-Code:
echo $categoryModel->title.'<br>';
auch
PHP-Code:
dump($categoryModel->title);
benutzen.
Lesezeichen