Liebe zum Design.

Erstellung einer benutzerfreundlichen Suchfunktion unter Textpattern.

Dieser Artikel wurde am 10. August 2012, 19.12 Uhr in der Kategorie »« veröffentlicht.

In diesem Artikel möchte ich aufzeigen, wie Sie eine benutzerfreundliche Suchfunktion unter Textpattern erstellen können. Die integrierte Volltextsuche in Textpattern (Baustein search_results) bietet ein hohes Maß an Flexibilität, um ein professionelles Suchsystem (ohne weitere Plugins) in eine Website zu implementieren.

Der Besucher der Website kann auf verschiedene Wege auf der Suchergebnisseite landen, für jede einzelne Situation muss dem Besucher also eine spezifische Infomeldung ausgegeben werden.

  1. Der Besucher landet auf der Suchergebnisseite, ohne Eingabe eines Suchbegriffes:
    • Informieren Sie Ihren Besucher, dass kein Suchbegriff eingegeben wurde.
    • Zeigen Sie ein Suchformular an, so dass der Besucher eine neue Suche ausführen kann.
  2. Der Besucher landet auf der Suchergebnisseite, ohne Ergebnisse für seine Abfrage:
    • Informieren Sie Ihren Besucher, dass keine Ergebnisse für seine Abfrage gefunden wurden.
    • Zeigen Sie ein Suchformular an, so dass der Besucher eine neue Suche ausführen kann.
  3. Der Besucher landet auf der Suchergebnisseite zu seinem Suchbegriff:
    • Anzeige der Suchergebnisse, chronologisch sortiert, maximal 10 pro Seite.
    • Weniger als 10 Ergebnisse, es wird keine Seiten-Navigation zum Vorwärts- und Rückwärts-Blättern angezeigt.
    • Mehr als 10 Ergebnisse, es wird eine Seiten-Navigation zum Vorwärts- und Rückwärts-Blättern angezeigt.

Nutzen Sie eine eigene Sektion für die Suchergebnisse.

Legen Sie eine neue Sektion mit dem Namen suche oder suchergebnisse an, um hier später die Ergebnisse der Suchanfrage auszugeben. Legen Sie eine neue Seitenvorlage an, um diese alleine für die soeben angelegte Sektion zu verwenden.

Die Struktur der Suchfunktion.

<txp:if_search>

<txp:if_search> ist ein sogenanntes »Conditional Tag« und sollte immer geöffnet und geschlossen werden. Auf der Suchseite wird dieser Tag in Kombination mit <txp:else /> definiert, um die Suchergebnisse auszugeben oder eine Infomeldung anzuzeigen, wenn keine Abfrage eingegeben wurde.

<txp:if_search>
  <!-- Suchergebnisse anzeigen -->
<txp:else />
  <!-- Meldung über fehlenden Suchbegriff anzeigen -->
</txp:if_search>

<txp:if_search_results>

<txp:if_search_results> ist ebenfalls ein »Conditional Tag«. Durch die Nutzung dieses Tags in Kombination mit <txp:else /> ist es nun möglich, die Suchergebnisse auszugeben oder eine Infomeldung anzuzeigen, dass keine Suchergebnisse gefunden wurden.

<txp:if_search>
  <txp:if_search_results>
    <!-- Suchergebnisse anzeigen -->
  <txp:else />
    <!-- Keine Suchergebnisse gefunden -->
  </txp:if_search_results>
<txp:else />
  <!-- Meldung über fehlenden Suchbegriff anzeigen -->
</txp:if_search>

Sie benötigen <txp:if_search_results> ebenfalls, um die Seiten-Navigation zum Vorwärts- und Rückwärts-Blättern auszugeben, falls mehr als 10 Suchergebnisse gefunden wurden.

<txp:if_search_results>
  <txp:newer>« Vorherige Seite</txp:newer><br />
  <txp:older>Nächste Seite »</txp:older>
</txp:if_search_results>

Folgend das endgültige Template.

<txp:if_search>
  <txp:article limit="10" pgonly="1" />
  <txp:if_search_results>
    <p>Es wurden <strong><txp:search_result_count text="" /></strong>
      Dokumente mit Ihrer Suchanfrage <strong><txp:search_term /></strong>
      gefunden.</p>
      <ol>
        <txp:article limit="10" form="search_results" sort="Posted desc" />
      </ol>
  <txp:else />
    <p>Es wurden keine mit Ihrer Suchanfrage <strong><txp:search_term /></strong>
      übereinstimmenden Dokumente gefunden.</p>
    <p><strong>Vorschläge:</strong></p>
      <ul>
        <li>Achten Sie darauf, dass alle Wörter richtig geschrieben sind.</li>
        <li>Probieren Sie es mit anderen Suchbegriffen.</li>
        <li>Probieren Sie es mit allgemeineren Suchbegriffen.</li>
        <li>Probieren Sie es mit wenigeren Suchbegriffen.</li>
      </ul>
    <txp:search_input button="Suche" label="Suche" section="suchergebnisse" />
  </txp:if_search_results>
<txp:else />
  <p>Oops. Es scheint, als haben Sie vergessen ein Suchwort einzugeben.</p>
  <p><strong>Vorschlag:</strong></p>
    <ul>
      <li>Achten Sie darauf, dass Sie ein Suchwort eingegeben haben.</li>
    </ul>
  <txp:search_input button="Suche" label="Suche" section="suchergebnisse" />
</txp:if_search>
<txp:if_search_results>
  <txp:newer>« Vorherige Seite</txp:newer><br />
  <txp:older>Nächste Seite »</txp:older>
</txp:if_search_results>

Für eventuelle Folgeschäden oder Datenverluste übernimmt VivaLaJack.de keine Gewähr. Im Allgemeinen empfiehlt es sich, vor Beginn der Arbeiten ein komplettes Backup aller Dateien anzulegen.

VivaLaJack.de | René Jackowski

Über diesen Blog

Das Blog informiert über Aktuelles und Neues von und rundum VivaLaJack.de.

Blog Startseite

Archiv

Zur Übersicht aller bisherigen Artikel »

Kontakt

VivaLaJack.de
graphic design | web development

Bernkasteler Straße 6
54497 Morbach

Telefon: 0 65 33 . 9 57 43 50
Telefax: 0 65 33 . 9 57 43 55

E-Mail schreiben!

Ihr Ansprechpartner ist René Jackowski.