Volltextsuche Ausgabe von content

Jodi
Beiträge: 27
Registriert: Fr 7. Mai 2004, 23:37
Kontaktdaten:

Volltextsuche Ausgabe von content

Beitrag von Jodi » Do 20. Mai 2004, 16:40

Hallo,

leider bin ich im Forum nicht fündig geworden...
ich hab ein Problem mit der Volltextsuche V1.1 (Contenido-4.4.4). Bei den Suchergebnissen habe ich anstatt der Lehrzeichen immer ein +. der Text sieht dann folgendermaßen aus:
Hier+steht+ein+Text+aus+dem+gefundem+Artikel

weiß jemand woran das liegt?

Gruß und Danke

timo
Beiträge: 6284
Registriert: Do 15. Mai 2003, 18:32
Wohnort: Da findet ihr mich nie!
Kontaktdaten:

Beitrag von timo » Do 20. Mai 2004, 16:47

ja, weil das Modul nicht für die aktuelle Version geschrieben wurde und der Content als urldecoded values abgespeichert wird.

neu@cidnet.de
Beiträge: 356
Registriert: Do 15. Jan 2004, 21:32
Wohnort: Mönchengladbach
Kontaktdaten:

Beitrag von neu@cidnet.de » Do 20. Mai 2004, 16:52

ich habe ne andere suche, die funtzt, wenne willst kann ich dir den code mal posten

Jodi
Beiträge: 27
Registriert: Fr 7. Mai 2004, 23:37
Kontaktdaten:

Beitrag von Jodi » Do 20. Mai 2004, 16:57

ok, mit einem urldecode ist das problem für die Ausgabe jetzt behoben.

@neu@cidnet.de wenn du möchtest kannst du mir deine suche natürlich mal posten. würde sie dann gerne mal testen!

gruß und danke

neu@cidnet.de
Beiträge: 356
Registriert: Do 15. Jan 2004, 21:32
Wohnort: Mönchengladbach
Kontaktdaten:

Beitrag von neu@cidnet.de » Do 20. Mai 2004, 17:03

Die links müssten angepasst werden, dann funtz es.


Suche Eingabe - Modul:

Eingabe leer lassen!


Ausgabe:

Code: Alles auswählen

<table width='165' border='0' cellspacing='0' cellpadding='0' height=40>
<tr><td height='30' colspan='2' ></td></tr>
<tr><td height='21' width='22' style='border: 0px; border-top:1px; border-bottom:1px; border-color: #CC0000; border-style: solid; background-color: #FFFFc1'><img src='images/wuerfel.gif' width='22' height='21' border='0'></td>
    <td width='143' style='border: 1px; border-left:0px; border-color: #CC0000; border-style: dashed; background-color: #FFFFc1; padding-left:10px' class='punkte'>Suche</td>
  </tr>
<tr>
    <td colspan='2' class='suche' height='22' style='border: 1px; border-top:0px; border-color: #CC0000; border-style: dashed; background-color: #FFFFc1; padding-left:10px'><p>Sie suchen einen bestimmten Artikel? Dann nutzen Sie doch einfach unsere Suche. Geben Sie einen Begriff ein, dieser wird dann ganz automatisch herausgesucht.</p>
      </td>
  </tr><tr>
    <td colspan='2' class='suche' height='22' style='border: 1px; border-top:0px; border-color: #CC0000; border-style: dashed; background-color: #FFFFc1; padding-left:10px'>
<?php 
echo "<center> 
<table width=\"140\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> 
<tr><td align=\"left\"> 
<form name='suche' method='POST' action='index.php?idcatart=173&lang=1&client=1'> 
<input type=\"text\" size=\"\" class=\"feld\" name=\"suche\" value=\"$suche\"></td></tr> 
<tr><td align=\"left\"> <br>
<button name=\"s\" type=\"submit\" value=\"Suchen\" size=\"2\" style=\"width: 80px;height:17px; color: black; border:0;background-color:#FFFF99;\">suchen</button></FORM></td></tr></table>"; 
?>
      </td>
  </tr>
  </table>
<br>
Suche Ausgabe - Modul:

Eingabe leer lassen!

Ausgabe:

Code: Alles auswählen

