Programmieren lernen | Codebeispiele | Jobbörse | Webentwicklung

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

Noch keine Kommentare vorhanden. Sei DU der erste!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.