textpattern resources [ge]

Frisch aus der Presse

Wie richtet man die "Suche" mit TXP eigenen Tags ein?

Autor: Alex
 

Seit der RC 3 Version erfuhr die TXP eigene Suchausgabe einige sinnvolle Erweiterungen durch zusätzliche Tags. Mittels dieser Tags läßt sich die Suchausgabe nun individueller gestalten. Der folgende Artikel klärt über Code und Einsatz der neuen Tags auf.

Bezüglich der Listung der Suchergebnisse gibt es per se 2 Ansätze:

1) Die Suchergebnisse werden auf der Startseite gelistet.
2) Die Suchergebnisse werden auf einer extra Seite gelistet.

Grundsätzlich benötigt man für beide Ansätze:

  • das Inputfeld,
  • eine Sektion namens z. B. search sowie
  • ein bischen Code.

Soll die Ausgabe auf einer extra Suchseite erfolgen, dann muss man der Sektion noch eine Seite zuweisen.

Das Inputfeld setzt man in einen Baustein und regelt die Ausgabe durch ein output_form:

<txp:output_form form="suche" />.

Der Baustein [suche] enthält z. B. folgenden Code:

<form action="/search/" method="get" class="formSuche">
<input type="text" name="q" value="" size="x" /></form>

(Alternativ kann man auch den folgenden Tag <txp:search_input section="search" /> verwenden. Er führt geparst ebenfalls zur Ausgabe eines Inputfeldes.)

Das output_form platziert man üblicherweise auf der Stratseite und erhält damit ein Eingabefeld für Suchabfragen. Durch action="/search/" referenziert man auf die Sektion “search”.
Hat man die Sektion anders benannt, muß hier der anderslautende Sektionsname stehen.

Sollen die Suchergebnisse auf der Startseite ausgegeben werden, nutzt man Conditional Comments:

<txp:if_search>
<txp:article limit="x" />
Es wurden <txp:search_result_count />
<txp:else />
<txp:article limit="x" />
</txp:if_search>

Dieser Code wird an die entsprechende Stelle auf der Startseite gesetzt!
Werden die Suchergebnisse auf einer extra “Suchseite” ausgegeben, benötigt man keine Conditional Comments.

Das Styling der Suchergebnisse erfolgt über den schon in TXP integrierten Baustein [search_results]. Hier können die folgenden Tags kombiniert und mit CSS garniert werden:

  • <txp:search_result_title />
  • <txp:search_result_excerpt />
  • <txp:search_result_url />
  • <txp:search_result_date />

(Infos zu den einzelnen Tags erhält man in der Sektion TXP Tags)

Mit dem o. g. Code wird die Zahl der gefunden Artikel unterhalb der Suchergebnisse durch <txp:search_result_count /> angezeigt. Das ist weniger schön. Soll die Anzahl der Suchergebnisse oberhalb der Artikel angezeigt werden, verwendet man:

<txp:if_search>
<txp:article limit="5" pgonly="1" />
Es wurden <txp:search_result_count text="Suchergebnisse aufgelistet" />
<txp:article limit="5" />
<txp:else />
<txp:article limit="8" />
</txp:if_search>

Das Attribut pgonly="1" hat keine Ausgabe zur Folge und dient lediglich dazu die Zahl der Suchergebnisse oberhalb der Ergebnisse darzustellen sowie die Suchergebnisse paginierbar zu machen. Mittels txp:older bzw. txp:newer sollte man dann durch die Suchergebnisse blättern können. -Warum auch immer, bis dato scheint das entgegen anderslautender Aussagen nicht zu funktionieren. Es ist zu hoffen, dass sich das Paginier-Problem im Laufe der nächsten Wochen löst-. (Das Problem wurde zwischenzeitlich gelöst. Thx ihr Dev´s :)

Bitte beachtet: <txp:search_result_count /> hat keine Ausgabe zur Folge wenn es oberhalb des Artikel Tags steht! Darüberhinaus müssen die beiden ersten article Tags dieselben Attribute wie z. B. limit haben. Ausgenommen davon ist pgonly, das nur im ersten article Tag verwendet werden muß.

Anmerkung:
a)
Zem hat dazu auf Englisch ebenfalls einen umfassenden Artikel verfaßt.

b)
Der Tag <txp:search_result_count /> kann auch dazu verwendet werden die Artikelzahl pro Sektion oder Kategorie oder Gesamt auszugeben. Mehr dazu findet man hier.

c)
Wie man das Suchformular styled liest man im Artikel Das Suchformular stylen nach.

d)
Plugins für die Suche:

 
Filed:
Fragen & Antworten //
| 27.08.05

Neue TXP Sites

    Unable to connect to del.icio.us