Zufälligen Inhalt einer Spalte per TypoScript ausgeben.
In unserem Beispiel geben wir aus der Seite mit ID 2 und der Spalten ID 1, bis zu drei zufällige Datensätze aus.
lib.randomContent = COA_INT
lib.randomContent {
10 = CONTENT
10 {
table = tt_content
select {
pidInList = 2
where = colPos = 1
orderBy = RAND()
max = 3
languageField = sys_language_uid
}
renderObj < tt_content
renderObj.stdWrap.wrap = <div class="randomContent">|</div>
renderObj.stdWrap.required = 1
}
}
Getestet mit TYPO3 6.2
Hinweis: Funktioniert aktuell nur mit css_styled_content
Für die neue Version 8.7 habe ich hier eine Quick and Dirty Lösung mittels jQuery Online gestellt.
Kommentare
Hey danke dir für deinen Snippet. Genau sowas habe ich gesucht. Verfolge deinen Blog schon seit einigen Wochen und in manchen Sachen hast du mir in Typo 3 wirklich weiter geholfen! Mach weiter so!
Gruß
Hallo Stephan, freut mich wenn ich dir weiterhelfen konnte.
Hallo danke für dein Snippet!
Habe es 1:1 in mein TS kopiert.
TYPO3 8.7.1
zusätzliche EXT: gridelements, bootstrap_grids, tx_news
‚Einbindung mit FLUID (etc) korrekt…
Folgende Fehlermeldung!
Oops, an error occurred!
An exception occurred while executing ‚SELECT * FROM `tt_content` WHERE (`tt_content`.`pid` IN (23)) AND (colPos = 0) AND (`sys_language_uid` = 0) AND ((`tt_content`.`deleted` = 0) AND (`tt_content`.`t3ver_state` <= 0) AND (`tt_content`.`pid` -1) AND (`tt_content`.`hidden` = 0) AND (`tt_content`.`starttime` 1494002580)) AND (((`tt_content`.`fe_group` = “) OR (`tt_content`.`fe_group` IS NULL) OR (`tt_content`.`fe_group` = ‚0‘) OR (FIND_IN_SET(‚0‘, `tt_content`.`fe_group`)) OR (FIND_IN_SET(‚-1′, `tt_content`.`fe_group`))))) ORDER BY `RAND()` ASC LIMIT 3‘: Unknown column ‚RAND()‘ in ‚order clause‘
Eine Idee….?
Hallo thowe,
tatsächlich funktioniert der Snippet nicht mehr mit fluid_styled_content. Sobald ich eine Lösung gefunden habe, aktualisiere ich den Artikel.
Hallo Markus,
die Lösung würde mich brennend interessieren. Ich hatte mal durch einen Tipp etwas ähnliches für Dateisammlungen zusammengestellt. Vielleicht hilft das weiter. Mir leider nicht, aber ich bin da auch nicht so tief drin: https://typo3.fischhase.de/standard-titel/zufaellige-hintergrundbilder-aus-dateisammlung/
Grüße
Martin
Hallo Martin,
bekannt ist das orderBy = rand() seit TYPO3 8.7 nicht mehr funktioniert. Eine quick and dirty Lösung wäre alle Inhalte auszugeben und mit jQuery die zufällige Darstellung zu regeln.
Edit: Hab mal schnell ein Beispiel hier erstellt: TYPO3 8.7 zufälligen Inhalt ausgeben
Weitere Beiträge
Per Typoscript die ID im body-Tag übergeben
Wordpress | Die Anzeige von Inhalten mit Conditional Tags selbst steuern.
Wie man eine REST API mit Symfony und JWT-Authentifizierung aufbaut
Mit jQuery Breite und Höhe des Browsers auslesen und in DIV-Container anzeigen.