Zum Inhalt springen

Grid elements 2 maxW definieren

Erstellt am 14. Dezember 2013 · 3 Antworten · letzte Antwort am 17. Januar 2014

Tags: TYPO3 6.x, Frage

SimonEritsch ·

Hallo,

ich hab mir die Extension Gridelements (V.2) installiert und soweit konfiguriert, dass die Ansichten in Spalten dargestellt wird.
Da ich verschiedene Spaltenanzahlen hab, müssen die Bilder natürlich auch verschieden breit sein, weshalb ich gerne für die verschiedenen Elemente die Bilderbreite definieren würde.
Dazu hab ich mich an dieses Script (klicken) gehalten und einfach die Grid ID und Spalten ID angepasst. (also 1 = das Gridelement mit dem ich arbeiten will - 11/12 sind die Spalten IDs, welche ich zugewiesen hab)

So sieht nun mein Typoscript für die Gridelements aus:

tt_content.gridelements_pi1.20.10.setup {
  # ID des Gridelement
  1 < lib.gridelements.defaultGridSetup
  1 {
    columns {
 
      # Spalte mit der ID 1
      11 < .default
      11.renderObj.20.image.20.default.maxW = 327
      11.renderObj.20.image.20.default.maxWInText = 327
      11.renderObj.20.textpic.20.default.maxW = 327
      11.renderObj.20.textpic.20.default.maxWInText = 327
      11.renderObj.20.image.20.default.maxW = 327
      11.wrap = <div class="zwei_spalten_std_links">|</div>
 
      # Spalte mit der ID 2
      12 < .default
      12.renderObj.20.image.20.default.maxW = 604
      12.wrap = <div class="zwei_spalten_std_content">|</div>
 
    }
    wrap = <div class="zwei_spalten_std">|</div>
  }
}

Ich weiß, dass der "wrap" Teil des Typoscripts angenommen wird, da sowohl der Wrap um alles, sowie der Wrap um die einzelnen Spalten im Quellcode passiert.
Nur die Bildbreite Einstellungen werden nicht übernommen.

Probiere jetzt schon seit ca. 5 Stunden herum und hab auch bereits einige andere Ansätze versucht bzw. kombiniert, aber bis jetzt hatte ich noch kein Glück.
Die Grid Elements 2 Dokumentation ist ja leider auch nicht wirklich hilfreich.

Hat jemand eine Idee woran es liegen könnte oder weitere Lösungsvorschläge?

vielen Dank
lg Simon

Schweriner ·

Hi und es freut mich, dass Du den Blog meiner Firma vertraust was Dein Snippet angeht :-) Also bei uns funktioniert es so sehr gut. Wenn die wraps um die einzelnen Spalten nicht funktionieren würden, dann würde ich sagen, überprüf mal die IDs deiner Spalten, aber daran scheint es ja nicht zu liegen (guck trotzdem nochmal nach 😛).

Ansonsten könnte es vielleicht daran liegen, dass hier ja stets auf DEFAULT von den Bildobjekten zugegriffen wird... gibt es möglicherweise Typoscripts bei Dir, die dafür Sorgen, dass diese Felder nicht benutzt werden und deiner Bilder nicht mit dem DEFAULT rerendert werden?

karlchen ·

Hi,

Bin auch gerade zufällig über dieses Problem gestolpert und bei der Suche hier und auch auf der verlinkten Seite gelandet.

Habe mir das auch noch mal angesehen und es scheint sich in deinem/eurem Skript ein Fehler eingeschlichen zu haben, bzw. dieser Punkt hat sich in einem Versionsupdate geändert.

In das "renderObj" kopiert GridElements einmal die tt_content configuration

lib.gridelements.defaultGridSetup.columns.default.renderObj.20 =< tt_content

somit lässt sich dann auf alle TYPO3 Standard Renderings zugreifen.

Bei dem Beispiel von oben können wir also an der Stelle alle Anpassungen machen die wir in TYPO3 finden.

...
# Spalte mit der ID 1
      11 < .default
      11.renderObj.20 # < -- Ab diesem Punkt gelten alle Eisntellungen von dem TypoSript tt_content.
..

Wenn wir nun in den "Tempalte Analyser" und dann auf "Vollständige TS-Auflistung anzeigen" gehen, können wir uns alle Einstellungen von "tt_content." ansehen und z.B. die Änderungen für die Bilder raussuchen.

Bei der Suchen nach"tt_content.image" finden wir auch die oben aufgezeigten Punkte:

... .image.20.default.maxW = 327

allerdings gibt es in der Konfiguration keine "default" was "tt_content.image.20.default" entsprechen würde. Wenn man hier nun den Punkt "default" entfernt, klappt es wieder.

So sollte es also wieder klappen 🙂

tt_content.gridelements_pi1.20.10.setup {
  # ID des Gridelement
  2 < lib.gridelements.defaultGridSetup
  2 {
    columns {
 
      # Spalte mit der ID 1
      1 < .default
      1.renderObj.20.image.20.maxW = 327
      #1.renderObj.20.image.20.maxWInText = 327
      #1.renderObj.20.textpic.20.maxW = 327
      #1.renderObj.20.textpic.20.maxWInText = 327
      #1.renderObj.20.image.20.maxW = 327
      1.wrap = <div class="zwei_spalten_std_links">|</div>
 
      # Spalte mit der ID 2
      2 < .default
      2.renderObj.20.image.20.maxW = 604
      2.wrap = <div class="zwei_spalten_std_content">|</div>
 
    }
    wrap = <div class="zwei_spalten_std">|</div>
  }
}

P.S.

Gerade noch gesehen, es gibt auch noch den folgenden Wert

tt_content.image.20.maxW.override.data = register:maxImageWidth

der kann das gesetzte maxW dann überschreiben, wo "register:maxImageWidth" allerdings gesetzt wird, weiß ich gerade auch nicht, vermute mal das es der Wert ist den man dann im ContentElement selber einträgt ...

Schweriner ·

Hey karlchen!
Vielen Dank für das Feedback! In unserem Snippet hat sich tatsächlich ein Fehler eingeschlichen und zwar haben wir das aus einem bestehenden TYPO3 Projekt kopiert, wo wir auch je Backend Layout Spalte unterschiedliche Bildgrößen verwenden und dadurch das komplette Image Objekt umgebaut haben. Deshalb steht im Snippet dieses "default", welches so nicht sein müsste.

Hab es auch gleich mal auf dem Blog aktualisiert. Merci 🙂