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 tx_news Extension Related News in Detailansicht mit Image anzeigen
TYPO3 - Eine News mit Kategorien über Powermail-Formular erstellen
Speichern und abholen von Dateien mit Amazon S3 und PHP
jQuery | DIV Container beim scrollen oben "andocken".