[Frage] if-Abfrage wird ignoriert TYPO3-Version: -

  • OnkelEdi OnkelEdi
    Jedi-Ritter
    0 x
    129 Beiträge
    2 Hilfreiche Beiträge
    30. 11. 2015, 10:57

    Hallo miteinander,

    Ich versuche ein Contentelement bzw. die Bilder davon in Abhängigkeit von section_frame und imagecols
    anders darzustellen. Ich hab einiges ausprobiert komme aber leider nicht weiter. Vielleicht ist mein Ansatz auch falsch. Wäre für Hinweise sehr dankbar.

    Ich will folgendes umsetzen:
    Bei gewähltem Content-Element-Typ „images“ (nur Bilder) sollen alle Bilder auf eine bestimmte Größe (hier 190px x 190px) gecropt werden. Jedes Bild soll einen Wrap mit der Klasse "cropgal_pic" erhalten und die ganze „Galerie“ soll auch noch mal in einen Wrap mit der Klasse "galerie-img-wrapper".
    Bedingung dafür soll sein:
    Als section_frame muss „galerie“ (hier id 203) ausgewählt sein
    Zusätzlich muss bei der Spaltenanzahl der Bilder (imagecols) mehr als 1 ausgewählt sein.

    Das aktuelle Typoscript sieht folgendermaßen aus:

    1. lib.tt_content.image < tt_content.image
    2. tt_content.image = CASE
    3. tt_content.image {
    4. key.field = section_frame
    5. # id des frames = 203
    6. 203 = COA
    7. 203 {
    8. 10 >
    9. 10 < lib.tt_content.image.10
    10. 20 >
    11. 20 < lib.tt_content.image.20
    12. 20{
    13. # cropping f. Galerie
    14. 1.file.width.field >
    15. 1.file.height.field >
    16. 1.file.width >
    17. 1.file.width = 190c
    18. 1.file.height >
    19. 1.file.height = 190c
    20. 1.file.maxW >
    21. 1.file.maxW = 190c
    22. 1.file.maxH >
    23. 1.file.maxH = 190c
    24. 1.file.width.override.field = imagewidth
    25. 1.file.height.override.field = imageheight
    26. 1.stdWrap.wrap = <div class="cropgal_pic">|</div>
    27. }
    28. 20.stdWrap.wrap = <div class="galerie-img-wrapper">|</div>
    29. 20.if{
    30. value = 1
    31. #1 kleiner als imagecols
    32. isGreaterThan = imagecols
    33. }
    34. }
    35. # rendering für alle anderen frames
    36. default = COA
    37. default {
    38. 10 >
    39. 10 < tt_content.image.10
    40. 20 >
    41. 20 < tt_content.image.20
    42. }
    43. }

    pageTSConfig:

    1. TCEFORM.tt_content.section_frame {
    2. addItems {
    3. 203 = galerie
    4. }
    5. }

    Problem:
    Mit der CASE-Abfrage für das feld „section_frame“ funktioniert alles wie beabsichtigt.
    Die zusätzliche Abfrage für das Feld „imagecols“ macht aber keinen Unterschied, egal was ausgewählt wird.

    Ich denke das liegt dann irgendwo an der If-Abfrage. Hab ich da was offensichtliches übersehen oder falsch gemacht?

    Gruß
    Eduard


  • 1
  • toifel toifel
    Jedi-Ratsmitglied
    0 x
    831 Beiträge
    96 Hilfreiche Beiträge
    01. 12. 2015, 09:28

    isGreaterThan[b].field[/b] = imagecols

    sollte funktionieren.

  • OnkelEdi OnkelEdi
    Jedi-Ritter
    0 x
    129 Beiträge
    2 Hilfreiche Beiträge
    01. 12. 2015, 14:50

    Hallo toifel,

    Danke für die schnelle Antwort.
    Hab noch mal nachgesehen. Das "field" ist schon drin. Ist mir hier bei der Eingabe wohl verloren gegangen. Also daran liegt es scheinbar nicht.

    Gruß
    Eduard

  • 0 x
    3155 Beiträge
    140 Hilfreiche Beiträge
    02. 12. 2015, 08:41

    Hallo Eduard.

    Problem scheint recht trivial zu sein:
    Du kopierst (über Zwischenschritt) tt_content.image.20 auf tt_content.image.203.20.
    tt_content.image.20 ist ein cObject USER. USER hat aber keine if-Eigenschaft ( [url=https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/UserAndUserInt/Index.html]TSref: USER & USER_INT[/url] ) => Dein if wird ignoriert.

    Viele Grüße
    Julian

  • OnkelEdi OnkelEdi
    Jedi-Ritter
    0 x
    129 Beiträge
    2 Hilfreiche Beiträge
    02. 12. 2015, 15:17

    Hallo Julian,

    So erklärt scheint das ganz logisch :)
    Kenn mich da aber dann doch nicht so gut aus.
    Was wäre denn ein Ansatz um das Problem zu lösen? Kannst du mir da einen Tipp geben?

    Gruß
    Eduard

  • 0 x
    3155 Beiträge
    140 Hilfreiche Beiträge
    05. 12. 2015, 22:01

    Eine Möglichkeit wäre, eine Zwischenebene einzuschieben:

    1. tt_content.image.203.20 = COA
    2. tt_content.image.203.20 {
    3. if...
    4. 10 < lib.tt_content.image.20
    5. }

    COA hat nämlich im gegensatz zu USER die if-Eigenschaft ([url=https://docs.typo3.org/typo3cms/TyposcriptReference/ContentObjects/CoaAndCoaInt/Index.html]TSref COA[/url]).

  • OnkelEdi OnkelEdi
    Jedi-Ritter
    0 x
    129 Beiträge
    2 Hilfreiche Beiträge
    14. 12. 2015, 13:16

    Hallo Julian,

    Danke für die Antwort.
    Sowas ähnliches hab ich mir auch überlegt. Aber das ändert doch nichts oder?
    Denn abgefragt werden muss ja immer noch imagecols in lib.tt_content.image.20.
    Somit ändert sich ja nichts. Oder hab ich das falsch verstanden?

    Gruß
    Eduard

  • 1