Seite 1 von 1
Volltextsuche Ausgabe...
Verfasst: Fr 6. Feb 2004, 18:50
von project gonzo
Moin,
hab mal wieder ein problem. Hab schon im Forum geschaut, aber werde daraus nicht schlau.
Benutze das Volltextsuche 1.1
Jetzt möcht ich die Sucheingabe in zum Bsp im Container 1 haben,
und die komplette Ausgabe (ergebnisse) in zum Bsp Container 2 haben, wie??? werd da nicht schlau draus...
Verfasst: So 8. Feb 2004, 18:55
von project gonzo
keiner ne idee?
Verfasst: So 8. Feb 2004, 19:59
von feiger_abweichler
keine ahnung, ob es funktioniert, aber ich würde es so angehen:
ein modul entwerfen mit dem suchbegriff-formular und in die entsprechenden seiten einbinden, z.b. unter oder neben der navigation.
den suchbegriff dann als variable an eine vorher erstellte extra seite zur darstellung der suchergebnisse übergeben.
da musst du ein bisschen an den modulen werkeln, sollte aber nicht so groß sein, der aufwand.
gruß, der abweichler
Suche
Verfasst: So 8. Feb 2004, 20:11
von kuchi
Hi,
hier das output für die Sucheingabe (input so wie Du es im Modul vorgefunden hast):
Code: Alles auswählen
<?php
echo "<center>
<table width=\"140\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr><td align=\"left\">
<form name='suche' method='POST' action='front_content.php?idcat=39'>
<input type=\"text\" size=\"\" class=\"feld\" name=\"suche\" value=\"$suche\"></td></tr>
<tr><td align=\"left\" height=\"21\">
<button name=\"s\" type=\"submit\" value=\"Suchen\" size=\"2\" style=\"width: 100px;height:20px; color: white; border:0;background-color:#005500;\">Volltextsuche</button></FORM></td></tr></table>";
?>
Dafür machst Du ein Layout/Template!
Output für Suchausgabe:
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] = "front_content.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=\"#005500\"><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> <span class='text'>(".$hits[$i]." Treffer)<BR>";
echo $results[$i][text]."</span></td></tr>";
};
} else { echo "<tr><td class='text' align=center>Keine passenden Seiten gefunden</td></tr>"; };
} else { echo "<tr><td class='text' align=center>Keine passenden Seiten gefunden</td></tr>"; };
};
echo "</table>";
?>
Dafür machst Du auch ein Layout/Template! Und fertig.
Gruß kuchi
Verfasst: So 8. Feb 2004, 21:17
von project gonzo
super, probier ich aus. danke schon mal....
Verfasst: Mo 9. Feb 2004, 16:11
von project gonzo
moin, irgendwie geht das bei mir nicht so ganz.
Hab diese zwei Module erstellt, dafür ein Layout dafür gemacht, ein Template angelegt, aber bekomme keine Such ausgabe. hab ich noch was vergessen?
Hat das was mit der Zeile im ersten Module zu tun?
Code: Alles auswählen
echo "<form name=\"suche\" style=\"margin-bottom:0px;padding-top:0px;\" method=\"POST\" action=\"/html/cms/front_content.php?idcat=39\" >
Da steht ja ../front_content.php?idcat=39
muss da bei mir was anderes rein oder etc...
Volltextsuche
Verfasst: Mo 9. Feb 2004, 16:30
von kuchi
Hi,
ja genau; die idcat mußt Du anpassen; die 39 ist bei mir die Suchausgabe!
Gruß kuchi
Verfasst: Mi 11. Feb 2004, 07:51
von toerag
hmm habe gerade mal die suche eingefügt, ein modil gemacht für die eingabe und zeites als ausgabe.
nur leider wird mir nichts angezeigt? ich füge es im template ein, aber es bleibt leer..
was mache ich falsch?
Verfasst: Fr 13. Feb 2004, 07:20
von toerag
hey hat denn wirklich keiner eine tip???
würde sehr gerne diese "SUCHE" einbinden

und es muss ja eigentlich laufen......
Verfasst: Di 7. Sep 2004, 12:46
von Johannes W.
Versuchs mal mit idcatart anstatt idcat! Steht übrigens im Handbuch.
MFG Johannes