Tutorial - Dynamische Suche
Dieser Artikel ist Teil der Tutorialreihe "Erstellen einer einfachen Webseite".
Teil 1: Planung und Erstellung der Webseite im Backend | Teil 2: Aufbau einer einfachen Webseite | Teil 3: Anpassen des dynamischen Menüs | Teil 4: Einbau einer Sitemap | Teil 5: Meta-Daten und dynamische Seitentitel | Teil 6: Die dynamische Suche | Teil 7: Der Home-View
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
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:
- Ein Formularfeld, in dem Suchbegriffe eingegeben werden können und
- 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: