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

* Werbung/Affiliate Link
Shopify Werbung

Schreibe einen Kommentar

Erforderliche Felder sind entsprechend markiert.

Wird nicht veröffentlicht.

Datenschutz
Programmier-Tipps - Programmieren lernen ist nicht schwer!

Wir verwenden Cookies, um unsere Webseite für Dich optimal zu gestalten, fortlaufend zu verbessern und die Zugriffe auf unsere Webseite zu analysieren. Cookie-Informationen werden in deinem Browser gespeichert und helfen uns zu verstehen, welche Abschnitte der Website für dich am interessantesten und nützlichsten sind. Genauere Informationen findest du in unserer Datenschutzerklärung.

Notwendige Cookies

Notwendige Cookies sollten jederzeit aktiviert sein, damit wir deine Einstellungen für die Cookie-Einstellungen speichern können. Details findest du in unserer Datenschutzerklärung.

Google AdSense

Diese Website benutzt Google AdSense, einen Dienst zum Einbinden von Werbeanzeigen der Google Inc. ("Google"). Google AdSense verwendet sogenannte „Cookies“, Textdateien, die auf Ihrem Computer gespeichert werden und die eine Analyse der Benutzung der Website ermöglichen. Genauere Informationen findest du in unserer Datenschutzerklärung.

Diesen Cookie aktiviert zu lassen, unterstützt uns ohne dass du Geld ausgeben musst.

Google Analytics

Diese Website nutzt den Webanalysedienst Google Analytics, der sogenannte Cookies einsetzt. Dies sind kleine Textdateien, die auf Ihrem Device gespeichert werden und eine Analyse der Website-Nutzung ermöglichen. Die erzeugten Informationen werden in der Regel an einen Server von Google in den USA übertragen und dort gespeichert. Weitere Informationen findest du in unserer Datenschutzerklärung.

Das aktivieren ermöglicht es uns unsere Webseite für dich noch attraktiver zu machen.