Suchworte in Seiten eines Suchergebnisses highlighten
Eingetragen von hkauer (8)
am 06.10.2010 - 18:19 Uhr in
am 06.10.2010 - 18:19 Uhr in
Guten Abend,
Ich plage mich schon einige Zeit mit einer harten Nuss herum.
Ausgangsbasis: eine Drupal-Suche ergibt ein Ergebnis. Eine Liste von Links mit Snippets ist angeführt, und die entsprechenden Suchworte sind gehighlightet.
Mein Ziel: Wenn ich auf einen dieser Ergebnislinks klicke, und die Seite erscheint, möchte ich auch dort die Suchworte gehighlightet haben.
Ich hab versucht mich durch das Search-Modul zu ackern, habe aber den Ansatz noch nicht gefunden. Ausserdem möchte ich vermeiden das Originalmodul zu verändern.
Hat jemand eine Idee, wie ich das umsetzen könnte?
Vielen Dank im Voraus,
Hermann
- Anmelden oder Registrieren um Kommentare zu schreiben
Etwas älter der Artikel...
am 06.10.2010 - 22:00 Uhr
Etwas älter der Artikel... aber in dieser Richtung sollte eine Lösung zu finden sein: http://www.jquery.info/spip.php?article50
Ansonsten würde ich mir den Referrer (Url der Seite von der die Anfrage kommt) holen und damit weiterarbeiten. Php hat ja einige String-Funktionen
Highlight
am 06.10.2010 - 22:00 Uhr
Hallo.
Es gibt das Modul [do:highlight Highlight] mit dem dies anscheinend möglich ist. Für Drupal 6 gibt es bisher nur eine Version ausserhalb des CVS.
hth,
Stefan
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Super, danke, aber
am 07.10.2010 - 09:27 Uhr
Hallo,
vielen Dank für Eure schnellen Antworten. Ich hab mir die beiden Lösungen angeschaut, habe aber ein Problem damit.
Beide Lösungen setzen dort an, wo eine Seite die Suchworte schon mitbekommt. Wie bekomme ich die aber dort rein?
Die Links, die das Search-Modul aufbaut, sind einfach Links zu den entsprechenden Seiten. Ich müsste dort also z.B. noch "&highlight=Suchwort1,Suchwort2" anhängen. Dort, wo search diese Links aufbaut, gibt's die keys aber nicht.
Gibt es eine Möglichkeit, noch etwas an die url dranzuhängen? Ich müsste das wohl in einem Modul machen und einen hook verwenden, der ... tja was macht?
Und dann noch eine Frage zu http://www.drupalcenter.de/node/30918#comment-109993 von intervisual: Wer müsste sich denn da den Referrer holen? Ein Implementierung eines Hooks? Wenn ja, welcher?
Vielen Dank,
Hermann
Du müsstest dir den Referer
am 07.10.2010 - 09:36 Uhr
Du müsstest dir den Referer holen :). Der wird automatisch vom Server mitgeschickt und kann so ausgelesen werden.
<?php
$referer = $_SERVER["HTTP_REFERER"];
echo $referer;
?>
Sitz ich auf der Leitung?
am 07.10.2010 - 10:40 Uhr
So weit war mir das schon klar.
Aber mir ist nicht klar wo. Wo muss der obige Code hin?
Wir reden ja von ganz normalen Seiten, die Drupal aufbaut. Und in diesen Aufbau müsste ich, soferne der Referer die search-Ergebnis-Seite ist, eingreifen. Meine Frage ist: Wo? Ist das z.B. eine Template-Angelegenheit, oder brauche ich ein Modul dazu, der einen (welchen?) entsprechenden Hook implementiert, oder ...?
LG,
Hermann
Du legst dir -sofern noch
am 07.10.2010 - 10:56 Uhr
Du legst dir -sofern noch nicht geschehen- eine
search-result.tpl.php
(http://www.theroamingcoder.com/node/47) an gestaltest es nach deinem Gusto oder lässte es wie es ist. Da dies ja eine normale PHP-Datei ist kannst du hier auch mit dem o.g Code arbeiten.Dann kommen die String-Funktionen ins Spiel. Referrer in Suchstrings zerlegen, Suchergebniss nach vorkommen der Strings durchsuchen und mit str-replace das Suchwort um HTML erweitern.
So würde ich das machen. Ob das der Drupal-Way ist wage ich zu bezweifeln aber wenn es denn Funktioniert und keine Core-Datein verändert werden kann man es so machen. Aber das muss jeder selber wissen. Das hängt natürlich nicht zuletzt von deiner PHP-Knowledge ab.
Verstanden
am 07.10.2010 - 11:20 Uhr
Das werde ich probieren.
Danke.
Hermann