Guten Abend,
ich sitze jetzt schon ein ganzes Stück an einem Problem, wo ich alleine nicht mehr weiter komme.
Was will ich machen? Auf der Seite habe ich einen Ordner angelegt wo Banner abgelegt werden, diese können Bilder oder auch SWF-Dateien sein. Mit den Inhaltstypen "Bild & Video" für die Bilder bzw. "Medien" für die SWF-Dateien funktioniert das auch gut. Jeder Banner bekommt weiterhin über das Link-Feld der Überschrift ein Ziel.
Die Aufgabe ist jetzt, zufällig einen Banner zu wählen und diesen auszugeben. Dabei wird über den Banner ein unsichtbares DIV gelegt, welches eine Weiterleitung auf die zum Banner hinterlegte URL erlaubt.
Folgenden TypoScript Code verwende ich dafür:
# Zufälligen Datensatz für rechten Banner laden temp.rightContent { table = tt_content select { # ID des Ordners mit Bannern pidInList = 112 languageField = sys_language_uid # Maximale Anzahl der ausgelesenen Contentelemente max = 1 orderBy = rand() } } # Link aus Datensatz speichern temp.rightLink < temp.rightContent # ID des ersten Banners speichern temp.rightID < temp.rightContent # Rechten Banner zusammenbauen lib.field_banner_right { 10 < temp.rightLink 20 < temp.rightContent }
Das Problem an der Sache ist, dass Banner und Link nicht zusammenpassen. D.h. wenn Banner A angezeigt wird, wird nicht zwangsläufig auch URL A verwendet. Weshalb werden beide Elemente bunt gemischt und wie kann man es verhindern?
Und weil es noch nicht genug war, noch eine zweite Frage. Es gibt zwei Banner auf der Seite, welche unterschiedlich sein sollen. Der zweite wird auf die gleiche Art und Weise geladen, allerdings mit angepasstem SELECT, damit UUID des ersten nicht benutzt wird. Dies funktioniert allerdings ebenfalls nicht so wie gewollt.
# Zufälligen Datensatz für linken Banner laden temp.leftContent { table = tt_content select { # ID des Ordners mit Bannern pidInList = 112 languageField = sys_language_uid # Maximale Anzahl der ausgelesenen Contentelemente max = 1 orderBy = rand() where = 1=1 andWhere = uid != } }
Was muss hier an der Abfrage angepasst werden, damit der andWhere Teil stimmt?
Vielen Dank für Hilfe und Antworten!