[TYPO3-german] [Typo3 7.6.x] globale Variablen in Extensions (bspw. MASK) verfügbar machen

Dave Zen foxxdav at yahoo.de
Fri Feb 9 08:43:52 CET 2018


Hi,

gibt es eine Möglichkeit global definierte Variablen in einer Extension verfügbar zu machen?

bspw. möchte ich eine im TS Setup definierte Variable im fluid Template von MASK nutzen:
plugin.tx_indexedsearch.settings.targetPid = 300


Folgendes Problem:

Ich nutze indexed_search sowie auch die MASK Extension. Mit Hilfe von MASK habe ich ein CE header.html erstellt, in der eine Suchbox per render Partial integriert ist. Dafür habe ich ein Template der indexed_search angepasst. Dieses Partial wird im fluid Template des MASK CE mit:

<f:render partial="Searchbox" arguments="{_all}"/>

aufgerufen. Dafür muss ich die Datei Searchbox.html in den Mask Partial Ordner legen, da dort danach gesucht wird. Leider werden dabei keine globalen Variablen mit übergeben. Im Formular kann ich dann bspw. nicht schreiben:

<f:form action="search" method="post" id="tx_indexedsearch" controller="Search" extensionName="IndexedSearch" pluginName="pi2" pageUid="{settings.targetPid}">

sondern muss die pageUid direkt hineinschreiben:

<f:form action="search" method="post" id="tx_indexedsearch" controller="Search" extensionName="IndexedSearch" pluginName="pi2" pageUid="300">

oder ich weiche auf TypoScript aus und definiere eine kleine Funktion, die mir die pageUid zurückliefert:

<f:form action="search" method="post" id="tx_indexedsearch" controller="Search" extensionName="IndexedSearch" pluginName="pi2" pageUid="{f:cObject(typoscriptObjectPath: 'lib.id_searchsite')}">

TS:
lib.id_searchsite = TEXT
lib.id_searchsite {
	value = {$id_searchsite}
}

$id_searchsite wird dann in den constanten definiert.

Erste Frage: Gibt es da noch eine bessere Lösung ohne den Umweg über TS? Eventuell kann man dem render Viewhelper die Variable auch schon übergeben?

Im TypoScript Setup definiere ich bereits

plugin.tx_indexedsearch.settings.targetPid = 300

aber auf diese Variable kann man scheinbar gar nicht in der Searchbar.html Datei zugreifen...?


2. Problem

Das Indexed_Search Template nutzt verschiedenen Variablen, bspw. {searchParams.numberOfResults}. Diese Variablen werden ebenfalls nicht ausgewertet und bei Value steht dann immer kein Wert drin: value=""

		<div class="tx-indexedsearch-hidden-fields">
				<f:form.hidden name="search[_sections]" value="0" />
				<f:form.hidden name="search[_freeIndexUid]" id="tx_indexedsearch_freeIndexUid" value="_" />
				<f:form.hidden name="search[pointer]" id="tx_indexedsearch_pointer" value="0" />
				<f:form.hidden name="search[ext]" value="{searchParams.ext}" />
				<f:form.hidden name="search[searchType]" value="{searchParams.searchType}" />
				<f:form.hidden name="search[defaultOperand]" value="{searchParams.defaultOperand}" />
				<f:form.hidden name="search[mediaType]" value="{searchParams.mediaType}" />
				<f:form.hidden name="search[sortOrder]" value="{searchParams.sortOrder}" />
				<f:form.hidden name="search[group]" value="{searchParams.group}" />
				<f:form.hidden name="search[languageUid]" value="{searchParams.languageUid}" />
				<f:form.hidden name="search[desc]" value="{searchParams.desc}" />
				<f:form.hidden name="search[numberOfResults]" value="{searchParams.numberOfResults}" />
				<f:form.hidden name="search[extendedSearch]" value="{searchParams.extendedSearch}" />
		</div>

Wenn ich die value-Werte direkt hineinschreibe funktioniert alles aber das wäre nur eine temporäre Lösung. Vermultich ist es das gleiche Problem wie oben schon geschrieben...?

Was mache ich da falsch oder ist das von Haus aus gar nicht möglich, dass man im Setup definierte Variablen in MASK nutzen kann?

Über Lösungsvorschläge und Hinweise wäre ich sehr dankbar :)


More information about the TYPO3-german mailing list