Tutorial - Dynamische Suche

Aus DynPG-Wiki
Wechseln zu: Navigation, Suche

Einleitung

Mit der dynamischen Suche von DynPG erhalten Besucher die Möglichkeit, ihre Webpräsenz schnell und einfach zu durchsuchen. Sie erzeugt automatisch eine Liste aller Treffer für einen Suchbegriff und zeigt die passenden Artikel an.

Den Code für dieses Beispiel finden Sie hier: Download

Note.png Bemerkung: Beachten Sie bitte die Hinweise zur Konfiguration des Beispiel-Codes.

Suchfeld und Anzeige der Ergebnisse

Für die dynamsiche Suche benötigen wir zwei Dinge:

  1. Ein Formularfeld, in dem Suchbegriffe eingegeben werden können und
  2. Eine Seite, auf der die Ergebnisse angezeigt werden.

Für das Formularfeld bietet DynPG bereits eine vorgefertigte Funktion, die dieses erstellt. Durch die folgenden zwei Zeilen lässt sich dieses anzeigen:


content.php

<?php
    $DynPG->SetParam_SRCH_ResultPage('index.php');
    $DynPG->Write_ArticleSearch();
?>


Um dann noch die Ergebnisse ausgeben zu lassen, sofern eine Suche durchgeführt wurde, können wir das folgende Snippet verwenden:

content.php

<?php
    if (isset($_POST['DynPG_General_Search_Submit'])) {
        $DynPG->loadSavedParams();
        $DynPG->Write_AllGroups();
        $DynPG->Write_AllArticles();
        $DynPG->Write_Article();
    }
?>

Durch dieses Snippet wird immer dann, wenn die POST-Daten der Suche existieren, die Ausgabe der Suchergebnisse veranlasst. Da wir hierfür keine neue Seite anlegen wollen, tun wir dies einfach im Inhaltsbereich statt der Ausgabe der Artikel- oder Gruppenansichten.

Anpassen des Suchfeldes

Für die Erzeugung des Formularfeldes wird wiedereinmal ein Template verwendet, welches wir nach unseren Wünschen anpassen können. In diesem Fall befindet sich das Template im CMS-Ordner unter "tpl\MyCMS\default\search-form.tpl". Im Beispielcode wird der Einfachheit halber dieses Template nicht benutzt und stattdessen der entsprechende Code direkt in die Datei an der Stelle eingefügt, wo das Suchfeld auftauchen soll. Wir haben dort den Code z.B. so abgeändert, dass statt des normalen "Suchen"-Buttons eine Lupe angezeigt wird.

Wir ändern also den Code:

<?php
    $DynPG->SetParam_SRCH_ResultPage('index.php');
    $DynPG->Write_ArticleSearch();
?>

zu:

content.php

<form action="index.php" method="post" name="DynPG_General_Search" accept-charset="ISO-8859-1">
    <input name="DynPG_General_Search_Query" type="text" id="dynpg_search_query" class="dynpg_search_query" />
    <input name="DynPG_General_Search_Submit" type="image" src="img/search.png" value="Search" alt="Search">
</form>

und erhalten einen Lupe-Button statt des normalen Buttons:

Tutorial Search Form.png