Suchfunktion: Unterschied zwischen den Versionen

Aus DynPG-Wiki
Wechseln zu: Navigation, Suche
K (hat „Einbau der DynPG-Suche“ nach „Suchfunktion für Webseiten“ verschoben)
(Artikel überarbeitet)
Zeile 1: Zeile 1:
 
[[Kategorie:Integration in eine Webseite]]
 
[[Kategorie:Integration in eine Webseite]]
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.
+
DynPG durchsucht mit der eingebauten Such-Engine die Titel- und Lead-Texte sowie die Suchindizes, welche bei jedem Artikel manuell eingegeben werden können und gibt diese in einer Artikelliste aus.
  
 
== Einbau der Suche in die Webseite ==
 
== Einbau der Suche in die Webseite ==
An derjenigen Stelle, wo wir das Suchfeld einbauen wollen, fügen wir nachfolgenden Code ein.
+
=== Suchfeld anzeigen ===
 +
An derjenigen Stelle, wo wir das Suchfeld einbauen wollen, fügen wir nachfolgenden Code ein:
 
<code>[php,N]
 
<code>[php,N]
 
<?php
 
<?php
Zeile 11: Zeile 12:
 
</code>
 
</code>
  
Durch die erste Zeile erfolgt das Auflisten der gefundenen Resultate in der Datei "searchresults.php".
+
[[Image:note.png]] ''Bermerkung: Für die Ausgabe des Suchfeldes wird das Template unter <tt>/tpl/default/search-form.tpl</tt> im DynPG Hauptverzeichnis verwendet.  
  
"searchresults.php" ist eigentlich genau gleich aufgebaut wie alle anderen Seiten, hat jedoch dort wo die Suchresultate angezeigt werden sollen, folgenden Eintrag:
+
Durch die erste Zeile erfolgt das Auflisten der gefundenen Resultate in der Datei <tt>searchresults.php</tt>.
 +
 
 +
=== Suchresultate anzeigen ===
 +
Die Datei <tt>searchresults.php</tt> hat an der Stelle, wo die Suchresultate angezeigt werden sollen, ein Snippet zur Anzeige der [[Die drei Ansichten von DynPG|drei Ansichten]]:
 
<code>[php,N]
 
<code>[php,N]
 
<?php
 
<?php
  $GLOBALS["DynPG"]->loadSavedParams();
 
 
   $GLOBALS["DynPG"]->Write_AllGroups();
 
   $GLOBALS["DynPG"]->Write_AllGroups();
 
   $GLOBALS["DynPG"]->Write_AllArticles();
 
   $GLOBALS["DynPG"]->Write_AllArticles();
Zeile 23: Zeile 26:
 
</code>
 
</code>
  
Die Suche greift auf das Template in <tt>(cms)/tpl/default/search-form.tpl</tt> zu.  
+
== Ausschluss bestimmter Bereiche ==
 +
=== Einzelne Gruppen ausschließen ===
 +
Es ist manchmal sinnvoll oder erwünscht, bestimmte Bereiche einer Webseite von der Suche auszuschließen. Mit der nachfolgenden Anweisung können Sie Gruppen aus der Liste der Suchresultate ausschließen:
  
[[Image:note.png]] ''Bermerkung: <tt>(cms)</tt> kann sich ändern, je nachdem, unter welchem Verzeichnisnamen Sie das Backend von DynPG abgelegt haben.''
+
'''Einzelne Gruppen ausschließen'''
 +
<code>[php,N]
 +
<?php
 +
  $GLOBALS["DynPG"]->SetParam_AA_Groups( Array(), Array(1,2,3,5) );
  
== Ausschluss von bestimmten Bereichen ==
+
  $GLOBALS["DynPG"]->Write_AllGroups();
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:
+
  $GLOBALS["DynPG"]->Write_AllArticles();
<code lang="php" range="10">
+
  $GLOBALS["DynPG"]->Write_Article();
 +
?>
 +
</code>
 +
 
 +
Hiermit werden also entsprechend die Gruppen 1, 2, 3 und 5 aus der Suche ausgeschlossen.
 +
 
 +
=== Eine Gruppe einschließlich Untergruppen ausschließen ===
 +
