Suchfunktion
Immer wieder kommt es vor, dass auf grösseren Web-Sites Suchfelder eingebaut werden müssen. DynPG durchsucht mit der eingebauten Such-Engine die Titel- und Lead-Texte sowie die Suchindizes, welche bei jedem Artikel manuell eingegeben werden können.
Einbau der Suche in die Webseite
An derjenigen Stelle, wo wir das Suchfeld einbauen wollen, fügen wir nachfolgenden Code ein.
<?php $GLOBALS["DynPG"]->SetParam_SRCH_ResultPage('searchresults.php'); $GLOBALS["DynPG"]->Write_ArticleSearch(); ?>
Durch die erste Zeile erfolgt das Auflisten der gefundenen Resultate in der Datei "searchresults.php".
"searchresults.php" ist eigentlich genau gleich aufgebaut wie alle anderen Seiten, hat jedoch dort wo die Suchresultate angezeigt werden sollen, folgenden Eintrag:
<?php $GLOBALS["DynPG"]->loadSavedParams(); $GLOBALS["DynPG"]->Write_AllGroups(); $GLOBALS["DynPG"]->Write_AllArticles(); $GLOBALS["DynPG"]->Write_Article(); ?>
Die Suche greift auf das Template in (cms)/tpl/default/search-form.tpl zu.
Bermerkung: (cms) kann sich ändern, je nachdem, unter welchem Verzeichnisnamen Sie das Backend von DynPG abgelegt haben.
Ausschluss von bestimmten Bereichen
Es ist manchmal sinnvoll, wenn bestimmte Bereiche einer Web-Site von der Suche ausgeschlossen werden können. Deshalb nachfolgend noch einmal der ganze Code, welcher auf der searchresults.php eingefügt werden kann:
<?php /* Lade default-Parameter Voreinstellungen (Semantik bleibt nur * erhalten, wenn vorher nicht "saveCurrentParams" aufgerufen wurde). */ $GLOBALS["DynPG"]->loadSavedParams(); /* Schliesse einzelne Gruppen aus ("get_DynPG_Subgroups_Of" existiert * erst seit DynPG Version >= 3.5.2 und gibt alle Untergruppen der * angegebenen Gruppe aus). */ $GLOBALS["DynPG"]->SetParam_AA_Groups( $GLOBALS["DynPG"]->get_DynPG_Subgroups_Of(1) ); /* Implementiere einzelne Ansichten, damit Suchresultatsseite Ergebnisse * anzeigt (in AA) und man wie gewohnt durch die Ansichten surfen kann * (AG und A).*/ $GLOBALS["DynPG"]->Write_AllGroups(); $GLOBALS["DynPG"]->Write_AllArticles(); $GLOBALS["DynPG"]->Write_Article(); ?>
In diesem Code-Snippet geben Sie dabei in der markierten Zeile diejenige Nummer an, welche der Gruppe entspricht, die Sie inklusive aller Untergruppen ausschließen möchten (hier ist dies die ID 1). Alternativ können Sie auch eine Liste von Gruppen angeben, welche Sie ausschließen möchten, indem Sie AA_Groups stattdessen wie folgt belegen:
Hiermit hätten Sie also entsprechend die Gruppen 1, 2, 3 und 5 aus der Suche heraus genommen.
Diese Informationen als PDF
Diese Informationen stehen mit dem Stand von heute (10:45, 23. Mär 2009 (CET)) auch als PDF zur Verfügung: Einbau_der_DynPG-Suche.pdf.
Ursprünglicher Autor: Urs Gamper, Daniel Schliebner