<?php 
echo "<table border=0 cellpadding=0 cellspacing=0><tr>"; 
if($suche){ 
$suche = trim($suche); 
$suchregexp = "(".str_replace(" ",")|(",$suche).")"; 
$s=ereg_replace("ü", "%FC",strtolower($suche)); 
$s=ereg_replace("ä", "%E4",$s); 
$s=ereg_replace("ö", "%F6",$s); 
$suchregexp .= "|$s"; 
$suchliste = explode(" ",strtolower($suche)); 

$sql = "SELECT 
a.title AS title, a.idart AS idart, a.summary AS comment, a.idartlang AS idartlang, 
b.idcat AS idcat, 
c.parentid AS parentid, 
d.value AS content 
FROM 
".$cfg["tab"]["art_lang"]." AS a, 
".$cfg["tab"]["cat_art"]." AS b, 
".$cfg["tab"]["cat"]." AS c, 
".$cfg["tab"]["content"]." AS d 
WHERE 
a.idart = b.idart AND 
a.idartlang = d.idartlang AND 
b.idcat = c.idcat AND 
c.idclient = '$client' AND 
idlang = '$lang' AND 
online='1' AND 
(d.value REGEXP '$suchregexp' OR a.title REGEXP '$suchregexp' OR a.summary REGEXP '$suchregexp')"; 

$db->query($sql); 
if ($db->num_rows() != 0){ 
for ($i=0; $i<$db->num_rows(); $i++) { 
$db->next_record(); 
if ($auth->auth["uid"] == "nobody"){ 
$sql2 = "SELECT public FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='".$db->f("idcat")."'"; 
$db2 = new DB_Contenido; $db2->query($sql2); $db2->next_record(); 
if($db2->f("public") == 0) continue; 
}; 
$num = 0 + $db->f("idartlang"); 
$results[$num][link] = "index.php?client=$client&lang=$lang&parent=".$db->f("parentid")."&idcat=".$db->f("idcat")."&idart=".$db->f("idart").""; 
$results[$num][title] = $db->f("title"); 
switch ("CMS_VALUE[2]") { 
case 0: $results[$num][text] = "";break; 
case 1: $results[$num][text] = $db->f("comment");break; 
case 2: $results[$num][text] .= substr(strip_tags(rawurldecode($db->f("content"))),0,100)."..."; 
}; 
for($x=0;$x<count($suchliste);$x++){ 
$hits[$num] += substr_count(strtolower($db->f("title")), $suchliste[$x]) + 
substr_count(strtolower($db->f("comment")), $suchliste[$x]) + 
substr_count(strtolower($db->f("content")), $suchliste[$x]); 
}; 
}; 
if(count($hits) > 0){ 
$hits = array_values($hits); 
$results = array_values($results); 
array_multisort ($results, SORT_DESC, SORT_NUMERIC, $hits, SORT_DESC, SORT_NUMERIC); 
for ($i=0; $i<count($hits); $i++){ 
echo "<tr><td align=left bgcolor=\"#FFFFC1\"><font size=\"-1\"><a href=\"".$results[$i][link]."\" class='text'"; 
if("CMS_VALUE[3]"){echo "TARGET=\"CMS_VALUE[3]\" ";}; 
echo ">".$results[$i][title]."</a></font><br> <b><span class='text'>(".$hits[$i]." Treffer)<BR><img src=http://www.kirchekelzenberg.de/cms/cms/img/line_top.gif><br>"; 
echo $results[$i][text]."</span></b></td></tr>"; 
}; 
} else { echo "<tr><td class='text' align=center>Keine passenden Seiten gefunden.<br>Versuchen Sie es doch einfach mit einem anderen Suchbegriff.</td></tr>"; }; 
} else { echo "<tr><td class='text' align=center>Keine passenden Seiten gefunden.<br>Versuchen Sie es doch einfach mit einem anderen Suchbegriff.</td></tr>"; }; 
}; 
echo "</table>"; 
?>

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

Beitrag von Halchteranerin » Do 20. Mai 2004, 17:29

Wenn ich mich einmischen darf ... ;-) Ich habe mit der von neu geposteten Suche das gleiche Problem, was ich auch mit der anderen Suche 'ploetzlich' (ich vermute nach dem Update von 4.4.2 auf 4.4.4, der Zeitpunkt kann aber auch Zufall sein!) hatte, dass sie nicht mehr ging. Im errorlog steht dann so etwas:
[20-May-2004 18:23:46] PHP Warning: Argument to array_values() should be an array in /www0901/www.halchter.com/cms/front_content.php(563) : eval()'d code on line 640
[20-May-2004 18:23:46] PHP Warning: Argument 4 to array_multisort() is expected to be an array or a sort flag in /www0901/www.halchter.com/cms/front_content.php(563) : eval()'d code on line 642

Hat jemand eine Idee, wie ich das Problem in den Griff kriege? :cry:

neu@cidnet.de
Beiträge: 356
Registriert: Do 15. Jan 2004, 21:32
Wohnort: Mönchengladbach
Kontaktdaten:

Beitrag von neu@cidnet.de » Do 20. Mai 2004, 17:32

hmm, ich kann nur sagen, ich habe mein contenido auch von 4.4.2 auf 4.4.4 upgedatet und es funtz...

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

Beitrag von Halchteranerin » Do 20. Mai 2004, 17:41

