In der Dokumentation zu tt_news wird ein Weg beschrieben, um die LIST- und SINGLE-Ansicht für News-Einträge in einer einzigen Plugininstanz nutzen zu können.
Unglücklicherweise ist dieses Vorgehen auf das althergebrachte Templating-System zugeschnitten und damit z. B. für TemplaVoilà nicht anwendbar.
Es gibt jedoch eine weitere Möglichkeit, die praktisch mit jedem Templating-System funktionieren sollte und nur wenige Zeilen TypoScript im Template der jeweiligen Seite erfordert:
plugin.tt_news { // Unset reference to Flexform field code > // Set default view, e. g. LIST code = LIST } [globalVar= GP:tx_ttnews|tt_news>0] // Change code to SINGLE if there's a news record to display plugin.tt_news.code = SINGLE [global] |
Damit dies jedoch funktioniert, darf in der Konfiguration für das News-Plugin nichts bei den Anzeigetypen (SINGLE, LIST, LATEST, …) ausgewählt werden. Andernfalls wird jegliche Einstellung im TypoScript ignoriert. Die Meldung, dass das Plugin hierdurch nicht konfiguriert ist, kann man getrost ignorieren.
Hinweis für die Version 3.0.0 der News-Erweiterung: das Formular für die Pluginkonfiguration wurde hier drastisch umgestaltet, wodurch es nunmehr unmöglich ist, keinen Wert für den Anzeigetyp festzulegen. Eine mögliche Lösung hierfür ist eine Modifikation des Flexforms der News-Erweiterung, was ich in diesem Zuge auch im Bugtracker von TYPO3 vorgeschlagen habe.
Das Resultat des ganzen Vorhabens sind kürzere Adressen durch die Einspaarung einer Seite.
Hat das dann auch Auswirkungen auf den RSS-Feed. Ich bekomme keinen RSS-Feed von meinem tt_news Artikeln. Habe auch List- und Singleview auf einem One-Page-Layout.
Zu Problemen kann es nicht kommen, sofern man für die Generierung des Feeds das von tt_news mitgelieferte xmlnews-Objekt (Seitentyp 100) verwendet.
Denn zuerst wird das eingebundene statische Template abgearbeitet, dabei das xmlnews-Objekt erzeugt. Die Manipulation der code-Eigenschaft von tt_news erfolgt aber danach. Das xmlnews-Objekt wird also nie angetastet, dessen defaultCode kommt daher zum Tragen.