Ja klar, auf der Ergebnisseite geht die Highlight-Funktion auch tadellos!Halchteranerin hat geschrieben:hast du die Klasse sSearchMark in der css-Datei definiert?
Highlight bei Volltext Suche
wo ist der Fehler?
Plötzlich hat es bei einem Suchbegriff geklappt ....
Hier mal das Phänomen:
Ich suche nach einem Wort, das in einem bestimmten Artikel vorkommt.
Ich suche nun nach "Anmeldung" - die Highlight - Funktion geht nicht
Ich suche nach "untenstehendem" - die Highlight - Funktion geht!!!!
Ich suche nach "Formular" - die Highlight - Funktion geht ncht
Fazit: die Hightlight - Funktion auf den Artikelseiten zeigt nur klein geschriebene Wörter an! Auf der Ergebnisseite funkt. auch die Grossen Worte. Es müsste wohl ein Problem mit der Uebergabe auf die front_content.php sein?!?
Juhuuu, ich bin wohl wieder ein Schritt weiter
Wie kann ich das abändern?
Hier mal das Phänomen:
Ich suche nach einem Wort, das in einem bestimmten Artikel vorkommt.
Ich suche nun nach "Anmeldung" - die Highlight - Funktion geht nicht
Ich suche nach "untenstehendem" - die Highlight - Funktion geht!!!!
Ich suche nach "Formular" - die Highlight - Funktion geht ncht
Fazit: die Hightlight - Funktion auf den Artikelseiten zeigt nur klein geschriebene Wörter an! Auf der Ergebnisseite funkt. auch die Grossen Worte. Es müsste wohl ein Problem mit der Uebergabe auf die front_content.php sein?!?
Juhuuu, ich bin wohl wieder ein Schritt weiter

