TYPO3 8: indexedsearch Suchfeld auf jeder Seite einbinden

Ab Version 8 kommt die Systemextension indexedsearch nur noch in der Extbase & Fluid based Variante daher. Möchte man auf der Website ein Suchfeld auf jeder Unterseite einbinden so kann man das am einfachsten machen, indem man die Extension per TypoScript einbindet – das hat auch den Vorteil, dass es selbst dann funktioniert, wenn man (beispielsweise bei einem Updateprojekt) für die eigenen Templates kein Fluid verwendet.

hier das benötigte TypoScript:

lib.searchfield = USER
lib.searchfield {
	userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
	vendorName = TYPO3\CMS
	extensionName = IndexedSearch
	pluginName = Pi2
	switchableControllerActions {
		Search {
			1 = form
			2 = search
		}
	}
	view =< plugin.tx_indexedsearch.view
	view.partialRootPaths.10 = fileadmin/templates/html/fluidtemplates/indexed_search/Partials/
	settings =< plugin.tx_indexedsearch.settings
	settings.targetPid = 123
}

settings.targetPid ist die id der Seite, auf der das Plugin eingebunden ist. Über view.partialRootPaths.10 kann man sich wie üblich das benötigte Fluid Template der indexedsearch Extension (Resources/Private/Partials/Form.html)in den fileadmin Ordner holen und dort bearbeiten.
Das, was minimal benötigt wird, sieht etwa so aus:

<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
    <f:form action="search" method="post" id="tx_indexedsearch" pageUid="{settings.targetPid}">
	<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>
 
	<f:form.textfield name="search[sword]" value="{sword}" id="tx-indexedsearch-searchbox-sword" placeholder="Suche" class="form-control" />
	<button name="search[submitButton]" id="tx-indexedsearch-searchbox-button-submit" class="btn btn-primary" type="submit"><i class="glyphicon glyphicon-search"></i></button>
 
	</f:form>
</html>

Wichtig ist dann noch, dass auf der Seite mit dem Plugin, also hier auf Seite 123, das Suchfeld ausgeschaltet wird, z.B. so:

lib.searchfield >

Ansonsten kann es zu Problemen mit dem Pagebrowser kommen.