In diesem Code-Snippet geben Sie dabei in der entsprechenden Zeile diejenige Nummer an, welche der Gruppe entspricht, die Sie inklusive aller Untergruppen ausschließen möchten (hier ist dies die ID 1).
 +
 
 +
'''Eine Gruppe einschließlich aller Untergruppen ausschließen'''
 +
<code>[php,N]
 
<?php
 
<?php
   /* Lade default-Parameter Voreinstellungen (Semantik bleibt nur
+
   // Schließe eine Gruppe und alle Untergruppen aus
  * 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"]->SetParam_AA_Groups(
 
                                         Array(),
 
                                         Array(),
 
                                         $GLOBALS["DynPG"]->get_DynPG_Subgroups_Of(1)
 
                                         $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_AllGroups();
 
   $GLOBALS["DynPG"]->Write_AllArticles();
 
   $GLOBALS["DynPG"]->Write_AllArticles();
Zeile 49: Zeile 60:
 
?>
 
?>
 
</code>
 
</code>
 
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 <tt>AA_Groups</tt> stattdessen wie folgt belegen:
 
<code>[php,Y,8]
 
  $GLOBALS["DynPG"]->SetParam_AA_Groups(
 
                                        Array(),
 
                                        Array(1,2,3,5)
 
                                      );
 
</code>
 
 
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: [[Media:Einbau_der_DynPG-Suche.pdf|Einbau_der_DynPG-Suche.pdf]].
 
 
 
''Ursprünglicher Autor: Urs Gamper, Daniel Schliebner''
 

Version vom 31. Oktober 2010, 13:13 Uhr

DynPG durchsucht mit der eingebauten Such-Engine die Titel- und Lead-Texte sowie die Suchindizes, welche bei jedem Artikel manuell eingegeben werden können und gibt diese in einer Artikelliste aus.

Einbau der Suche in die Webseite

Suchfeld anzeigen

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();
?>

Note.png Bermerkung: Für die Ausgabe des Suchfeldes wird das Template unter /tpl/default/search-form.tpl im DynPG Hauptverzeichnis verwendet.

Durch die erste Zeile erfolgt das Auflisten der gefundenen Resultate in der Datei searchresults.php.

Suchresultate anzeigen

Die Datei searchresults.php hat an der Stelle, wo die Suchresultate angezeigt werden sollen, ein Snippet zur Anzeige der drei Ansichten:

<?php
  $GLOBALS["DynPG"]->Write_AllGroups();
  $GLOBALS["DynPG"]->Write_AllArticles();
  $GLOBALS["DynPG"]->Write_Article();
?>

Ausschluss bestimmter Bereiche

Einzelne Gruppen ausschließen

Es ist manchmal sinnvoll oder erwünscht, bestimmte Bereiche einer Webseite von der Suche auszuschließen. Mit der nachfolgenden Anweisung können Sie Gruppen aus der Liste der Suchresultate ausschließen:

Einzelne Gruppen ausschließen

<?php
  $GLOBALS["DynPG"]->SetParam_AA_Groups( Array(), Array(1,2,3,5) );
 
  $GLOBALS["DynPG"]->Write_AllGroups();
  $GLOBALS["DynPG"]->Write_AllArticles();
  $GLOBALS["DynPG"]->Write_Article();
?>

Hiermit werden also entsprechend die Gruppen 1, 2, 3 und 5 aus der Suche ausgeschlossen.

Eine Gruppe einschließlich Untergruppen ausschließen

In diesem Code-Snippet geben Sie dabei in der entsprechenden Zeile diejenige Nummer an, welche der Gruppe entspricht, die Sie inklusive aller Untergruppen ausschließen möchten (hier ist dies die ID 1).

Eine Gruppe einschließlich aller Untergruppen ausschließen

<?php
  // Schließe eine Gruppe und alle Untergruppen aus
  $GLOBALS["DynPG"]->SetParam_AA_Groups(
                                         Array(),
                                         $GLOBALS["DynPG"]->get_DynPG_Subgroups_Of(1)
                                       );
 
  $GLOBALS["DynPG"]->Write_AllGroups();
  $GLOBALS["DynPG"]->Write_AllArticles();
  $GLOBALS["DynPG"]->Write_Article();
?>