Suche auf das Feld Schlüsselwörter begrenzen
Suche auf das Feld Schlüsselwörter begrenzen
Hallo zusammen,
ich habe eine Seitenstruktur aufgebaut, in der ich in bestimmten Bereich für die Suche definiert habe. Läßt sich ja alles einstellen und klappt prima. Jetzt möchte ich aber erreichen, daß nicht alle Stellen des ganzen Artikels durchsucht werden, sondern nur das Feld "Schlüsselwörter" in die Suche mit einfließt. Ausgegeben werden soll dann aber wieder der ganze Artikel.
Warum ich das tun möchte? Ich möchte auf diese Weise eine Suche realisieren, die ausschliesslich auf Postleitzahlen (sollen im Feld schlüsselwörter eingetragen werden) basiert. Die einzelnen Artikel sind wie folgt aufgebaut:
ARTIKELTITEL: Mustermann, Max
FELD SUMMARY: Musterstrasse 123[BR] 59063 Hamm[BR]Tel.: 01234 56789[BR]Fax: 01234 56788
FELD SCHLÜSSELWÖRTER: 59063, 59065, 59067, 59069, 59071, 59073, 59075, 59077
Jetzt tippe ich z.B. "590" in das Suchformular und erhalte folgendes Ergebnis:
Max Mustermann
Musterstrasse 123
59063 Hamm
Tel.: 01234 56789
Fax: 01234 56788
Ich möchte hiermit eben vermeiden, daß z.b. "590" in einer Telefon- oder Faxnummer vorkommt und somit das Ergbnis verfälschen würde. Habe mir schon die Datei include/inc_front/content/cnt13.article.inc.php angesehen. Leider habe ich keine Idee wie hier vorzugehen ist.
Bin für jeden Tip dankbar!
Andreas
ich habe eine Seitenstruktur aufgebaut, in der ich in bestimmten Bereich für die Suche definiert habe. Läßt sich ja alles einstellen und klappt prima. Jetzt möchte ich aber erreichen, daß nicht alle Stellen des ganzen Artikels durchsucht werden, sondern nur das Feld "Schlüsselwörter" in die Suche mit einfließt. Ausgegeben werden soll dann aber wieder der ganze Artikel.
Warum ich das tun möchte? Ich möchte auf diese Weise eine Suche realisieren, die ausschliesslich auf Postleitzahlen (sollen im Feld schlüsselwörter eingetragen werden) basiert. Die einzelnen Artikel sind wie folgt aufgebaut:
ARTIKELTITEL: Mustermann, Max
FELD SUMMARY: Musterstrasse 123[BR] 59063 Hamm[BR]Tel.: 01234 56789[BR]Fax: 01234 56788
FELD SCHLÜSSELWÖRTER: 59063, 59065, 59067, 59069, 59071, 59073, 59075, 59077
Jetzt tippe ich z.B. "590" in das Suchformular und erhalte folgendes Ergebnis:
Max Mustermann
Musterstrasse 123
59063 Hamm
Tel.: 01234 56789
Fax: 01234 56788
Ich möchte hiermit eben vermeiden, daß z.b. "590" in einer Telefon- oder Faxnummer vorkommt und somit das Ergbnis verfälschen würde. Habe mir schon die Datei include/inc_front/content/cnt13.article.inc.php angesehen. Leider habe ich keine Idee wie hier vorzugehen ist.
Bin für jeden Tip dankbar!
Andreas
Re: Suche auf das Feld Schlüsselwörter begrenzen
Hallo
wenn du wirklich nur in den keywords suchen möchtest, ist es besser das über ein kleines replacement zu machen... keine große aktion.
wenn du wirklich nur in den keywords suchen möchtest, ist es besser das über ein kleines replacement zu machen... keine große aktion.
Re: Suche auf das Feld Schlüsselwörter begrenzen
Verstehe nicht, was Du damit meinst. Was soll ich wo ersetzen? Habe leider keine Ahnung wo ich ansetzen soll. Meinst Du Veränderungen in der cnt13.article.inc.php ?DF6IH wrote:wenn du wirklich nur in den keywords suchen möchtest, ist es besser das über ein kleines replacement zu machen... keine große aktion.
Re: Suche auf das Feld Schlüsselwörter begrenzen
nein ... mal kurz umrissen:
Änderung auf lauffähige Version am 27.02.08
Ich habe mir mal etwas ähnliches gebaut und habe es ein wenig auf dich umgestrickt
im Template;
als HTML Teil im Contentpart des Alias "suche":
*** hier kann man noch eine Abfrage einbauen, falls $_POST["Inhalt"] leer übergeben wird, was nicht passieren sollte, da das Tag dann nicht gerendert wird..
im Veruzeichnis : template/inc_script/frontend_render/keyword.php
Aufruf: {SUCHE_K:variable} wie oben beschrieben mit Übergabe der Suchvariable
Resultat: Ausgabe von internen links auf die passenden Artikel.. script läuft...
Änderung auf lauffähige Version am 27.02.08
Ich habe mir mal etwas ähnliches gebaut und habe es ein wenig auf dich umgestrickt
im Template;
Code: Select all
Suche:
<form action="index.php?suche" method="post">
<input type="text" size="50" name="Inhalt">
<input type="submit" value="OK">
als HTML Teil im Contentpart des Alias "suche":
Code: Select all
[PHP]
echo '{SUHE_K:'.$_POST["Inhalt"].'}';
[/PHP]
im Veruzeichnis : template/inc_script/frontend_render/keyword.php
Code: Select all
<?php
if(!empty($content["all"]) && !(strpos($content["all"],'{SUCHE_K')===false)) {
$content["all"] = preg_replace('/\{SUCHE_K:(.+?)\}/ei', "suchekeyword(\"$1\")", $content["all"]);
}
function suchekeyword($key) {
// Hackers little washing mashine
$res=clean_slweg($res);
$res=clean_replacement_tags($res);
//$res=cleanUpSpecialHtmlEntities($res);
$res = mysql_query("SELECT * FROM phpwcms_article WHERE article_keyword LIKE '%".$key."%' ");
if (mysql_num_rows($res)>0){
while ($row = mysql_fetch_object($res)) {
//$gefunden.=$row->article_title oder was auch immer da hin soll ..LInk auf Artikel: [ID.row->rticle_id]...
$finden='[ID '.$row->article_id.']'.$row->article_title.'[/ID] <br />';
$gefunden.=mySmallParser($finden);
}
}
else {$gefunden.='Keine Such - Ergebnisse !';}
return $gefunden;
}
function mySmallParser($string) {
// internal Link to article ID
$search[1] = '/\[ID (\d+)\](.*?)\[\/ID\]/';
$replace[1] = '<a href="index.php?aid=$1" class="phpwcmsIntLink">$2</a>';
$search[2] = '/\[BR\]/i'; $replace[18] = '<br />';
$string = preg_replace($search, $replace, $string);
$string = str_replace('\'', ''', $string);
$string = str_replace('"', '"', $string);
return $string;
}
?>
Aufruf: {SUCHE_K:variable} wie oben beschrieben mit Übergabe der Suchvariable
Resultat: Ausgabe von internen links auf die passenden Artikel.. script läuft...
Last edited by juergen on Wed 27. Feb 2008, 15:30, edited 1 time in total.
Re: Suche auf das Feld Schlüsselwörter begrenzen
Danke für deine Hilfe! Leider funktioniert es noch nicht. Sobald ich das Skript "meinesuche.php" in den Ordner template/inc_script/frontend_render lege, läuft die ganze Site nicht mehr. Sie bleibt einfach weiß.
Liegt es daran, daß ich mit der Version 1.3.3 unterwegs bin oder gibt es noch kleine Bugs im code, die ich gerade auch nicht sehe?
Liegt es daran, daß ich mit der Version 1.3.3 unterwegs bin oder gibt es noch kleine Bugs im code, die ich gerade auch nicht sehe?
Re: Suche auf das Feld Schlüsselwörter begrenzen
Prüfe das Snippet mal auf syntaktische Fehler z.B. retrurn $gefunden; usw.
Das ganze ist ein Richtungsweiser, keine fertige Geschichte.
Knut
Das ganze ist ein Richtungsweiser, keine fertige Geschichte.
Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
Re: Suche auf das Feld Schlüsselwörter begrenzen
so ein wenig Schmalz kannst du ja reinstecken, der mögliche Schaden ist jedenfalls immer wieder durch löschen der Dateien zu korrigieren, wenn du einen oder mehrere contentparts änderst ....ist das komplizierter
Re: Suche auf das Feld Schlüsselwörter begrenzen
Danke nochmal für Deine Hilfe. Bin halt kein Programmierer und somit nicht wirklich in der Lage, das Geschriebene umzusetzen, weil ich einfach keine Ahnung von php habe. Die syntaktischen Fehler sind mir auch aufgefallen und ich habe sie korrigiert. Ich kann Deine Lösung nicht umsetzen bzw. weiterentwickeln und muß sie somit leider wieder verwerfen.
Re: Suche auf das Feld Schlüsselwörter begrenzen
hmmm .. reichen dir die Artikelschlüsselwörter ? Das würde jetzt dann einigermaßen funktionieren, ein wenig Sicherheit eingebaut ... einen mini link Parser ..+g*
Ich habe zu viel zeit
http://df6ih.de
Ich habe nur "Test" und "Hallo" als keywörter drinnen



http://df6ih.de
Ich habe nur "Test" und "Hallo" als keywörter drinnen
Re: Suche auf das Feld Schlüsselwörter begrenzen
Das ist völlig ausreichend. Wie schon geschrieben soll lediglich erreicht werden, daß nur nach Postleitzahlen gesucht werden kann, die ich in das Feld "Artikelschlüsselwörter" eintragen würde. Ein link auf die ausgegebenen Artikel ist nicht nötig, weil das Suchergebnis nur in Listenform dargestellt werden soll. Immer 6 Adressen pro Seite. Über die Paginierung navigiert man dann weiter zur nächsten Ergebnisseite.DF6IH wrote:hmmm .. reichen dir die Artikelschlüsselwörter ?
Re: Suche auf das Feld Schlüsselwörter begrenzen
Das erfodert dann aber einen anderen / besseren Ansatz ... Ich würde dir raten die Adressen dann nicht in Artikeln zu speichern, weil dafür sind die zunächst nicht unbeding gedacht... und da dich im Bereich von Datenbanken bewegst würde ich dir raten deine Adressen auch in eine sperate tabelle zu packen.
Die Paginierung liefert sql fast ohne extra Aufwand mit..
Die Paginierung liefert sql fast ohne extra Aufwand mit..
Re: Suche auf das Feld Schlüsselwörter begrenzen
Zu spätDF6IH wrote:Das erfodert dann aber einen anderen / besseren Ansatz ... Ich würde dir raten die Adressen dann nicht in Artikeln zu speichern, weil dafür sind die zunächst nicht unbeding gedacht... und da dich im Bereich von Datenbanken bewegst würde ich dir raten deine Adressen auch in eine sperate tabelle zu packen.

Die über 500 Adressen sind bereits erfaßt und stehen schon jeweils in einem Artikel...
Re: Suche auf das Feld Schlüsselwörter begrenzen
LOL
Und WO stehen die da ? Im Teaser Bereich, also im ersten Teil .. ?
Zu spät ist so etwas nie, möglicherweise lassen die Adressen sich einfach ex- und reimportieren...
Und WO stehen die da ? Im Teaser Bereich, also im ersten Teil .. ?
Zu spät ist so etwas nie, möglicherweise lassen die Adressen sich einfach ex- und reimportieren...
Re: Suche auf das Feld Schlüsselwörter begrenzen
Feld ARTIKELTITEL: Mustermann, MaxDF6IH wrote:LOL
Und WO stehen die da ? Im Teaser Bereich, also im ersten Teil .. ?
Feld SUMMARY: Musterstrasse 123[BR] 59063 Hamm[BR]Tel.: 01234 56789[BR]Fax: 01234 56788
Feld SCHLÜSSELWÖRTER: 59063, 59065, 59067, 59069, 59071, 59073, 59075, 59077
Jetzt tippe ich z.B. "590" in das Suchformular und erhalte folgendes Ergebnis:
Max Mustermann
Musterstrasse 123
59063 Hamm
Tel.: 01234 56789
Fax: 01234 56788
Re: Suche auf das Feld Schlüsselwörter begrenzen
Mit Kanonen auf Spatzen
da muss der Parser um [BR] erweitert werden .. müsste funktionieren... ist dann aber keine allgemeine lösung für keywords.. die will ich dann oben noch ausstauschen...
Das auswechseln von Links auf Anzeige ist kein Problem..

da muss der Parser um [BR] erweitert werden .. müsste funktionieren... ist dann aber keine allgemeine lösung für keywords.. die will ich dann oben noch ausstauschen...
Das auswechseln von Links auf Anzeige ist kein Problem..