Am 22.09.15 um 15:22 schrieb Arne-Kolja Bachstein:
Hallo allerseits,
ich stehe vor dem Problem, dass ich von der Struktur meines Extbase-Plugins her
so vorgehen möchte, dass ich ein Partial basierend auf einem dynamischen Wert
einbinde. Also, zum Beispiel:
<f:render partial="Location/Type/12345" />
Dieser Typ basiert auf der ID des Typen in der Datenbank, kann aber dynamisch
hinzugefügt werden. Ich möchte nun, dass für alle diejenigen Typen, für die ein
Partial existiert, dieses eingebunden wird, aber wenn es nicht existiert soll
kein Fehler kommen, sondern ein Default-Partial eingebunden werden.
Ich suche also nach einer Lösung wie
<f:if partialExists="Location/Type/12345“>
<f:then><f:render partial="Location/Type/12345" /></f:then>
<f:else><f:render partial="Location/Type/Default" /></f:else>
</f:if>
Oder, eigentlich schöner:
<f:render partial="Location/Type/12345“ fallback="Location/Type/Default“ />
Ist Euch ein funktionierender Weg bekannt, für den man nicht hässlich basteln
muss? Oder anders: Wie würdet Ihr hier vorgehen?
wenn du es narrrensicher haben willst wirst du wohl kaum um einen
eigenen Viewhelper herum kommen, der überprüft ob ein bestimmtes Partial
existiert. ansonsten könnte ich mir Lösungen vorstellen, die aber auch
recht komplex sind:
1:
<f:render partial="location/Type{dynWert}" />
wenn {dynwWert} nicht definiert ist wird eben nur Type.html aufgerufen
ansonsten zb. Type123.html
Nachteil: bei neuen Werten geht es natürlich ins Nirwana
2.
überprüfung in Typoscript:
page.10.variables {
subPartial = TEXT
subPartial {
value = default
override.field = dyn_wert
override.stdWrap.if.isTrue.cObject = TEXT
override.stdWrap.if.isTrue.cObject {
field = dyn_wert
wrap =
path_EXT:my_ext/Resources/Private/Templates/|.html
}
wrap = path_EXT:my_ext/Resources/Private/Templates/|.html
}
}
<f:render partial="{subPartial}" />
3.
das gleiche als TS-VH:
lib.subPartial = TEXT
lib.subPartial {
value = default
override.current = 1
override.stdWrap.if.isTrue.cObject = TEXT
override.stdWrap.if.isTrue.cObject {
current = 1
wrap = path_EXT:my_ext/Resources/Private/Templates/|.html
}
wrap = path_EXT:my_ext/Resources/Private/Templates/|.html
}
<f:render
partial="{dynWert->f:cObject(typoscritpObjectPath:'lib.subPartial')}" />
(das ganze ist jetzt nicht getestet, sollte aber so oder ähnlich
funktionieren)
bernd
--
http://www.pi-phi.de/cheatsheet.html
_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german