[Frage] Individuelles Menü mit Werten aus pages.tx_fed_page_flexform [Gelöst] TYPO3-Version: 6.1.7

  • madthosh madthosh
    T3PO
    0 x
    11 Beiträge
    0 Hilfreiche Beiträge
    18. 02. 2014, 12:03

    Hallo Forum,

    ich verzweifle am Erstellen eines individuellen Menüs.

    Über flux.flexform habe ich ein BE-Auswahlfeld zur Angabe von Kategorien einer Seite hinzugefügt

    1. <flux:flexform.field.select name="settings.categories" size="4" minItems="1" maxItems="4" items="Pizza,Pasta"/>

    Die beim Anlegen einer Seite gewählten Werte sollen im HTML-Markup als css-Klasse ausgegeben werden, damit ich sie mit JS selektieren und filtern kann.

    Mit folgendem TS baue ich mein Menü:

    1. ...
    2. 2 < menu
    3. 2 {
    4. wrap = <ul>|</ul>
    5.  
    6. special = directory
    7. special.value.field = pages
    8.  
    9. 1 = TMENU
    10. 1 {
    11. wrap >
    12.  
    13. NO {
    14. #### Hier sollen die im Feld pages.tx_fed_page_flexform hinterlegten Werte als css-Klasse eingefügt werden
    15. #### <li class="pizza">Napoli</li>
    16. #### <li class="pasta">Carbonara</li>
    17. #### <li class="pizza pasta">Frutti di mare</li>
    18. wrapItemAndSub = <li>|</li>
    19.  
    20.  
    21. stdWrap.prepend.value = Hier wird das in den Seiteneinstellungen angegebene Bild ausgegeben
    22.  
    23. stdWrap.wrap = <h3>|</h3>
    24.  
    25. data = field : subtitle
    26. wrap = <p>|</p>
    27. }
    28. }
    29. }
    30. }

    Meine Frage ist, [u]wie bekomme ich die Klassen in die Listen?[/u]

    Nach intensivem googeln habe ich das Gefühl, alle Lösungen in der Art werden auf PHP-/Extension-Ebene umgesetzt und nicht auf TS-Ebene.

    Abgesehen davon, daß mir noch nicht klar ist, wie die Klassen in die Listen kommen, habe ich trotz verschiedenster Ansätze bisher noch nicht einmal irgendwelche Werte (auch nicht als XML) des Feldes "tx_fed_page_flexform" in der Tabelle "pages" im Frontend ausgeben lassen können.

    Da ich nicht so der TS-Crack bin freue ich mich auch über jeden Stups in die richtige Richtung ;)

  • madthosh madthosh
    T3PO
    0 x
    11 Beiträge
    0 Hilfreiche Beiträge
    27. 02. 2014, 12:46 - Lösung

    Endlich geschafft!

    Da es keine Reaktion oder Hilfe gab, frage ich mich, ob es außer mir überhaupt jemand gibt, der ähnliche Anforderungen hat.

    Wenn doch, hier ist meine Lösung:

    1. 20 = HMENU
    2. 20 {
    3.  
    4. wrap =<div>|</div>
    5.  
    6. special = directory
    7. special.value.field = pages
    8.  
    9. 1 = TMENU
    10. 1 {
    11. wrap >
    12.  
    13. NO = 1
    14. NO {
    15. wrap = <figure><div>|</figure>
    16. 10 = IMAGE
    17. 10.file {
    18. import = uploads/media/
    19. import.field = media
    20. treatIdAsReference = 1
    21. import.listNum = 0
    22. }
    23. 10.altText = {field:title} {field:subtitle}
    24. 10.altText.insertData = 1
    25.  
    26. 20 = TEXT
    27. 20.value = <img src="/fileadmin/public/images/reference-more.png" alt="{field:title} {field:subtitle}" class="hover"></div>
    28. 20.insertData = 1
    29.  
    30. 30 = COA
    31. 30 {
    32.  
    33. wrap = <figcaption>|</figcaption>
    34.  
    35. 20 = TEXT
    36. 20.field = title
    37.  
    38. 30 = TEXT
    39. 30.field = subtitle
    40. 30.wrap = <small>|</small>
    41.  
    42. }
    43. }
    44.  
    45. ATagParams {
    46. 10 = TEXT
    47. 10.value = class ="col-xs-4 col-sm-4 col-md-3"
    48.  
    49. 20 = TEXT
    50. 20.value = title="{field:title} {field:subtitle}"
    51.  
    52. 30 = XPATH
    53. 30 {
    54. source.data.cObject = TEXT
    55. source.data.cObject {
    56. value = DB:pages:{field:uid}:tx_fed_page_flexform
    57. }
    58.  
    59. return = string
    60.  
    61. expression = //field[@index='settings.categories']/value
    62.  
    63. resultObj {
    64. cObjNum = 1
    65. 1.current = 1
    66. 1.case = lower
    67. 10 {
    68. search = ,
    69. replace.char = 32
    70. }
    71. }
    72. wrap = data-categories="|"
    73. }
    74. }
    75. }
    76. }
    77. }
    78. }
    79. }


  • 1
  • madthosh madthosh
    T3PO
    0 x
    11 Beiträge
    0 Hilfreiche Beiträge
    21. 02. 2014, 14:13

    hat keiner eine Idee, wie ich das gelöst kriege?

  • madthosh madthosh
    T3PO
    0 x
    11 Beiträge
    0 Hilfreiche Beiträge
    24. 02. 2014, 16:30

    ich bin nun etwas weiter gekommen. Nach dem installieren der Extension [url=http://typo3.org/extensions/repository/view/cobj_xpath]XPATH Content Object[/url] komme ich mit diesem TS an die Daten und kann sie in der gewünschten Form (lowercase, leerzeichengetrennt) zumindest in einem Wrap ausgeben:

    1. 20 < menu
    2. 20 {
    3.  
    4. wrap = <ul>|</ul>
    5.  
    6. special = directory
    7. special.value.field = pages
    8.  
    9. 1 = TMENU
    10. 1 {
    11. wrap >
    12.  
    13. NO {
    14.  
    15. wrapItemAndSub = <li>|</li>
    16.  
    17. stdWrap.prepend = XPATH
    18.  
    19. source.data = DB: pages:185:tx_fed_page_flexform
    20.  
    21. return = string
    22.  
    23. expression = //field[@index='settings.categories']/value
    24.  
    25. resultObj {
    26. cObjNum = 1
    27. 1.current = 1
    28. 1.case = lower
    29. 10 {
    30. search = ,
    31. replace.char = 32
    32. }
    33. }
    34. wrap = <p>|</p>
    35. }
    36. }
    37. stdWrap.wrap = <h3>|</h3>
    38. }
    39. }
    40. }

    1. <a href="#">
    2. <p>pizza pasta</p>
    3. <h3>Titel</h3>
    4. </a>

    aber diesen String brauche ich als CSS-Klasse im umgebenden A-Tag:

    1. <a href="#" class="pizza pasta">
    2. <h3>Titel</h3>
    3. </a>

    Ich hatte gedacht, das würde gehen indem ich die Ausgaben nicht prepende sondern zwischenspeichere und dann mit ATagParams einbaue:

    1. temp = XPATH
    2. temp {
    3. ...
    4. ...
    5. #wrap = <p>|</p>
    6. }
    7. }
    8.  
    9.  
    10. ATagParams = class="{temp}"
    11. ATagParams.insertData = 1

    Leider kriege ich keine Ausgabe, was mache ich falsch?

    1. <a href="#" class>
    2. <h3>Titel</h3>
    3. </a>

  • madthosh madthosh
    T3PO
    0 x
    11 Beiträge
    0 Hilfreiche Beiträge
    27. 02. 2014, 12:46

    Endlich geschafft!

    Da es keine Reaktion oder Hilfe gab, frage ich mich, ob es außer mir überhaupt jemand gibt, der ähnliche Anforderungen hat.

    Wenn doch, hier ist meine Lösung:

    1. 20 = HMENU
    2. 20 {
    3.  
    4. wrap =<div>|</div>
    5.  
    6. special = directory
    7. special.value.field = pages
    8.  
    9. 1 = TMENU
    10. 1 {
    11. wrap >
    12.  
    13. NO = 1
    14. NO {
    15. wrap = <figure><div>|</figure>
    16. 10 = IMAGE
    17. 10.file {
    18. import = uploads/media/
    19. import.field = media
    20. treatIdAsReference = 1
    21. import.listNum = 0
    22. }
    23. 10.altText = {field:title} {field:subtitle}
    24. 10.altText.insertData = 1
    25.  
    26. 20 = TEXT
    27. 20.value = <img src="/fileadmin/public/images/reference-more.png" alt="{field:title} {field:subtitle}" class="hover"></div>
    28. 20.insertData = 1
    29.  
    30. 30 = COA
    31. 30 {
    32.  
    33. wrap = <figcaption>|</figcaption>
    34.  
    35. 20 = TEXT
    36. 20.field = title
    37.  
    38. 30 = TEXT
    39. 30.field = subtitle
    40. 30.wrap = <small>|</small>
    41.  
    42. }
    43. }
    44.  
    45. ATagParams {
    46. 10 = TEXT
    47. 10.value = class ="col-xs-4 col-sm-4 col-md-3"
    48.  
    49. 20 = TEXT
    50. 20.value = title="{field:title} {field:subtitle}"
    51.  
    52. 30 = XPATH
    53. 30 {
    54. source.data.cObject = TEXT
    55. source.data.cObject {
    56. value = DB:pages:{field:uid}:tx_fed_page_flexform
    57. }
    58.  
    59. return = string
    60.  
    61. expression = //field[@index='settings.categories']/value
    62.  
    63. resultObj {
    64. cObjNum = 1
    65. 1.current = 1
    66. 1.case = lower
    67. 10 {
    68. search = ,
    69. replace.char = 32
    70. }
    71. }
    72. wrap = data-categories="|"
    73. }
    74. }
    75. }
    76. }
    77. }
    78. }
    79. }

  • 1