TYPO3: Speichern und Anzeigen für News-Einträge
Das Problem: News-Einträge anlegen und ansehen
Der gewöhnliche Ablauf eines Redakteures bei der Erstellung eines „News“-Beitrages in TYPO3 sieht folgendermaßen aus: Der Redakteur legt eine neue News an, ruft die Listenansicht auf, bedient eventuell zur Hilfestellung die Suchfunktion, um dann endlich den soeben erstellten Beitrag aufrufen und die gewünschte Darstellung überprüfen zu können.
Und diesen Vorgang müsste der Redakteur dann bei jeder Änderung wiederholen – sehr zeitaufwändig und umständlich.
Speichern und Anzeigen, bitte!
Abhilfe schafft hier das neue preview
Objekt, das mit der Version TYPO3 7.2 (FEATURE #66370) dem TCEMAIN PageTS hinzugefügt wurde. Die Feature-Beschreibung erläutert die Verwendung des preview Objekts wie folgt:
TCEMAIN.preview { <table name> { previewPageId = 123 useDefaultLanguageRecord = 0 fieldToParameterMap { uid = tx_myext_pi1[showUid] } additionalGetParameters { tx_myext_pi1.special = HELLO # results in tx_myext_pi1[special] } } }
Speichern und Anzeigen bei News
Um diese Funktion der News-Erweiterung hinzuzufügen, werden nur ein paar Zeilen PageTS benötigt. Diese werden dem Systemordner hinzugefügt, der die News-Datensätze enthält.
Das PageTS sieht dabei für TYPO3 8 wie folgt aus:
TCEMAIN.preview { tx_news_domain_model_news { useCacheHash = 1 previewPageId = 8 useDefaultLanguageRecord = 0 fieldToParameterMap { uid = tx_news_pi1[news_preview] } additionalGetParameters { tx_news_pi1.controller = News tx_news_pi1.action = detail } } }
Hier ein paar Erklärungen, wie sich der PageTS aufschlüsseln lässt:
useCacheHash
sorgt dafür, dass der cHash Parameter an die aufgerufene URL angehangen wird (erst ab TYPO3 8 nötig und möglich)bei der previewPageId
handelt es sich um unsere Detailseite – eben jene, auf der sich die Detailansicht der News-Extension befindet. Lässt man diese Angabe aus, wird die aktuelle Seite verwendet. Da wir uns aber in der Regel in einem Systemordner befinden, würde das nicht funktionierenuseDefaultLanguageRecord = 0
ermöglicht die Berücksichtigung der Sprache- unter
additionalGetParameters
werden die notwendigen URL Parameter für den Plugin-Aufruf angegeben
Ausblick
Diese Funktion kann. wie oben beschrieben, nicht nur für die News-Extension genutzt werden, sondern von grundsätzlich allen Extbase-Erweiterungen. Dadurch können eigene Erweiterungen um den Speichern- und den Ansehen-Button ergänzt werden. Auch die bestehende Speichern- und Ansehen-Funktionalität bestehender Inhaltselemente kann dadurch angepasst werden.
Über Anregungen oder Fragen zu dem Thema News-Extensions, freuen wir uns über zahlreiche Kommentare oder nehmen Sie gerne Kontakt mit uns auf.
Kommentar von Markus
Das funktioniert bei mir nur bedingt.
Wenn die news hidden ist, bekomme ich keine Anzeige.
In TYPO3 9 funktioniert das feature garnicht mehr.
Kommentar von Marc
Hallo Markus,
danke für deinen Kommentar. Ich habe gerade nochmal in einer TYPO3 9.5.20 nachgeschaut, da funktioniert das Feature wie beschrieben. Aber du hast Recht, bei deaktivierten Nachrichten kommt ein 404-Fehler. Das könnte man im TYPO3 Forge melden.
Viele Grüße,
Marc
Kommentar von Leonhard
Hallo Marc,
auch, wenn der Beitrag etwas älter ist. In Typo3 10.4 ist die Einstellung weiterhin möglich(auch bei hidden). Ein Redakteur wünschte sich nämlich diese Option. Wichtig ist aber, dass man in der setup.t3s noch diese Einstellungen vornimmt.
plugin.tx_news.settings.previewHiddenRecords = 2
plugin.tx_news.settings.enablePreviewOfHiddenRecords = 1
Standardmäßig sind diese Parameter NULL Dann haut der Controller nämlich weiterhin eine Fehlermeldung raus.
VG
Kommentar von Marc
Hallo Leonhard,
vielen Dank für deinen Beitrag. Wir nutzen die Funktion auch in aktuelleren TYPO3-Projekten.
LG