Zum Inhalt springen

Constants/Setup als lib aufrufen

Erstellt am 24. Juli 2019 · 3 Antworten · letzte Antwort am 20. August 2019

Tags: TYPO3 8, Frage

MaDi89 ·

Guten Tag,

ist es irgendwie möglich, den Inhalt von Konstanten in eine Library zu übergeben?

Beispiel:

lib.farbe = ...
lib.farbe {
plugin.farbe.css = pfad-zur-datei/datei.css
}

Diese Library möchte ich dann im Fluid-Template je nach Bedingung aufrufen.

<f:if condition="{variable} == pink">
<f:cObject typoscriptObjectPath="lib.farbe" />
</f:if>

--------------

Das Farb-Beispiel dient nur zur Veranschaulichung 😉

Julian.​Hofmann ·

Ich kann Deinem Beispiel nicht ganz folgen...

In ein TypoScript-Objekt kannst Du (TypoScript-)Konstanten einsetzen:

Constants:
sunYellow = f39f18

Setup:
lib.farbe = TEXT
lib.farbe.value = {$sunYellow}

In Fluid kann jedes beliebige lib-TypoScript-Objekt eingebunden werden.

MaDi89 ·

Hallo Julian,

vielen Dank für deine Antwort.

Mir geht es eher darum, dass ich eine Konfiguration welche ich mittels Setup definiere in Librarys auslagern und je nach Fluid-Bedingung die richtige Config laden möchte.

Beispiel:

<f:if condition="{warenkorb_kg} >= 10">
<f:cObject typoscriptObjectPath="lib.shopportokosten_highprice" />
</f:if>
<f:if condition="{warenkorb_kg} < 10">
<f:cObject typoscriptObjectPath="lib.shopportokosten_lowprice" />
</f:if>

-------------
Schlechtes Beispiel 😉

lib.shopportokosten_highprice {
tx_shopsystem.portokosten = 6
}

lib.shopportokosten_lowprice {
tx_shopsystem.portokosten = 2
}

Julian.​Hofmann ·

Sorry, hatte den Thread etwas aus den Augen verloren...

Sofern Deine TS-Objekte vollständig sind, sollte das funktionieren.

lib.shopportokosten_highprice = TEXT
lib.shopportokosten_highprice.value = 6

Entscheidend ist, dass das, was Du als typoscriptObjectPath angibst, auch ein Content Object ist, d.h. 'TEXT' odgl. (https://docs.typo3.org/m/typo3/reference-typoscript/9.5/en-us/ContentObjects/Index.html).
In Deinem Beispiel ist es nur eine Datenhalde, mit der TYPO3 nichts anzufangen weiß, d.h. unbekannt ist, wie der Inhalt ausgegeben werden soll.