Archiv für den 02. April 2009

Typo3: Zufälligen Inhalt anzeigen

Das schöne an meinem Handwerk ist: man lernt nie aus.

Die Zeit, die Zeit, sie saust im Sauseschritt und bringt Veränderung mit – und bei diesem ganzen Computerzeugs und so umso mehr.

Gerade musste ich stutzen, als ich für ein wirklich und total mindblowing Projekt im Enterprise CMS Typo3 zufälligen Inhalt anzeigen wollte. Macht man ja auch nicht jeden Tag. Die Lösung ist bestechend simpel und hat man als Datenbank-Entwickler schon häufiger verwendet: Eine Kombination aus LIMIT und ORDER. Yeah!

Und weil der Satz “Sharing is caring” gilt, hier mal ein Schnipsel TypoScript:

RANDOMCNT = COA
RANDOMCNT{
	10 = CONTENT
	10 {
		table = tt_content
		select {
			pidInList = {$randomholder}
			max = 1
			orderBy = rand()
			languageField = sys_language_uid
		}
	}
}

Der SysFolder (oder sogar eine reguläre Seite) “pidInList” / “{$randomholder}” enthält die Records. Per Constant macht es einem das Leben leichter. Die Select-Property “max” gibt an, wie viele Records ausgewählt werden sollten. Wichtig: Elemente vom Typ COA aktivieren Caching – wer keine Hightraffic Websites betreibt sollte COA_INT verwenden. w00t

Update: Da es in der Welt der RDBMS mehr als nur MySQL gibt, hier die Postgres Notation SELECT * FROM table OFFSET RANDOM() LIMIT 1;