Hallo,
Version 6 der Extension sr_language_menu wurde mit Extbase/Fluid komplett neu programmiert. Daher gibt es keine HTML-Templates mehr, sondern halt Fluid-Templates. Früher konnte man mit dem Parameter file.templateFile eine eigene Template-Datei einbinden. Dieser Parameter wird nicht mehr unterstützt.
Die verschiedenen Layouts werden nunmehr als Partials bereitgestellt. Wie kann ich wohl jetzt ein eigenes Layout für die Ausgabe anlegen und dieses nutzen? Ich stehe ein wenig auf dem Schlauch. Ich möchte jedenfalls ungern an den Original-Dateien Änderungen vornehmen, damit bei einem Update der Extension diese nicht verloren gehen.
Danke
Martin
Bei allen Extbase/Fluid basierten Extensions gibt es jetzt eine fest definierte Variable view wo die Pfade zu den Templates hinterlegt sind.
Steht meist auch immer in der setup.txt Datei drin, immer unterhalb von Configuration/TypoScript/... zu finden
In diesem Fall steht da folgendes:
plugin.tx_srlanguagemenu {
...
view {
templateRootPath = {$plugin.tx_srlanguagemenu.view.templateRootPath}
partialRootPath = {$plugin.tx_srlanguagemenu.view.partialRootPath}
layoutRootPath = {$plugin.tx_srlanguagemenu.view.layoutRootPath}
widget.SJBR\SrLanguageMenu\ViewHelpers\Widget\MenuViewHelper.templateRootPath = {$plugin.tx_srlanguagemenu.view.templateRootPath}
}
}
Das {$plugin.tx_srlanguagemenu.view.xxx} weißt darauf hin das du das hier auch im Konstanten Editor überschreiben kannst.
Statt wie früher also einen Pfad zu einer HTML-Datei anzugeben musst du nun den ganzen Ordner kopieren und den Pfad zu diesen setzen, die Namen der Dateien musst du auch beibehalten.
Super Tipp! Vielen Dank.
Hätte ich eigentlich auch selbst drauf kommen können, bin ich aber nicht ;-)
Hi,
hast du es zum Laufen bekommen? Ich möchte die extension in einem fluid-template verwenden, allerdings will es irgendwie nicht.
Ich bin der offiziellen Dokumentation gefolgt, allerdings wird das widget nicht ausgegeben:
1. Oben im template: {namespace languageMenu=SJBR\SrLanguageMenu\ViewHelpers}
2. Widget einfügen: <languageMenu:widget.menu languages="0,1,2,3" layout="Select" languageTitle=”1” />
Kannst du deine Schritte im einzelnen noch mal hier darstellen? Insbesondere auch, wie du es im TS Template eingefügt hast...
Ich binde das Menü über ein lib-Objekt ein:
lib.langMenu = USER
lib.langMenu {
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
pluginName = LanguageMenu
extensionName = SrLanguageMenu
controller = Menu
action = index
settings = < tx_srlanguagemenu.settings
}
Das Objekt gebe ich dann in meinem Fluid-FE-Template entsprechend aus. Die Konfiguration habe ich wie karlchen schrieb in den CONSTANTS angepasst.
Funktioniert super.
@emeh
Korrigiere mich, wenn ich falsch liege, aber die Konfiguration muss man doch nur anpacken, wenn man die Ausgabe anpassen möchte, oder?
Ansonsten müsste alles passen und ich hinterlege eben ein lib-Objekt, wie du beschrieben hast.
Die Frage ist nun, wie gebe ich das Objekt in einem Partial aus wie diesem hier:
{namespace v=Tx_Vhs_ViewHelpers}
{namespace languageMenu=SJBR\SrLanguageMenu\ViewHelpers}
<f:layout name="Page"/>
<div xmlns="http://www.w3.org/1999/xhtml" lang="en"
xmlns:v="http://fedext.net/ns/vhs/ViewHelpers"
xmlns:f="http://typo3.org/ns/fluid/ViewHelpers">
<f:section name="TopHeader">
<div class="navbar">
<languageMenu:widget.menu languages="0,1,2,3,4" layout="Flags" languageTitle=”1” />
</div>
</f:section>
</div>
Stehe etwas auf dem Schlauch...
Edit: Hab den Code verkleinert, damit man das wesentliche sieht.
Richtig, wenn du die Konfiguration nicht änderst, musst du da natürlich nicht dran. Ich musste es, da ich die mitgelieferten Fluid-Templates anpassen wollte.
In deinem Beispielcode benutzt du den sr_language_menu-Viewhelper. Müsste ja eigentlich auch gehen, damit habe ich aber noch nicht gearbeitet. Ich gebe in meinem eigenen Seiten-Template mein lib-Objekt mit dem Fluid-Viewhelper "cObject" folgendermaßen aus:
{f:cObject(typoscriptObjectPath:'lib.langMenu')}