indexed_search: Mehrsprachigkeit und externe Dokumente
Die Extension indexed_search wird mit TYPO3 ausgeliefert und ist für die meisten Fälle absolut brauchbar. Betreibt man jedoch eine mehrsprachige Seite, kann es zu einem Problem kommen: Sollen externe Dokumente indexiert werden, so werden diese nur der Standardsprache zugeordnet.
Als Problemlösung könnte man folgende Wege einschlagen:
- Die Suche in keinem Fall auf eine Sprache einschränken (hier beschrieben)
- Eine manuelle Änderung am Code vorhnemen, siehe Bug #9739, was jedoch zu Problemen bei TYPO3 Updates führt (diese Lösung habe ich deshalb auch nicht ausprobiert).
Suchform-Template anassen
Aus dem Template des Suchformular das hidden-Field für die Sprache rausnehmen:
<input type="hidden" name="tx_indexedsearch[lang]" value="###ACTLANG###" />
piVar leeren
Global die default piVars['lang'] für IndexedSearch leeren (im TypoScript Template):
plugin.tx_indexedsearch._DEFAULT_PI_VARS.lang >
Flagge vor Suchergebnissen
Da nun immer über alle Sprachen gesucht wird, sollte man eine Flagge vor dem Suchergebnis anzeigen um dem User die Sache zu erleichtern. Dazu im Template an der gewünschten Stelle den Marker ###LANGUAGE### einfügen.
Bei externen Dokumenten werden keine Flaggen angezeigt, sofern deren Sprache nicht zugeordnet wurde.
Hier eine beispielhafte Plugin-Config:
plugin.tx_indexedsearch {
# Default Sprache leeren, damit über alle Sprachen
# gesucht wird
_DEFAULT_PI_VARS.lang >
# Suchform konfigurieren
show.rules = 0
show.advancedSearchLink = 0
# verbotene Datensätze nicht indexieren
show.forbiddenRecords = 0
# Pfad zum Template
templateFile = fileadmin/templates/html/template_search.html
# Zähle die extakte Anzahl an Suchtreffern
search.exactCount = 1
# Flaggen und Icons der Suchergebnisse aendern
# Standard = Deutsch
flagRendering = CASE
flagRendering {
key.current = sys_language_uid
0 = TEXT
0.value = <img src="fileadmin/templates/gfx/flags/de.gif" />
3 = TEXT
3.value = <img src="fileadmin/ltemplates/gfx/flags/en.gif" />
5 = TEXT
5.value = <img src="fileadmin/templates/gfx/flags/fr.gif" />
6 = TEXT
6.value = <img src="fileadmin/templates/gfx/flags/es.gif" />
# Standardfall
default = TEXT
default.value = <img src="fileadmin/templates/gfx/flags/de.gif" />
}
}
Die Flaggen-Grafiken müssen natürlich noch am entsprechenden Ort (fileadmin/templates/gfx/flags/) abgelegt werden.
indexed_search funktioniert nun schon und indexiert jede Seite, die aufgerufen wird. Zum regelmäßigen, automatischen Indexieren gibt es die Extension "crawler". Wie diese für dieses zur der hier vorgestellen Problemlösung konfiguriert werden muss, wird in einem weiteren Blogeintrag erläutert.

Kommentar hinzufügen