Das darf echt nicht wahr sein. :cry: Ich habe die Suche auch gerade eingebaut, bei einem System, wo ich direkt 4.4.4 installiert hatte. Gleiches Problem! Ich habe PHP 4.2.3 und 4.3.3 (mit beiden laeuft's nicht!), welche Version hast Du denn?

neu@cidnet.de
Beiträge: 356
Registriert: Do 15. Jan 2004, 21:32
Wohnort: Mönchengladbach
Kontaktdaten:

Beitrag von neu@cidnet.de » Do 20. Mai 2004, 18:10


toerag
Beiträge: 20
Registriert: Do 20. Nov 2003, 10:10
Wohnort: Kempen
Kontaktdaten:

Beitrag von toerag » Sa 12. Jun 2004, 21:27

hey habe gearde das suche-script eingebaut.. aber das problem ist, das gesagt wird, das man den link abändern muss.. aber wie mache ich das?? ich meine, wie kann ich denn den den link kennen?? ich meine ID etc..
hoffe, es kann mir einer helfen....
schönen abend noch

kenzo
Beiträge: 112
Registriert: Di 8. Jul 2003, 19:46
Kontaktdaten:

Beitrag von kenzo » Mi 28. Jul 2004, 08:18

toerag hat geschrieben:hey habe gearde das suche-script eingebaut.. aber das problem ist, das gesagt wird, das man den link abändern muss.. aber wie mache ich das?? ich meine, wie kann ich denn den den link kennen?? ich meine ID etc..
hoffe, es kann mir einer helfen....
schönen abend noch
Im Script wird eine index.php benutzt, muss aber front_content.php sein damit es funzt.

Beim Suchen-eingabe Modul habe ich folgenden Link ins Form eingebaut:

<form name='suche' method='POST' action='front_content.php?idcat=1&idart=XYZ&lang=XYZ&client=1'>

Bitte abändern, je nach dem welche idcat, idart und idlang du für die Suchen-ausgabe hast

und beim Suchen-Ausgabemodul musst Du index.php in front_content.php abändern.

Dat geid auch mit der 4.4.4

Kleines Problem:
Die Anzahl der Treffer wird nicht richtig angezeigt.

toerag
Beiträge: 20
Registriert: Do 20. Nov 2003, 10:10
Wohnort: Kempen
Kontaktdaten:

Beitrag von toerag » Mi 28. Jul 2004, 11:15

kenzo hat geschrieben:Bitte abändern, je nach dem welche idcat, idart und idlang du für die Suchen-ausgabe hast
hey kenzo,
danke für deine antwort.. aber ich habe immer noch nicht herausgefunden, wie ich dann die idcat, idart und idlang herausbekomme..
kannste mir das auch noch erklären???

LG jan

kenzo
Beiträge: 112
Registriert: Di 8. Jul 2003, 19:46
Kontaktdaten:

Beitrag von kenzo » Mi 28. Jul 2004, 20:35

toerag hat geschrieben:
kenzo hat geschrieben:Bitte abändern, je nach dem welche idcat, idart und idlang du für die Suchen-ausgabe hast
hey kenzo,
danke für deine antwort.. aber ich habe immer noch nicht herausgefunden, wie ich dann die idcat, idart und idlang herausbekomme..
kannste mir das auch noch erklären???

LG jan
Für die Suchen ausgabe musst Du im Backend einen Artikel erstellen und diesen online schalten.
Am besten unter Hauptnavigation, denn er soll ja nicht in der Navigation als Artikel erscheinen.
Also im Backend auf Content>>>Artikel>>>Hauptnavigation anklicken.
Dann neuen Artikel erstellen und online schalten.
Hast Du das getan, dann kanst Du diesen Artikel ja im Backend sehen.
Da gehst Du mit der Maus drüber und siehst ungefähr folgendes unten in der Statuszeile im Browser:

http://www.deineSeite.de/contenido/main ... e139a0b67d


In meinem Fall ist die idcat =1 weil Kategorie 1 Hauptnavigation.
Under Client ist 1, weil ich nur den enen habe.
Für dich ist die Nummer wichtig, die bei mir die 65 ist.

Dein Link im Form des Modul Suchen-Eingabe muss dann so aussehen:

<form name='suche' method='POST' action='front_content.php?idcat=1&idart=65&lang=65&client=1'>


best wishes

astar
Beiträge: 60
Registriert: Di 26. Jul 2005, 11:43
Kontaktdaten:

Beitrag von astar » Mo 1. Aug 2005, 08:47

hallo,

danke für die gute erklärung der einbindung und anpassung des codes.
funktioniert soweit alles.

- ich habe ein schickes eingabefeld.
- wenn ich was reintippe und bestätige hüpft er auch auf die verknüpfte seite (idcat ...)

doch jetzt das problem, ich habe keine ausgabe der suche. muss ich das ausgabemodul irgendwie einbinden? sucht er sich das modul automatisch?
kappier dat irgendwie nicht so richtig glaub...


Es funktioniert. (hatte vergessen das template einzubinden).
riesendank für die tolle hilfe.

astar
Beiträge: 60
Registriert: Di 26. Jul 2005, 11:43
Kontaktdaten:

Beitrag von astar » Mo 1. Aug 2005, 09:26

hmmmmmmmmmmm

verdammt. passt soweit alles ganz gut.
doch wenn ich nach etwas suche, kommt das ergebnis bsp:

teilestamm
(21 treffer)
-----------------------------
stamdaten
(6 treffer)
------------------------------
usw...

wenn ich dann auf einen der punkte klicke kommt
die klassische msexplorer fehlerseite "die seite wurde nicht gefunden".

der code:

Code: Alles auswählen

<?php
echo "<table border=0 cellpadding=0 cellspacing=0><tr>";
if($suche){
$suche = trim($suche);
$suchregexp = "(".str_replace(" ",")|(",$suche).")";
$s=ereg_replace("ü", "%FC",strtolower($suche));
$s=ereg_replace("ä", "%E4",$s);
$s=ereg_replace("ö", "%F6",$s);
$suchregexp .= "|$s";
$suchliste = explode(" ",strtolower($suche));

$sql = "SELECT
a.title AS title, a.idart AS idart, a.summary AS comment, a.idartlang AS idartlang,
b.idcat AS idcat,
c.parentid AS parentid,
d.value AS content
FROM
".$cfg["tab"]["art_lang"]." AS a,
".$cfg["tab"]["cat_art"]." AS b,
".$cfg["tab"]["cat"]." AS c,
".$cfg["tab"]["content"]." AS d
WHERE
a.idart = b.idart AND
a.idartlang = d.idartlang AND
b.idcat = c.idcat AND
c.idclient = '$client' AND
idlang = '$lang' AND
online='1' AND
(d.value REGEXP '$suchregexp' OR a.title REGEXP '$suchregexp' OR a.summary REGEXP '$suchregexp')";

$db->query($sql);
if ($db->num_rows() != 0){
for ($i=0; $i<$db->num_rows(); $i++) {
$db->next_record();
if ($auth->auth["uid"] == "nobody"){
$sql2 = "SELECT public FROM ".$cfg["tab"]["cat_lang"]." WHERE idcat='".$db->f("idcat")."'";
$db2 = new DB_Contenido; $db2->query($sql2); $db2->next_record();
if($db2->f("public") == 0) continue;
};
$num = 0 + $db->f("idartlang");
$results[$num][link] = "index.php?client=$client&lang=$lang&parent=".$db->f("parentid")."&idcat=".$db->f("idcat")."&idart=".$db->f("idart")."";
$results[$num][title] = $db->f("title");
switch ("CMS_VALUE[2]") {
case 0: $results[$num][text] = "";break;
case 1: $results[$num][text] = $db->f("comment");break;
case 2: $results[$num][text] .= substr(strip_tags(rawurldecode($db->f("content"))),0,100)."...";
};
for($x=0;$x<count($suchliste);$x++){
$hits[$num] += substr_count(strtolower($db->f("title")), $suchliste[$x]) +
substr_count(strtolower($db->f("comment")), $suchliste[$x]) +
substr_count(strtolower($db->f("content")), $suchliste[$x]);
};
};
if(count($hits) > 0){
$hits = array_values($hits);
$results = array_values($results);
array_multisort ($results, SORT_DESC, SORT_NUMERIC, $hits, SORT_DESC, SORT_NUMERIC);
for ($i=0; $i<count($hits); $i++){
echo "<tr><td align=left bgcolor=\"#FFFFC1\"><font size=\"-1\"><a href=\"".$results[$i][link]."\" class='text'";
if("CMS_VALUE[3]"){echo "TARGET=\"CMS_VALUE[3]\" ";};
echo ">".$results[$i][title]."</a></font><br> <b><span class='text'>(".$hits[$i]." Treffer)<BR><img src=http://www.kirchekelzenberg.de/cms/cms/img/line_top.gif><br>";
echo $results[$i][text]."</span></b></td></tr>";
};
} else { echo "<tr><td class='text' align=center>Keine passenden Seiten gefunden.<br>Versuchen Sie es doch einfach mit einem anderen Suchbegriff.</td></tr>"; };
} else { echo "<tr><td class='text' align=center>Keine passenden Seiten gefunden.<br>Versuchen Sie es doch einfach mit einem anderen Suchbegriff.</td></tr>"; };
};
echo "</table>";
?>
was hat es mit z.b. disem link auf sich? src=http://www.kirchekelzenberg.de/cms/cms/ ... op.gif><br>";

wie muss ich den anpassen?

Gesperrt