Wie kann ich das abändern?
Gruss
Sandra
Sandra
Noch eine Frage...
Hallo, ich bin schon wieder ein Schritt weitergekommen. Es werden nun die grossen wie auch die kleinen Wörter angezeigt. Allerdings immer nur wenn mit einem einzigen Suchwort gesucht wird und dieses auch richtig geschrieben wurde (Gross- und Kleinschreibungsproblem).
Zum Problem "mehrere Suchwörter" nehme ich an, dass ich folgenden Link abändern muss, denn der Browser zeigt folgendes:
/cms/front_content.php?suchtext=Restaurant%20Heinzelmann&client=1&lang=1&parent=1&idcat=8&idart=15
Wie ändere ich diesen Link, dass anstelle von %20 ein "+" angezeigt wird?
Zum Problem Gross- und Kleinschreibung:
Da nehme ich mal an, dass die das Text(HMTL) Modul noch anpassen muss. Aber wie?
Danke für jegliche Unterstützung, ich bin wirklich für jeden nur kleinsten Dankanstoss dankbar. Dieses Topic lesen so viele Leute, da gibts doch sicher noch welche, die gute Tipp parad haben?
Zum Problem "mehrere Suchwörter" nehme ich an, dass ich folgenden Link abändern muss, denn der Browser zeigt folgendes:
/cms/front_content.php?suchtext=Restaurant%20Heinzelmann&client=1&lang=1&parent=1&idcat=8&idart=15
Wie ändere ich diesen Link, dass anstelle von %20 ein "+" angezeigt wird?
Code: Alles auswählen
$results[$num][link] = "front_content.php?suchtext=$suche&client=$client&lang=$lang&parent=".$db->f("parentid")."&idcat=".$db->f("idcat")."&idart=".$db->f("idart")."";
Da nehme ich mal an, dass die das Text(HMTL) Modul noch anpassen muss. Aber wie?
Code: Alles auswählen
<?php
$artikeltext = "CMS_HTML[1]";
$suchtext = "$_GET[suchtext]";
$artikeltext = str_replace("$suchtext", "<span class=\"sSearchMark\">$suchtext</span>", $artikeltext);
echo "$artikeltext";
?>
Gruss
Sandra
Sandra
Hallo Sandra,
zuerst zum Problem mit der Gross- und kleinschreibung. Wenn Du PHP 5 einsetzt, ersetzte die Funktion str_replace durch str_ireplace, die achtet nämlich beim ersetzen nicht auf die Schreibweise.
Sonst musst Du auf ereg_replace zurückgreifen und zwar so:
Zum Suchen mit mehreren Wörtern ist die Lösung nicht ganz so einfach. Es reicht leider nicht aus das "%20" (was einfach eine URL-Schreibweise für Leerzeichen ist) durch ein "+" zu ersetzen. Du musst zusätzlich auf der Seite dafür sorgen, dass jedes Wort einzeln gesucht wird und nicht (wie im Moment) alle Wörter zusammen.
Konkret heißt das:
Wir gehen davon aus, dass der Nutzer alle Suchwörter durch Leerzeichen getrennt eingibt. Durch
wird dein Suchstring bei jeden Leerzeichen getrennt und die einzelnen Teile in ein Array von Strings geschrieben. Mit
wird die Ersetzung dann für jedes Suchwort einzeln gemacht.
Der Code ist nicht getestet, ich hoffe es funktioniert so.
zuerst zum Problem mit der Gross- und kleinschreibung. Wenn Du PHP 5 einsetzt, ersetzte die Funktion str_replace durch str_ireplace, die achtet nämlich beim ersetzen nicht auf die Schreibweise.
Sonst musst Du auf ereg_replace zurückgreifen und zwar so:
Code: Alles auswählen
$regexp="/($suchtext)/i";
$artikeltext = ereg_replace($regexp, "<span class=\"sSearchMark\">$0</span>", $artikeltext);
Konkret heißt das:
Wir gehen davon aus, dass der Nutzer alle Suchwörter durch Leerzeichen getrennt eingibt. Durch
Code: Alles auswählen
$suchtextearray=explode(" ", $suchtext);
Code: Alles auswählen
foreach($suchtextearray as $suchtext){
$regexp="/($suchtext)/i";
$artikeltext = ereg_replace($regexp, "<span class=\"sSearchMark\">$0</span>", $artikeltext);
}
Der Code ist nicht getestet, ich hoffe es funktioniert so.
Hallo tono
Vielen Dank für Deine Hilfe. Ich habe es mit der Ersetzung str_replace durch str_ireplace gemacht und es hat sich auch etwas geändert, aber leider nicht wie ich es mir gewünscht hätte.
Es zeigt mir nun wirklich alle Wörter an, die gross und klein geschrieben waren - nur im Text ändert er mir die nun in Klein, resp. Grossbuchstaben ab, das sieht aus, wie wenn Schreibfehler auf der Seite wären. Wenn ich z.B. nach "verein" suche wird aus "Verein" dann "verein" oder ich suche z.B. nach "Beitrag", dann wird aus "Mitgliederbeitrag" dann "MitgliederBeitrag" mit Highlight.
Nach stundenlangem rumprobieren, konnte ich das Gross- und Kleinschreibe-Problem so lösen:
Betreffend Suchen mehrerer Wörter ging nach Anpassung dann kein Highlight mehr. Ich habe kein Error aber auch kein Hightlight, nicht mal wenn ich das/die Wörter richtig geschrieben habe.
hmmmm.....
Vielen Dank für Deine Hilfe. Ich habe es mit der Ersetzung str_replace durch str_ireplace gemacht und es hat sich auch etwas geändert, aber leider nicht wie ich es mir gewünscht hätte.
Es zeigt mir nun wirklich alle Wörter an, die gross und klein geschrieben waren - nur im Text ändert er mir die nun in Klein, resp. Grossbuchstaben ab, das sieht aus, wie wenn Schreibfehler auf der Seite wären. Wenn ich z.B. nach "verein" suche wird aus "Verein" dann "verein" oder ich suche z.B. nach "Beitrag", dann wird aus "Mitgliederbeitrag" dann "MitgliederBeitrag" mit Highlight.
Nach stundenlangem rumprobieren, konnte ich das Gross- und Kleinschreibe-Problem so lösen:
Code: Alles auswählen
<?php
$artikeltext = "CMS_HTML[1]";
$suchtext = "$_GET[suchtext]";
$suchtext = strtolower($suchtext);
$artikeltext = str_replace("$suchtext", "<span class=\"sSearchMark\">$suchtext</span>", $artikeltext);
$suchtext = ucwords($suchtext);
$artikeltext = str_replace("$suchtext", "<span class=\"sSearchMark\">$suchtext</span>", $artikeltext);
echo "$artikeltext";
?>
hmmmm.....

