$limit_start und _end wird nicht beachtet? (Support für das Suchscript)

Georg, Tuesday, 18.06.2019, 23:06 (vor 1746 Tagen)

Hallo aus Wien,
ich nutze das Suchskript seit 2012, habe jetzt auf die Version PHP Suchscript - Version 2.5.33 umgestellt und bei einer neuen Seite versucht meine Seitennavigation und die untere Leiste in der Suche auszuschliessen.
Die dazwischenliegenden Inhalte sind mit <chercher> und </chercher> eingeschlossen.

das Config schaut so aus:
// Erst ab dem ersten Vorkommen dieses Strings werden die Dateien durchsucht.
// damit lassen sich z.B. header, Menüs, include files etc. ausschließen.
// hier bieten sich z.B an: '<h1' oder 'body'
// wenn $limit_start nicht im Dokument vorkommt, wird das Dokument von Anfang an durchsucht!
// ACHTUNG! $limit_start = "<body>" wird NICHT erkannt, wenn im Dokument <body onload ... steht; schließende spitzige Klammer!
// Spitzige Klammern in $limit_start und $limit_end "können" merkwürde Ausgabefehler erzeugen. Also möglichst vermeiden.
$limit_start = 'chercher';

// ... bis zu diesem String durchsuchen
// damit lassen sich z.B. footer ausschließen
$limit_end = "/chercher";

Habe mit verschiedenen Kombinationen der "Anführungszeichen" versucht - trotzdem werden auch Ergebniss in der Navigation und der unteren Leiste "gehilightet".

Sollte ich noch mehr Details liefern?

Vielen Dank im Voraus für ein Feedback

LG
Georg

Eintrag gesperrt
2550 Views
Avatar

$limit_start und _end wird nicht beachtet?

Fritz ⌂, Tuesday, 18.06.2019, 23:27 (vor 1746 Tagen) @ Georg

Habe mit verschiedenen Kombinationen der "Anführungszeichen" versucht - trotzdem werden auch Ergebniss in der Navigation und der unteren Leiste "gehilightet".

$limit_start und _end wird beachtet – aber nur für die Suche selbst, und nicht für das Highlighting.
Um auch das Highlighting zu konfigurieren, musst du Hand and die Datei wdw_suche.js im Verzeichnis wdw_suche legen.
Dort gibt es (ca. Zeile 142 und Zeile 160

highlightWord(document.getElementsByTagName("body")[0],words);

Im Klartext: Alles was im Quelltext zwischen <body> und </body> steht, wird fallweise gehighlightet.

Darunter findest du jeweils 2 Alternativen:

// alternativ: Tim Reeves: nur div highlighten:
// highlightWord(document.getElementById('inhalt'),words);

// alternativ: http://www.robertnyman.com/2005/11/07/the-ultimate-getelementsbyclassname/
// nur Class highlighten:
//highlightWord(getElementsByClassName("test2", "*", document)[0],words);

Durch Wegkommentieren und Entkommentieren wählst du eine der beiden Alternativen. Voraussetzung ist natürlich, dass dein Quelltext eine entsprechende ID (im Beispiel: inhalt) oder Klasse (test2) beinhaltet, die dann gehighlightet wird. ID und Klasse kannst du frei wählen.

Der Grund für dieses kompliziert anmutende Verfahren: Die Suche selbst läuft auf dem Server (PHP), das Highlighting dagegen in deinem Browser (JavaScript)