[Frage] Parameter aus cObject an neues Fluid-Template als Variable übergeben TYPO3-Version: 10.4.9

  • Kesandal Kesandal
    T3PO
    0 x
    22 Beiträge
    0 Hilfreiche Beiträge
    10. 11. 2020, 12:06

    Hallo zusammen,

    ich habe in meinem Template ein cObject an welches ich den Parameter colorStyle übergebe:

    [code]<f:cObject typoscriptObjectPath="lib.testElement" data="{colPos: '0', colorStyle: 'blue'}" />[/code]

    lib.testElement verwendet ein FLUIDTEMPLATE an das ich colorStyle als Variable übergeben möchte.
    Leider klappt dies nicht und meine Variable bleibt leer. Die übergebenen Parameter schaue ich mir mit <f:debug>{_all}</f:debug> an.

    Mein lib.test sieht wie folgt aus:

    [code]lib.testElement < lib.dynamicContent

    lib.testElement {
    20.renderObj = FLUIDTEMPLATE
    20.renderObj {
    templateName = TestTemplate

    templateRootPaths {
    10 = {$tmpPath}/Templates
    }

    variables {
    header = TEXT
    header.field = header

    colorStyle = {colorStyle}

    helloWorld = TEXT
    helloWorld.value = Hello World
    }
    }
    }
    [/code]

    Kann mir bitte jemand von Euch weiterhelfen wie ich die Variable an das Template übergeben bekomme?

    Vielen Dank


  • 1
  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    0 x
    3116 Beiträge
    137 Hilfreiche Beiträge
    10. 11. 2020, 13:22

    Die an ein cObject übergebenen Werte aus "data" werden als Felder interpretiert.

    D.h. für Dein 'colorStyle' müsstest Du so zugreifen:
    [code]lib.testElement.20.renderObj.variables.colorStyle = TEXT
    lib.testElement.20.renderObj.variables.colorStyle.field = colorStyle
    [/code]

  • Kesandal Kesandal
    T3PO
    0 x
    22 Beiträge
    0 Hilfreiche Beiträge
    10. 11. 2020, 17:59

    Hallo @Julian.Hoffmann,

    danke für Deine Antwort.

    Leider scheint es dennoch nicht zu klappen.

    In meinem Template Haupttemplate Default.html habe ich nun:
    [code]<f:cObject typoscriptObjectPath="lib.testElement" data="{colPos: '0', colorStyle: 'test123}" />[/code]

    Deinen Code
    [code]lib.testElement.20.renderObj.variables.colorStyle = TEXT
    lib.testElement.20.renderObj.variables.colorStyle.field = colorStyle
    [/code]

    habe ich direkt unterhalb von meinem Code eingefügt.
    Im TypoScript Object Browser taucht es auch korrekt auf.

    Im Template TestTemplate.html sehe ich im <f:debug>{_all}</f:debug> immer noch
    colorStyle => '' (0 chars)

    Hast Du noch einen Tipp für mich?

    Vielen Dank.

  • Kesandal Kesandal
    T3PO
    0 x
    22 Beiträge
    0 Hilfreiche Beiträge
    10. 11. 2020, 18:10

    Leider funktionieren anscheinend die Anhänge hier nicht :-(

    Im vorherigen Beitrag war noch ein Screenshot aus dem TypoScript Object Browser.

    Daher nochmal ein direkter Link zum Bild: https://imgur.com/IfN2hQ1

    Viele Grüße

  • Julian.Hofmann Julian.Ho...
    Flash Gordon
    0 x
    3116 Beiträge
    137 Hilfreiche Beiträge
    11. 11. 2020, 14:42

    Ja, die Upload-funktion ist seit Jahren kaputt - interessiert bei Mittwald (dem Betreiber des Forums) leider kein Schwein...
    Hatte schon diverse Kontakte und Gespräche dazu. Leider reicht's nicht mal dazu, wenigstens das kaputte Upload-Feld auszublenden. Ist schade, ist aber leider so :-(

    Könnte noch sein, dass die Daten nicht "passend" ins FLUIDTEMPLATE-Objekt reinkommen. eigentlich ziemlich sicher: Du hast das Objekt ja als renderObj für irgendwelche Daten - und diese sind via '.field' einsetzbar.
    Evtl. könnte ein Umweg über ein LOAD_REGISTER (https://docs.typo3.org/m/typo3/reference-typoscript/master/en-us/ContentObjects/LoadRegister/Index.html) tun:

    lib.testElement {
    10 = LOAD_REGISTER
    10 {
    colorStyle = TEXT
    colorStyle.field = colorStyle
    }
    // ...
    20.renderObj.variables.colorStyle = {REGISTER:colorStyle}
    }

  • 1