TYPO3 8.7 | Zufälligen Inhalt einer Spalte per jQuery ausgeben.
Seit der Version 8.7 ist es nicht mehr so einfach zufälligen Inhalt per TypoScript auszugeben. Die Funktion wurde wohl entfernt weil der Befehl
rand()
ein reiner MySQL Befehl ist und andere Datenbanken, wie zum Beispiel Oracle, damit nicht umgehen können. Trotzdem hoffe ich das diese Funktion wieder eingeführt wird.
Wer jetzt nicht gleich eine eigene Extension dafür programmieren will, kann die Anzeige über jQuery steuern. Wir geben also mit TypoScript alle Datensätze einer Spalte aus und steuern die zufällige Anzeige mittels jQuery. Zugegeben keine schöne Lösung, aber in der Not frisst der Teufel Fliegen. 🙂
TypoScript um alle Inhalte einer Spalte anzuzeigen
lib.randomContent = COA_INT
lib.randomContent {
10 = CONTENT
10 {
table = tt_content
select {
pidInList = 2
where = colPos=1
languageField = sys_language_uid
}
renderObj < tt_content
renderObj.stdWrap.wrap = <div class="randomContent">|</div>
renderObj.stdWrap.required = 1
}
}
Im Template, an die Stelle wo die zufälligen Content Elemente angezeigt werden sollen, muss folgendes:
<f:cObject typoscriptObjectPath="lib.randomContent" />
Mit jQuery zufällige Anzeige der Content Elemente steuern
Als erstes muss natürlich jQuery selbst eingebunden werden, zum Beispiel so:
page.includeJSFooterlibs {
jQuery = https://code.jquery.com/jquery-latest.js
jQuery.external = 1
}
Danach muss entweder direkt oder über eine weitere Datei folgendes Skript eingebunden werden:
<script type="text/javascript">
var randomCE = Math.floor(Math.random() * $('.randomContent').length);
$('.randomContent').hide().eq(randomCE).show();
</script>
Getestet mit TYPO3 8.7.1
Weitere Beiträge
TYPO3 8.7 - Kein Feld für Alt-Tag und Link bei File Abstraction Layer (FAL)
Programmieren für die Blockchain: Smart Contracts und dezentrale Anwendungen entwickeln
OXID 6 | HTML5 Video in Produktdetails anzeigen
Google Analytics | Event Tracking einrichten