gridelements mit flexform

  • MrFriendly MrFriendl...
    Padawan
    0 x
    47 Beiträge
    0 Hilfreiche Beiträge
    26. 07. 2012, 01:51

    Hi,

    über das das Feld "Flexform-Konfiguration" habe ich die Datenstruktur eines gridelements angegeben, bei Anlegen/Editieren des Contentelements bekomme auch die definierten Eingabefelder wie von Flexforms gewohnt angezeigt.

    Wie aber kommen die Eingaben ins Frontend? Der TS Teil im Manual, auf den verwiesen wird, ist leider leer.
    Es wird nur der übliche <div id="cxx" class="csc-default"> wrap des contentelements ausgegeben, ohne Inhalt.


  • 1
  • skydivematy skydivema...
    Jedi-Meister
    0 x
    276 Beiträge
    0 Hilfreiche Beiträge
    26. 07. 2012, 11:25

    Hallo,
    Als Beispiel ein FCE 3 Column.
    Das in den Setup Part.

    1. tt_content.gridelements_pi1.20.10.setup {
    2. # ID of gridelement
    3. 4 < temp.gridelements.defaultGridSetup
    4. 4 {
    5. columns {
    6. # colPos 0
    7. 1 < .default
    8. 1.wrap = <article class="g33l">|</article >
    9.  
    10. # colPos 1
    11. 2 < .default
    12. 2.wrap = <article class="g33l">|</article >
    13.  
    14. # colPos 2
    15. 3 < .default
    16. 3.wrap = <article class="g33r">|</article >
    17.  
    18. }
    19. }
    20. }

    Die "4" ist die ID des CE Be Layouts...

    Ich Denke das Du das meintest Oder?

    gruss
    maty

  • MrFriendly MrFriendl...
    Padawan
    0 x
    47 Beiträge
    0 Hilfreiche Beiträge
    01. 08. 2012, 10:46

    Hallo und Danke für die Antwort,

    aber nein, das ist nicht was ich meine. Das ist ja die Methode wie man gridelements, die mittels Raster-Konfiguration definiert sind, einbindet.
    Mich interessiert aber die Einbindung von gridelements, für die eine Flexform-Konfiguration angegeben ist.

    Beispiel:

    1. <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
    2. <T3DataStructure>
    3. <ROOT type="array">
    4. <type>array</type>
    5. <el type="array">
    6. <headline type="array">
    7. <TCEforms type="array">
    8. <config type="array">
    9. <type>input</type>
    10. <size>40</size>
    11. <eval>trim</eval>
    12. </config>
    13. <label>Headline</label>
    14. </TCEforms>
    15. </headline>
    16.  
    17. <text type="array">
    18. <TCEforms type="array">
    19. <config type="array">
    20. <type>text</type>
    21. <cols>40</cols>
    22. <rows>5</rows>
    23. <eval>trim</eval>
    24. </config>
    25. <label>Text</label>
    26. </TCEforms>
    27. </text>
    28.  
    29. <link type="array">
    30. <TCEforms type="array">
    31. <config type="array">
    32. <type>input</type>
    33. <size>40</size>
    34. <max>256</max>
    35. <checkbox></checkbox>
    36. <eval>trim</eval>
    37. <wizards type="array">
    38. <_PADDING type="integer">2</_PADDING>
    39. <link type="array">
    40. <type>popup</type>
    41. <title>Link</title>
    42. <icon>link_popup.gif</icon>
    43. <script>browse_links.php?mode=wizard</script>
    44. <JSopenParams>height=300,width=500,status=0,menubar=0,scrollbars=1</JSopenParams>
    45. </link>
    46. </wizards>
    47. </config>
    48. <label>Link</label>
    49. </TCEforms>
    50. </link>
    51. </el>
    52. </ROOT>
    53. </T3DataStructure>

    Dies definiert ein gridelement wie man es von TemplaVoila kennt, drei Eingabefelder für Headline, Text und Link. Bei Anlegen/Editieren des Contentelements werden die Felder auch entsprechend angezeigt und können befüllt werden.
    Aber wie werden die Eingaben nun auf der Website ausgegeben?

  • jochla jochla
    R2-D2
    0 x
    116 Beiträge
    0 Hilfreiche Beiträge
    23. 08. 2012, 20:25

    Du kannst die Flexform Felder aus der Konfiguration ganz einfach ansprechen: flexform_feldname, also in deinem Fall z.B. flexform_headline. So hab' ich es kürzlich in einem noch laufenden Projekt gemacht.

    Die Flexform Datenstruktur ist in tt_content im Feld "Erweiterungsoptionen" (pi_flexform) gespeichert. So sieht der Inhalt aus:

    1. <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
    2. <T3FlexForms>
    3. <data>
    4. <sheet index="sDEF">
    5. <language index="lDEF">
    6. <field index="button_text">
    7. <value index="vDEF">weiterlesen...</value>
    8. </field>
    9. <field index="button_link">
    10. <value index="vDEF">http://domain.com</value>
    11. </field>
    12. </language>
    13. </sheet>
    14. </data>
    15. </T3FlexForms>

    Derselbe Code funktioniert aber gerade in einem anderen Projekt nicht. Da bin ich noch bei der Ursachenforschung. Der Grund könnte sein, dass in diesen Projekt alternative Websitesprachen definiert sind.

    Ich hoffe das bringt dich weiter!

    Johannes.

  • mischa mischa
    Jedi-Meister
    0 x
    405 Beiträge
    4 Hilfreiche Beiträge
    21. 11. 2012, 08:57

    Hallo,

    ich hatte das selbe Problem: wie kann ich sowas wie ein FCE für TemplaVoila mit Gridelements herstellen und nur auf die Flexforms zugreifen?

    Hier meine Lösung, die super funktioniert mit Beispiel für Bild und Text. Links und alles andere sind auch möglich.

    1. Gridelement erstellen.
    a) Raster-Konfiguration:
    Damit verhindere ich, dass normale CE in das Grid eingepflegt werden können. Es wird somit als eigenes CE behandelt.

    1. backend_layout {
    2. colCount = 0
    3. rowCount = 0
    4. }

    b) Flexform-Konfiguration:
    Ein ganz normales Flexform.

    1. <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
    2. <T3DataStructure>
    3. <ROOT type="array">
    4. <type>array</type>
    5. <el type="array">
    6. <image>
    7. <TCEforms>
    8. <label>Bild</label>
    9. <config>
    10. <type>input</type>
    11. <eval>trim</eval>
    12. <default></default>
    13. <wizards type="array">
    14. <_PADDING>2</_PADDING>
    15. <link type="array">
    16. <type>popup</type>
    17. <title>Bild</title>
    18. <icon>link_popup.gif</icon>
    19. <script>browse_links.php?mode=wizard&amp;act=file</script>
    20. <params type="array">
    21. <blindLinkOptions>page,url,mail,spec</blindLinkOptions>
    22. <allowedExtensions>jpg,png,gif,jpeg</allowedExtensions>
    23. </params>
    24. <JSopenParams>height=300,width=500,status=0,menubar=0,scrollbars=1</JSopenParams>
    25. </link>
    26. </wizards>
    27. </config>
    28. </TCEforms>
    29. </image>
    30. <text type="array">
    31. <TCEforms type="array">
    32. <config type="array">
    33. <type>text</type>
    34. <cols>40</cols>
    35. <rows>5</rows>
    36. <eval>trim</eval>
    37. </config>
    38. <label>Text</label>
    39. </TCEforms>
    40. </text>
    41. </el>
    42. </ROOT>
    43. </T3DataStructure>

    2. TypoScript
    Auf "columns" wird vollständig verzichtet. Wir haben ja keinen Inhalt auszugeben. Dafür erstellen wir über stdWrap ein neues cObject, das dann direkt auf die flexform-Felder zugreift.

    1. tt_content.gridelements_pi1.20.10.setup {
    2. # ID of gridelement // eLearning 2 Spalter
    3. 8 < temp.gridelements.defaultGridSetup
    4. 8 {
    5. 10 = TEXT
    6. 10 {
    7. data = field:flexform_text
    8. wrap = <div class="citeContent"><p>|</p></div>
    9. }
    10. 20 = IMAGE
    11. 20 {
    12. file {
    13. import.data = field:flexform_image
    14. width = 265
    15. }
    16. }
    17. }
    18. wrap = <div class="citeWrapper clearfix">|</div>
    19. }
    20. }

    LG,

    Mischa.
    ----
    für die Richtigkeit des von mir geposteten Codes übernehme ich keine Haftung.
    Die Geschichte zeigt uns: Copy&Paste ohne nochmal drüber zu schauen führt zum eigenen Sturz auf die Nase.

  • zappzarapp zappzarap...
    Jedi-Meister
    0 x
    314 Beiträge
    0 Hilfreiche Beiträge
    04. 06. 2013, 11:46

    Hallo,

    ist zwar schon etwas älter aber ich habe zwei Fragen dazu:

    1) Ist es möglich in dem stdWrap.cObject auch auf auf zB das header field des tt_content zuzugreifen? Ich habe es mit

    1. 20 = TEXT
    2. 20.field = header

    probiert - aber das hat nicht funktioniert.

    2) Gibt es eine Möglichkeit die Inhalte aus dem Flexform im Seitenmodul in der Übersicht sichtbar zu machen? (so wie bei Text/Text mit Bild Elementen die Inhalte zu sehen sind)

    lg Matthias

  • 1