[Frage] FLUIDTEMPLATE variables versus settings versus f:cObject TYPO3-Version: 6.1.7

  • typonewbe typonewbe
    Sternenflotten-Admiral
    0 x
    186 Beiträge
    3 Hilfreiche Beiträge
    29. 10. 2015, 11:14

    Hallo liebe TYPO3 Community,

    mein aktuelles bestreben das Templating von TypoScript nach Fluid auszulagern trägt langsam Früchte.
    statt

    1. lib.pageTitle = TEXT
    2. lib.pageTitle.data = page:title
    3. lib.pageTitle.warp = <h1>|</h1>

    schreibe ich nun
    1. <h1>{pageTitle}</h1>

    Dabei ist mir aufgefallen das wenn man nach Einbindungen von TypoScript in Fluid googeld.
    Einige Entwickler
    1. 10 {
    2. variables {
    3. pageTitle = TEXT
    4. pageTitle.data = page:title
    5. }
    6. }

    schreiben andere

    1. <h1><f:cObject typoscriptObjectPath="lib.pageTitle" /></h1>

    Beides funktioniert.
    Meine Frage daher wozu gibt es dann Variables wenn man das TypoScript auch direkt aufrufen kann?
    Ich habe mich jetzt für die zweite Variante entschieden aus folgenden Gründen.
    1. Mein TS für das FLUIDTEMPLATE bleibt klein und überschaubar.
    2. Variables werden nicht automatisch weitervererbt sondern müssen an die Partials immer durchgeschleift werden.

    Für mich machen variables nur für Konstanten Sinn aber nicht um ganze Objekte durchzuschleifen.

    Mich würde auch mal interessieren wie sich das Resourcen/Performancemäßig auswirkt.

    Vielleicht kennt sich ja jemand damit aus.

    Beste Grüße Typonewbe


  • 1
  • typonewbe typonewbe
    Sternenflotten-Admiral
    0 x
    186 Beiträge
    3 Hilfreiche Beiträge
    29. 10. 2015, 12:17

    Hallo,

    gleich mal ein Nachtrag der mich etwas beunruhigt weil ich ihn nicht verstehe.

    Zu Testzwecken zweimal das selbe TS Objekt eingebunden nur einmal mit variables und einmal über das f:cObject.
    Variante 1:

    1. lib.pageBackendLayout = TEXT
    2. lib.pageBackendLayout {
    3. data = levelfield:-2, backend_layout_next_level, slide
    4. override.field = backend_layout
    5. }
    6. ...
    7. 10.variables.beLayout < lib.pageBackendLayout

    Variante 2:
    1. <span>{beLayout}</span>
    2. <span>{f:cObject(typoscriptObjectPath: 'lib.pageBackendLayout')}</span>

    Ergebnis:
    Variante 1: Wert 6
    Variante 2: Wert 5

    Zur Erleuterung auf meiner Übersichtsseite Ü1 habe ich im Erscheinungsbild einmal das Backend-Layout der Seite festgelegt (Layout Übersichtsseiten)6
    und zum anderen das Backend-Layout der Unterseiten (Layout Inhaltsseiten) 5

    Nun klickte ich auf eine Übersichtsseite und siehe da der Wert der mittels Variables (beLayout) übergeben wurde war korrekt, während der Wert mittels f:cObject falsch war dieser ließt nämlich nicht das Backend-Layout aus sondern nimmt so wie es aussieht immer den Wert aus den Unterseiten.

    Häää

    Woran kann dies liegen?

    Gruß typonewbe

  • pixos_typo pixos_typ...
    TYPO3-Anwärter
    0 x
    5 Beiträge
    0 Hilfreiche Beiträge
    27. 04. 2018, 12:32

    Entschuldigung, dass ich diesen uralten Thread ausgrabe, aber ich habe momentan genau das gleiche Problem.

    Im Haupttemplate kann ich die Variable auslesen, welche korrekt übergeben wird.
    In einem Inhaltselement (Fluid/Mask) habe ich nur Zugriff über das CObject, welches ich mit dem gleichen Code wie oben erstellt habe und es ist das gleich Problem - mir kommt vor das override.field für die aktuelle Seite wird hier ignoriert.

    Hat jemand mittlerweile eine Lösung hierfür gefunden?

  • Teisinger Teisinger
    Sternenflotten-Admiral
    0 x
    227 Beiträge
    11 Hilfreiche Beiträge
    28. 04. 2018, 21:56

    also ich nutze das zwar eigentlich nicht, ab aber für den Fall der Fälle auch ein Schnippsel drin:

    variables {
    layout = TEXT
    layout.data = levelfield:-1,backend_layout_next_level,slide
    layout.override.field = backend_layout
    }

    Um noch mal darauf zurück zu kommen: der Unterschied zwischen settings und variables ist der, das du in settings keine "Objekte" machen kannst - also z. b. kein Wrap oder sowas.
    Von daher ist es eher besser und quasi performanter Konstanten-Werte per settings zu übergeben anstatt per variables. :)

  • 1