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.

* Werbung/Affiliate Link

Kommentare

  • Stephan
    30.03.2017 - 15:17 Uhr

    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ß

    Antworten
    • Markus
      30.03.2017 - 15:34 Uhr

      Hallo Stephan, freut mich wenn ich dir weiterhelfen konnte.

      Antworten
  • thowe
    05.05.2017 - 18:44 Uhr

    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….?

    Antworten
    • Markus
      10.05.2017 - 21:18 Uhr

      Hallo thowe,

      tatsächlich funktioniert der Snippet nicht mehr mit fluid_styled_content. Sobald ich eine Lösung gefunden habe, aktualisiere ich den Artikel.

      Antworten
  • Martin
    30.05.2017 - 12:26 Uhr

    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

    Antworten
    • Markus
      30.05.2017 - 13:54 Uhr

      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

      Antworten

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.