[Frage] Zufälliger Eintrag aus tt_content und Wert aus einem Feld davon auslesen TYPO3-Version: 4.7.4

  • Stroker Stroker
    Typ im Roten Hemd
    0 x
    2 Beiträge
    0 Hilfreiche Beiträge
    02. 06. 2015, 21:07

    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:

    1. # Zufälligen Datensatz für rechten Banner laden
    2. temp.rightContent = CONTENT
    3. temp.rightContent {
    4. table = tt_content
    5. # ID des Ordners mit Bannern
    6. pidInList = 112
    7. languageField = sys_language_uid
    8. # Maximale Anzahl der ausgelesenen Contentelemente
    9. max = 1
    10. orderBy = rand()
    11. }
    12. }
    13.  
    14. # Link aus Datensatz speichern
    15. temp.rightLink < temp.rightContent
    16. temp.rightLink.renderObj = TEXT
    17. temp.rightLink.renderObj.field = header_link
    18.  
    19. # ID des ersten Banners speichern
    20. temp.rightID < temp.rightContent
    21. temp.rightID.renderObj = TEXT
    22. temp.rightID.renderObj.field = uid
    23.  
    24. # Rechten Banner zusammenbauen
    25. lib.field_banner_right = COA_INT
    26. lib.field_banner_right {
    27. 10 < temp.rightLink
    28. 10.wrap = < a href="|" target="_blank" >
    29.  
    30. 20 < temp.rightContent
    31. 20.wrap = |<div class="banner-overlay"></div></a>
    32. }

    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.

    1. # Zufälligen Datensatz für linken Banner laden
    2. temp.leftContent = CONTENT
    3. temp.leftContent {
    4. table = tt_content
    5. # ID des Ordners mit Bannern
    6. pidInList = 112
    7. languageField = sys_language_uid
    8. # Maximale Anzahl der ausgelesenen Contentelemente
    9. max = 1
    10. orderBy = rand()
    11. where = 1=1
    12. andWhere = uid !=
    13. andWhere.postCObject < temp.rightID
    14. }
    15. }

    Was muss hier an der Abfrage angepasst werden, damit der andWhere Teil stimmt?

    Vielen Dank für Hilfe und Antworten!


  • 1
  • Chrissli Chrissli
    Jedi-General
    0 x
    1015 Beiträge
    28 Hilfreiche Beiträge
    03. 06. 2015, 09:08

    Vielleicht solltest du mal etwas Grundlagenforschung betreiben :D

    temp.rightID und temp.rightLink bekommen zwar die Konfiguration deines CONTENT-Elements, allerdings machen sie jedes für sich selbst die Abfrage, d.h. rand() gibt für jedesmal eine andere ID aus.
    Du musst in deinem ersten CONTENT-Element das renderObj definieren, als COA, mit den entsprechenden Inhalten von temp.rightID bzw. temp.rightLink, damit Typo3 den Bezug zum jeweiligen Datensatz behält.

    Bei deinem 2. Problem kann ich dir leider nicht helfen, evtl. über LOAD_REGISTER o.ä.

    God's in his heaven, all's right with the world

  • 1