Moin,
Hab grad feststellen müssen, dass in der Datenbank der Bezug zu Show als Spalte tx_show benannt ist.
Das würde ich SOFORT! ändern. Convention over Configuration. Was per Convention nicht passt, muss extra configuriert werden. Je mehr also schon stimmt - durch Einhalten der Convention - umso weniger muss extra und umständlich nach- oder überkonfiguriert werden.
Und wenn die Namen nicht durchgängig sind, stößt du früher oder später immer wieder auf Probleme, oder derjenige, der deinen Code in ein paar Jahren weiterbearbeiten soll - eventuell bist du das selbst.
Der Prefix tx_ deutet eher auf einen DB-Tabellennamen hin als auf eine Spalte.
Stimmt denn dein TCA diesbezüglich?
Nochmal zu diesem Punkt:
$this->view->assign('aktuelleProduktionen', $aktuelleProduktionen);
$this->view->assign('archivierteProduktionen', $archivierteProduktionen);
$this->view->assign('show', $show);
Wenn aktuelleProd und archivierteProd Teil der Show sind (so hab ich es verstanden),
dann reicht es, die show zu übergeben, weil du ja dann aus der View auch auf show.archivProd und show.aktuelleProd zugreifen kannst.
Dazu brauchst du im Show-Model die beiden Get-Funktionen (s.o. im thread), welche dir gesiebte Listen liefern.
Dann zu dem Punkt deiner Überschrift, die ausbleiben soll, wenn kein Element da ist:
Wenn du eine Liste aktuelleProduktionen hast, kannst du abzählen, wieviele Elemente drin sind ... count()
Wenn nicht, kannst du z.B. eine Methode in dein Model packen, namens hasAktuelleProduktionen() (ich bin kein Fan von Denglish, aber sei's drum)
Dort läufst du alle Prods durch und lieferst true, wenn es min. eine aktuelle gibt.
Da fällt mir noch was ein: Du hast schon den beschreibenden Kommentar über den Funktionen des Repository, oder ? Ich bin mir nicht sicher, wie wichtig dieser ist, aber schaden tut er auf keinen Fall.