Suchfunktion

Aus DynPG-Wiki
Wechseln zu: Navigation, Suche

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.

Note.png 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:

  1. <?php
  2. /* Lade default-Parameter Voreinstellungen (Semantik bleibt nur
  3.   * erhalten, wenn vorher nicht "saveCurrentParams" aufgerufen wurde). */
  4. $GLOBALS["DynPG"]->loadSavedParams();
  5. /* Schliesse einzelne Gruppen aus ("get_DynPG_Subgroups_Of" existiert
  6.   * erst seit DynPG Version >= 3.5.2 und gibt alle Untergruppen der
  7.   * angegebenen Gruppe aus). */
  8. $GLOBALS["DynPG"]->SetParam_AA_Groups(
  9. Array(),
  10. $GLOBALS["DynPG"]->get_DynPG_Subgroups_Of(1)
  11. );
  12. /* Implementiere einzelne Ansichten, damit Suchresultatsseite Ergebnisse
  13.   * anzeigt (in AA) und man wie gewohnt durch die Ansichten surfen kann
  14.   * (AG und A).*/
  15. $GLOBALS["DynPG"]->Write_AllGroups();
  16. $GLOBALS["DynPG"]->Write_AllArticles();
  17. $GLOBALS["DynPG"]->Write_Article();
  18. ?>

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:

  1. $GLOBALS["DynPG"]->SetParam_AA_Groups(
  2. Array(),
  3. Array(1,2,3,5)
  4. );

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