Gruss
Sandra
Sandra
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
Hallo tono,
ich klinke mich mal ein, weil mir (wenn mir nichts weiter ein-/auffaellt) tatsaechlich nur diese Gross-/Kleinschreibung bei meiner Suche fehlt. Ich habe leider kein PHP5, es kommt also nur deine obige Loesung in Frage. Folgendes Modul bewirkt bei mir leider nichts:
Weil mir nicht klar war, was dieses $0 darstellt
, habe ich es auch mal durch $regexp bzw. $suchbegriff ersetzt, aber alle drei Varianten haben nichts bewirkt, da ist nichts von <span> in der Ausgabe zu sehen.
Hast du eine andere Idee?
Gruss
Christa
ich klinke mich mal ein, weil mir (wenn mir nichts weiter ein-/auffaellt) tatsaechlich nur diese Gross-/Kleinschreibung bei meiner Suche fehlt. Ich habe leider kein PHP5, es kommt also nur deine obige Loesung in Frage. Folgendes Modul bewirkt bei mir leider nichts:
Code: Alles auswählen
<?php
if ($edit && empty($_REQUEST['edit'])) {
// Edit-Mode
echo "CMS_HTML[1]";
} else if (("CMS_HTML[1]" != "") && ("CMS_HTML[1]" != " ")) {
$hol_das_suchwort = $_GET[suchwort];
$suchbegriffe = explode(" ",$hol_das_suchwort);
$einlesen = "CMS_HTML[1]";
foreach ($suchbegriffe as $suchbegriff)
{
$regexp = "/($suchbegriff)/i";
$einlesen = ereg_replace($regexp, "<span class=\"suche\">$0</span>", $einlesen);
}
echo $einlesen;
}
?>


Gruss
Christa
Gross- Kleinschreibung
hallo halchteranerin
Das Gross- und Kleinschreibe-Problem konnte ich lösen. Es geht mit verschiedenen Suchmodulen, die ich bereits ausprobiert habe.
Diesen Code im Textausgabe Modul "Text(HTML)"
ersetzen durch diesen:
Ich hoffe es hilft dir weiter....
aber das Problem von mehreren Suchwörtern das steht leider immer noch!
Das Gross- und Kleinschreibe-Problem konnte ich lösen. Es geht mit verschiedenen Suchmodulen, die ich bereits ausprobiert habe.
Diesen Code im Textausgabe Modul "Text(HTML)"
Code: Alles auswählen
<?php echo "CMS_HTML[1]"; ?>
Code: Alles auswählen
<?php
$artikeltext = "CMS_HTML[1]";
$suchtext = "$_GET[suchtext]";
$suchtext = strtolower($suchtext);
$artikeltext = str_replace("$suchtext", "<span class=\"sSearchMark\">$suchtext</span>", $artikeltext);
$suchtext = ucwords($suchtext);
$artikeltext = str_replace("$suchtext", "<span class=\"sSearchMark\">$suchtext</span>", $artikeltext);
echo "$artikeltext";
?>
aber das Problem von mehreren Suchwörtern das steht leider immer noch!

Gruss
Sandra
Sandra
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
Hallo Sandra,
deine Loesung hatte ich schon gesehen, danke
, aber ich hatte eben auch gelesen, dass du ein Problem hast, wenn man mehrere Suchbegriffe eingibt. tonos Loesungsvorschlag sollte damit kein Problem haben, wenn ich ihn denn umsetzen kann. Aber bisher klappt das leider nicht. 
Gruss
Christa
deine Loesung hatte ich schon gesehen, danke


Gruss
Christa
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten: