[Frage] Gridelements 2: tt_content divs/wrap beim Content-Element Image bei bestimmter Content Spalte entfernen TYPO3-Version: 6.1.7

  • danton danton
    Jedi-Meister
    0 x
    298 Beiträge
    4 Hilfreiche Beiträge
    18. 02. 2014, 17:09

    Hi

    Wie bekomme ich es hin das man beim Content Element Image in einer bestimmten Content Spalte von gridelements die ganzen tt_content wraps entfernen kann?

    Ich habe im BE ein gridelement angelegt das die colpos 10 nutzt.
    Dort hab ich eingestellt das man nur Image CE´s einfügen kann.
    Diese möchte ich für einen Flexslider verwenden.
    Daher will ich alle wraps wie z.b. <div class="csc-default" id="c202"> und <div class="csc-textpic csc-textpic-center csc-textpic-above"> entfernen.
    Allerdings nicht global sondern nur für diese eine Spalte.

    Folgendermaßen sieht ja das "normale" TS aus.

    1. tt_content.gridelements_pi1.20.10.setup {
    2. 1 < lib.gridelements.defaultGridSetup
    3. 1 {
    4. wrap = <div>|</div>
    5. columns {
    6. 10 < .default
    7. 10.wrap = <div>|</div>
    8. }
    9. }
    10. }

    Im Handbuch wird folgendes beschrieben.
    [url]http://docs.typo3.org/typo3cms/extensions/gridelements/1.4.1/#id8[/url]

    1. lib.gridelements.defaultGridSetup { // stdWrap functions being applied to each element
    2. columns {
    3. default {
    4. renderObj = COA
    5. renderObj {
    6. # You can use registers to i.e. provide different image settings for each column
    7. # 10 = LOAD_REGISTER
    8. 20 =< tt_content
    9. # And you can reset the register later on
    10. # 30 = RESTORE_REGISTER
    11. }
    12. }
    13. }
    14. # if you want to provide your own templating, just insert a cObject here
    15. # this will prevent the collected content from being rendered directly
    16. # i.e. cObject = TEMPLATE or cObject = FLUIDTEMPLATE will be available from the core
    17. # the content will be available via fieldnames like
    18. # tx_gridelements_view_columns (an array containing each column)
    19. # or tx_gridelements_view_children (an array containing each child)
    20. # tx_gridelements_view_column_123 (123 is the number of the column)
    21. # or tx_gridelements_view_child_123 (123 is the UID of the child)
    22. }

    Wenn ich allerdings tx_gridelements_view_column_10 nutzt ist wieder der ganze tt_content wrap Mist drin.

    Ich benutzt gridelements 2.0.2.

    Vielen Dank im voraus
    Gruß Niels

    "Das Universum ist vollkommen. Es kann nicht verbessert werden. Wer es verändern will, verdirbt es. Wer es besitzen will, verliert es." - Laozi


  • 1
  • TheFreeman TheFreema...
    Jedi-Meister
    0 x
    504 Beiträge
    0 Hilfreiche Beiträge
    15. 07. 2016, 22:40

    Das kenn ich. MIr geht es genau so wie dir.
    Auch mit neueren Versionen Typo3 7.6.9 und GridElements 8.0.0 keine Verbesserung.

    Habe genau das selbe Problem nur ein wenig anderen TS Ansatz:

    1. tt_content.gridelements_pi1.20.10.setup >
    2. tt_content.gridelements_pi1.20.10.setup {
    3.  
    4. # ALIAS of gridelement
    5. grid_2_spaltig < lib.gridelements.defaultGridSetup
    6. grid_2_spaltig {
    7. columns {
    8.  
    9. default.renderObj.20.tt_content.stdWrap.default.wrap = |
    10. default.renderObj.20.tt_content.stdWrap.default.default.wrap = |
    11.  
    12. # colPos ID
    13. 101 < .default
    14. 101.wrap = <div class="content-cell-single-first">|</div>
    15.  
    16. # colPos ID
    17. 102 < .default
    18. 102.wrap = <div class="content-cell-single-second">|</div>
    19.  
    20. }
    21.  
    22. wrap = <div class="content-row"><div class="content-color-cell"></div><div class="content-cell-double">|</div><div class="content-color-cell"></div></div>
    23. }
    24.  
    25. # ALIAS of gridelement
    26. grid_1_spaltig < lib.gridelements.defaultGridSetup
    27. grid_1_spaltig {
    28. columns {
    29.  
    30. default.renderObj.20.tt_content.stdWrap.outerWrap.cObject >
    31.  
    32. # colPos ID
    33. 201 < .default
    34. 201.wrap = |
    35.  
    36. }
    37.  
    38. wrap = <div class="content-row"><div class="content-color-cell"></div><div class="content-cell-single">|</div><div class="content-color-cell"></div></div>
    39. }
    40. }

    Und dann der Rest:

    1.  
    2. key.field = CType
    3.  
    4. default = CASE
    5. default.wrap = <div class="content-row"><div class="content-color-cell"></div><div class="content-cell-single">|</div><div class="content-color-cell"></div></div>
    6.  
    7. gridelements_pi1 = TEXT
    8. gridelements_pi1.value = |
    9. }

    Und trotzdem werden erst alle Inhaltselemente gewrapped und dann in die Gridelements geschoben und darum dann die Wraps der Gridelemente gepackt.

    Das macht doch keinen Sinn und ist irgendwie unlogisch.

    Ich wäre auch um einen hilfreichen Tip dankebar. :-)

  • TheFreeman TheFreema...
    Jedi-Meister
    0 x
    504 Beiträge
    0 Hilfreiche Beiträge
    15. 07. 2016, 23:08

    Hier hab ich meinen Lösungsansatz gefunden:
    http://www.typo3.net/forum/thematik/zeige/thema/118900/

    Das hier ist für mich meine Lösung:

    Wraps für meine Grid-Elemente definineren:

    1. tt_content.gridelements_pi1.20.10.setup >
    2. tt_content.gridelements_pi1.20.10.setup {
    3.  
    4. # ALIAS of gridelement
    5. grid_2_spaltig < lib.gridelements.defaultGridSetup
    6. grid_2_spaltig {
    7. columns {
    8.  
    9. default.renderObj.20.tt_content.stdWrap.default.wrap = |
    10. default.renderObj.20.tt_content.stdWrap.default.default.wrap = |
    11.  
    12. # colPos ID
    13. 101 < .default
    14. 101.wrap = <div class="content-cell-single-first">|</div>
    15.  
    16. # colPos ID
    17. 102 < .default
    18. 102.wrap = <div class="content-cell-single-second">|</div>
    19.  
    20. }
    21.  
    22. wrap = <div class="content-row"><div class="content-color-cell"></div><div class="content-cell-double">|</div><div class="content-color-cell"></div></div>
    23. }
    24.  
    25. # ALIAS of gridelement
    26. grid_1_spaltig < lib.gridelements.defaultGridSetup
    27. grid_1_spaltig {
    28. columns {
    29.  
    30. default.renderObj.20.tt_content.stdWrap.outerWrap.cObject >
    31.  
    32. # colPos ID
    33. 201 < .default
    34. 201.wrap = |
    35.  
    36. }
    37.  
    38. wrap = <div class="content-row"><div class="content-color-cell"></div><div class="content-cell-single">|</div><div class="content-color-cell"></div></div>
    39. }
    40. }

    Und dann die Wraps definieren für alle anderen:

    1. tt_content.stdWrap.outerWrap >
    2.  
    3. key.field = CType
    4.  
    5. # Wrap für alle anderen Objekte
    6. default.wrap.cObject = CASE
    7. default.wrap.cObject {
    8.  
    9. key.field = pid
    10.  
    11. # Wrap für alle anderen PIDs
    12. default = TEXT
    13. default.value = <div class="content-row"><div class="content-color-cell"></div><div class="content-cell-single">|</div><div class="content-color-cell"></div></div>
    14.  
    15. # Wrap für PID 9
    16. 9 = TEXT
    17. 9.value = |
    18.  
    19. # Wrap für PID 10
    20. 10 = TEXT
    21. 10.value = |
    22.  
    23. # Wrap für PID 11
    24. 11 = TEXT
    25. 11.value = |
    26. }
    27.  
    28. # Wrap für gridelements überschreiben
    29. gridelements_pi1 = TEXT
    30. gridelements_pi1.wrap = |
    31. }

  • TheFreeman TheFreema...
    Jedi-Meister
    0 x
    504 Beiträge
    0 Hilfreiche Beiträge
    18. 07. 2016, 19:15

    .... Leider hat das noch nicht ganz funktioniert, da tt_content ja in die Gridelements injiziert wird und damit der Standard-Wrap eines jeden CEs mit dem Gridelement nochmals gewrappt wird. Daher muss davor der Wrap vom CE wieder entfernt werden:

    1. lib.gridelements.defaultGridSetup >
    2. lib.gridelements.defaultGridSetup {
    3. columns {
    4. default {
    5. renderObj = COA
    6. renderObj {
    7. 20 < tt_content
    8. 20.wrap >
    9. 20.outerWrap >
    10. }
    11. }
    12. }
    13. }

    Danach kann man die Grid-ELemente mit einem Wrap versehen:

    1. tt_content.gridelements_pi1.20.10.setup >
    2. tt_content.gridelements_pi1.20.10.setup {
    3.  
    4. # ALIAS of gridelement
    5. grid_2_spaltig < lib.gridelements.defaultGridSetup
    6. grid_2_spaltig {
    7. columns {
    8.  
    9. # colPos ID
    10. 101 < .default
    11. 101.wrap = <div class="content-cell-single-first">|</div>
    12.  
    13. # colPos ID
    14. 102 < .default
    15. 102.wrap = <div class="content-cell-single-second">|</div>
    16.  
    17. }
    18.  
    19. wrap = <div class="content-row"><div class="content-color-cell"></div><div class="content-cell-double">|</div><div class="content-color-cell"></div></div>
    20. }
    21.  
    22. # ALIAS of gridelement
    23. grid_1_spaltig < lib.gridelements.defaultGridSetup
    24. grid_1_spaltig {
    25. columns {
    26.  
    27. # colPos ID
    28. 201 < .default
    29. 201.wrap = |
    30.  
    31. }
    32.  
    33. wrap = <div class="content-row"><div class="content-color-cell"></div><div class="content-cell-single">|</div><div class="content-color-cell"></div></div>
    34. }
    35. }
    36.  
    37. tt_content.gridelements_view >

    Trotzdem muss man aber eine Weiche bei den "Normalen" CEs machen, damit hier nicht wieder ein Wrap um einene Wrap passiert:

    1. tt_content.stdWrap.outerWrap >
    2.  
    3. key.field = CType
    4.  
    5. # Wrap für alle anderen Objekte
    6. default = CASE
    7. default {
    8.  
    9. key.field = pid
    10.  
    11. # Wrap für alle anderen PIDs
    12. default = TEXT
    13. default.value = <div class="content-row"><div class="content-color-cell"></div><div class="content-cell-single">|</div><div class="content-color-cell"></div></div>
    14.  
    15. # Wrap für PID 9
    16. 9 = TEXT
    17. 9.value = |
    18.  
    19. # Wrap für PID 10
    20. 10 = TEXT
    21. 10.value = |
    22.  
    23. # Wrap für PID 11
    24. 11 = TEXT
    25. 11.value = |
    26. }
    27.  
    28. # Wrap für gridelements überschreiben
    29. gridelements_pi1 = TEXT
    30. gridelements_pi1.value = |
    31.  
    32. # Wrap für gridelements überschreiben
    33. gridelements_view = TEXT
    34. gridelements_view.value = |
    35. }

    Und schon klappt alles! :-)

  • 1