TYPO3 Seitensuche als Teil des Webdesigns
Häufig ist eine Anforderung der Webdesigner bzw. Kunden an den TYPO3 Programmierer ein Suchfeld auf jeder Seite der Website ins Design zu integrieren. Dies stellt den Programmierer nun vor eine Reihe von Herausforderungen.
Zunächst einmal muss überhaupt ein Suchfeld per TypoScript (und eben nicht als Inhaltselement / Content-Element) integriert werden. Dann muss dieses Suchfeld den meist recht minimalistischen Anforderungen am Design angepasst werden und schlussendlich müssen die Suchergebnisse natürlich an einer sinnvollen Stelle landen.
Glücklicherweise wird von TYPO3 bereits ein Suchformular mitgeliefert. Dieses kann von tt_content.search kopiert und dann angepasst werden.
Beispiel für die Einbindung des Suchformulars per TypoScript
temp.top_search < tt_content.search
page.33 < temp.top_search
Nun kann das Suchformular direkt über Veränderungen an page.30 angepasst werden. Veränderungen an tt_content.search direkt dagegen würden sich auf alle Suchformulare, also auch auf solche die als Inhaltselemente eingebunden wurden, auswirken.
Die Anzeige der Suchergebnisse im Suchfeld unterdrücken
Ein Suchformular für die Seitensuche besteht in TYPO3 aus zwei teilen: Dem Suchformular selbst und der Suchergebnisanzeige, falls bereits eine Suche stattgefunden hat. Dies führt zum unschönen Ergebnis, dass nach erfolgter Suche das Suchelement, das zum Webdesign gehört versucht auch das Suchergebnis anzuzeigen. Wir wollen die Suchergebnisse jedoch im Inhaltsbereich der Webseite anzeigen.
Die TYPO3 Standartsuche ist ein Array (COA) von Objekten. an Stelle 20 liegen die Suchergebnisse und an 30 das Suchformular selbst. In dem man Punkt 20 der Suche leert kann man verhindern, dass Suchergebnisse angezeigt werden:
temp.top_search.20 > #verhindert Anzeige der Suchergebnisse
TYPO3 Suchergebnisse im Inhaltsbereich anzeigen
Nun müssen jedoch auch die Suchergebnisse im Seitenbereich angezeigt werden. Am einfachsten geht dies, in dem man eine Seite Namens "Suche" oder ähnliches erzeugt. Auf dieser Seite fügt man ein Inhaltselement Typ "Suche" in den Inhaltsbereich ein. gehen wir einmal davon aus, das diese Suchseite die ID 16 hat. Dann muss dafür gesorgt werden, dass jede Suche als Ziel die 16 hat. Normalerweise führt eine Suche nämlich Standardmäßig zur aufrufenden Seite zurück.
Für die Zielseite der TYPO3 Suche ist der Parameter "type" Zuständig. obwohl ich diese Bezeichnung etwas unsinnig finde. Außerdem werden die Suchergebnisse standardmäßig in einem neuen Fenster angezeigt. Man kann jedoch auch einstellen, dass die Suchergebnisse im selben Fenster angezeigt werden.
temp.top_search.30 { # Optionen des Suchformulars der TYPO3 Suche
target = _self #Suchergebnisse im selben Browserfenster anzeigen
type > #automatische Auswahl der Zielseite der Suche löschen
type = 16 #Seite 16 als Zielseite der Suche angeben
}
Dropdownauswahl "Überschriften und Schlagwörter" / "Seiteninhalt" ausblenden
Sehr störend in Bezug auf das Design ist auch das Drop-Down Auswahlfeld "Überschriften und Schlagwörter" / "Seiteninhalt" der TYPO3 Suche. Meist möchte man die Auswahl "Seiteninhalt" einfach standardmäßig auswählen und das Auswahlfeld ausblenden. Hierfür muss man das entsprechende Inputfeld in ein verstecktes Feld umwandeln.
temp.top_search.30 { # Optionen des Suchformulars der TYPO3 Suche
dataArray.20.value = tt_content.header-bodytext-imagecaption #Auswahl voreinstellen
dataArray.20.type = scols=hidden #Feld auf versteckt setzen
dataArray.20.valueArray > #Auswahlmöglichkeit ausblenden
}
Das Design des Suchformulars anpassen
Letzen Endes muss natürlich noch das Design des Suchergebnisfeldes angepasst werden. Dies kann über die stdwrap Eigenschaften der verschiedenen Elemente des Suchelements geschehen. Die Vorliegende Designanpassung ist natürlich nur ein Beispiel:
temp.top_search.30 { # Optionen des Suchformulars der TYPO3 Suche
# Suchformular mit DIV und nicht mit Tabelle wrappen
stdWrap.wrap = <div>|</div>
layout = ###LABEL### ###FIELD###
labelWrap.wrap = # Die Beschriftungen der Inhaltselemente nicht generell wrappen
#nur die Beschriftung des Eingabefeldes wrappen
dataArray.10.label.wrap = <div id="top_bar_suche">|</div>
dataArray.40.value.data > #Standartbeschriftung des Buttons ändern
dataArray.40.value = GO #Beschriftung des Buttons auf "GO" ändern
# dataArray.40 > Absenden Button ganz entfernen
}

Nichts gewesen!
Irgendeiner
Mit 2 zu 1 kopieren gehts auch nicht.<br />
<br />
Nicht wirklich ein turorial.!!!!!!!!!!
Super Hilfe und kleine Ergänzung
schön, dass ich immer wieder auf Deinen Blog stoße :-). Das Tutorial ist super, wenn man sich die Mühe macht, Deine Texte ganz zu lesen und nicht einfach nur kopiert! Eine Ergänzung noch: Wenn man die Funtkion "Suchen in" ausblenden will, dann macht es denke ich Sinn, auch dessen Überschrift zu deaktivieren:
dataArray.20.label > #Überschrift ausblenden
Vielen Dank und viele Grüße,
Fabian
Zu "TYPO3 Seitensuche als Teil des Webdesigns"
Hat mir sehr geholfen - besten Dank!
Zu "TYPO3 Seitensuche als Teil des Webdesigns"
Kann mich nur bedanken
Zu "TYPO3 Seitensuche als Teil des Webdesigns"
Hat mir sehr geholfen!
Lienert