Volltextsuche, Suchergebnise in anderen Container
-
- Beiträge: 57
- Registriert: Do 18. Nov 2004, 14:09
- Kontaktdaten:
Volltextsuche, Suchergebnise in anderen Container
tach
Ich hab da ma ne quest
Unzwar hab ich ein Suchmodul installiert, und möchte aber die Suchergebnisse in einen anderen Container angegeben bekommen. Man findet nämlich nur Module die im gleichen Fenster die Suchergebnise ausgeben.
Merci im voraus
Gruss Bazz
Ich hab da ma ne quest
Unzwar hab ich ein Suchmodul installiert, und möchte aber die Suchergebnisse in einen anderen Container angegeben bekommen. Man findet nämlich nur Module die im gleichen Fenster die Suchergebnise ausgeben.
Merci im voraus
Gruss Bazz
Leider hilft das nicht wirklich weiter, da diese Suche nicht so funktioniert, wie bazz-design und auch ich mir das gedacht haben! Wäre schön, wenn swelpot sich das noch mal anschauen und korrekt niederschreiben würde, hab nämlich auch nichts sinnvolles hinbekommen; denn bei Klick auf den Ergbnislink wird der Text im selben Container wiedergegeben!
Gruß
AL
Gruß
AL
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
Ich benutze eine Volltextsuche, aber ich habe keine Ahnung mehr, von wem die stammt, ob aus dem Forum oder aus dem Download-Bereich. Jedenfalls funktioniert sie bei mir inzwischen, nachdem ich die Variable $hits in $treffer umbenannt habe (es kam zu "Interaktionen" mit einem anderen Modul, das denselben Variablennamen benutzte, also falls ihr ein Modul habt, wo die Variable $treffer vorkommt, muesst ihr die wieder umbenennen). Ach, ich sehe gerade, im Eingabe-Modul steht ein bisschen etwas ... Dort steht auch, dass es fuer Contenido 4.3.1b sein soll, aber ich benutze es mit Contenido 4.4.4.
Modul Volltextsuche-Eingabe
Beschreibung:
Input:
Output:
Modul Volltextsuche-Ausgabe
Input:
Output:
Gruss
Christa
Modul Volltextsuche-Eingabe
Beschreibung:
Code: Alles auswählen
Bietet eine Volltextsuche. Durchsucht Titel, Beschreibung und Content.
Weist Schriftarten als CSS-Klassen (.fontX) zu, die somit im
Stylesheet (format.css) konfigurierbar sind.
History:
04.07.2003 - Anpassung Contenido 4.3.1 Beta - Carsten Hallwachs, c.ha@gmx.de
16.09.2002 - Fehlermeldung beseitigt, wenn ein Leerzeichen am Ende des Suchbegriffs stand (danke Svaen)
16.09.2002 - Statt der Zusammenfassung wurde der Titel angezeigt (danke Svaen)
16.09.2002 - Multisort erweitert. (danke Frank)
18.09.2002 - noch etwas MySQL-tauglicher gemacht durch das ersetzen von deutschen Umlauten (danke an Peter)
C-Version : 4.3.1b
Code: Alles auswählen
echo "
<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\">
<tr valign=\"top\">
<td width=\"202\">Schriftart Link:</td>
<td><select name=\"CMS_VAR[0]\" size=\"1\">";
if ("CMS_VALUE[0]" != 0) {
echo "<option value=\"0\">".$lngForm["nothing"]."</option>";
} else {
echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>";
}
for ($i=1; $i<=50; $i++) {
if ( $i != "CMS_VALUE[0]" ) {
echo "<option value=\"$i\">Font $i</option>";
} else {
echo "<option value=\"$i\" selected>Font $i</option>";
}
}
echo "
</SELECT></td>
</tr> <tr valign=\"top\">
<td width=\"202\">Schriftart Text:</td>
<td><select name=\"CMS_VAR[1]\" size=\"1\">";
if ("CMS_VALUE[1]" != 0) {
echo "<option value=\"0\">".$lngForm["nothing"]."</option>";
} else {
echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>";
}
for ($i=1; $i<=50; $i++) {
if ( $i != "CMS_VALUE[1]" ) {
echo "<option value=\"$i\">Font $i</option>";
} else {
echo "<option value=\"$i\" selected>Font $i</option>";
}
}
echo "
</SELECT></td>
</tr> <tr valign=\"top\">
<td width=\"202\">Zusatzangaben: </td>
<td><INPUT TYPE=\"radio\" NAME=\"CMS_VAR[2]\" VALUE=\"0\" ";
if("CMS_VALUE[2]" == 0) {
echo "checked=checked";
}
echo "> nichts <br>
<INPUT TYPE=\"radio\" NAME=\"CMS_VAR[2]\" VALUE=\"1\" ";
if("CMS_VALUE[2]" == 1) {
echo "checked=checked";
}
echo "> Kommentar <br>
<INPUT TYPE=\"radio\" NAME=\"CMS_VAR[2]\" VALUE=\"2\" ";
if("CMS_VALUE[2]" == 2) {
echo "checked=checked";
}
echo "> Textausschnitt </td>
</tr> <tr valign=\"top\">
<td width=\"202\">Linkziel: </td>
<td><INPUT TYPE=\"text\" NAME=\"CMS_VAR[3]\" VALUE=\"CMS_VALUE[3]\"></td>
</tr>
</table>";
Code: Alles auswählen
<?php
echo "
<table width=\"140\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr><td align=\"left\">
<form name='suche' method='POST' action='front_content.php?idcatart=254&lang=1&client=1'>
<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:#4779a0;\">Volltextsuche</button></FORM></td></tr></table>";
?>
Input:
Code: Alles auswählen
echo "
<table align=\"left\" cellpadding=\"0\" cellspacing=\"0\">
<tr valign=\"top\">
<td width=\"202\">Schriftart Link:</td>
<td><select name=\"CMS_VAR[0]\" size=\"1\">";
if ("CMS_VALUE[0]" != 0) {
echo "<option value=\"0\">".$lngForm["nothing"]."</option>";
} else {
echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>";
}
for ($i=1; $i<=50; $i++) {
if ( $i != "CMS_VALUE[0]" ) {
echo "<option value=\"$i\">Font $i</option>";
} else {
echo "<option value=\"$i\" selected>Font $i</option>";
}
}
echo "
</SELECT></td>
</tr> <tr valign=\"top\">
<td width=\"202\">Schriftart Text:</td>
<td><select name=\"CMS_VAR[1]\" size=\"1\">";
if ("CMS_VALUE[1]" != 0) {
echo "<option value=\"0\">".$lngForm["nothing"]."</option>";
} else {
echo "<option value=\"0\" selected>".$lngForm["nothing"]."</option>";
}
for ($i=1; $i<=50; $i++) {
if ( $i != "CMS_VALUE[1]" ) {
echo "<option value=\"$i\">Font $i</option>";
} else {
echo "<option value=\"$i\" selected>Font $i</option>";
}
}
echo "
</SELECT></td>
</tr> <tr valign=\"top\">
<td width=\"202\">Zusatzangaben: </td>
<td><INPUT TYPE=\"radio\" NAME=\"CMS_VAR[2]\" VALUE=\"0\" ";
if("CMS_VALUE[2]" == 0) {
echo "checked=checked";
}
echo "> nichts <br>
<INPUT TYPE=\"radio\" NAME=\"CMS_VAR[2]\" VALUE=\"1\" ";
if("CMS_VALUE[2]" == 1) {
echo "checked=checked";
}
echo "> Zusammenfassung <br>
<INPUT TYPE=\"radio\" NAME=\"CMS_VAR[2]\" VALUE=\"2\" ";
if("CMS_VALUE[2]" == 2) {
echo "checked=checked";
}
echo "> Textausschnitt </td>
</tr> <tr valign=\"top\">
<td width=\"202\">Linkziel: </td>
<td><INPUT TYPE=\"text\" NAME=\"CMS_VAR[3]\" VALUE=\"CMS_VALUE[3]\"></td>
</tr>
</table>";
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);
$s=ereg_replace("ß", "%DF",$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++){
$treffer[$num] += substr_count(strtolower(urldecode($db->f("title"))), $suchliste[$x]) +
substr_count(strtolower(urldecode($db->f("comment"))), $suchliste[$x]) +
substr_count(strtolower(urldecode($db->f("content"))), $suchliste[$x]);
};
};
if(count($treffer) > 0){
$treffer = array_values($treffer);
$results = array_values($results);
array_multisort ($results, SORT_DESC, SORT_NUMERIC, $treffer, SORT_DESC, SORT_NUMERIC);
for ($i=0; $i<count($treffer); $i++){
echo "<tr><td align=left><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'>(".$treffer[$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>";
?>
Christa
falls christa's nicht funktioniert:
hab bazz-design's post so verstanden (live hab ich das zur zeit unter http://contenido.swelpot.de)
grüße
stefan
diesen teil in den container, der nur die suchmaske beinhalten soll. idcat in $linkziel auf die katgeorie setzen, die dann einen artikel mit dem vollständigen modul enthält...Modul: Volltextsuche Formular
nur Output:
Code:
<?php
$linkziel = "front_content.php?idcat=15";
//$linkziel = $auth->url();
?>
<form name="suche" action="<?= $linkziel ?>" method="post">
<table>
<tr>
<td><span style="font-size: 15px">Suche </span></td>
<td><input name="suchtext" type="text" size="20"></td>
<td><input name="submit" type="submit" value="Go"></td>
</tr>
</table>
</form>
hab bazz-design's post so verstanden (live hab ich das zur zeit unter http://contenido.swelpot.de)
grüße
stefan
... entweder bin ich zu blöd (bitte keine zustimmenden Bemerkungen! )
... oder ich mach irgendwas grundlegend falsch!
Genau so, wie Du das auf Deiner Seite hast @Stefan, will ich das auch haben:
- Suchbox oben im Head (bsw. CMS_CONTAINER[2])
- Suchergebnisse im Textbereich (bsw. CMS_CONTAINER[10]
Kann doch nicht so schwer sein, oder? *heul*
Ich hab also zwei Module angelegt:
- Volltextsuche Eingabe, mit dem Code von Christa
- Volltextsuche Ausgabe, ebenso von Christa
... soweit richtig?
Nun hab ich im Layout die beiden Container abgelegt; da, wo's jeweils hin soll; richtig oder nicht?
Ergebnis:
- Volltextsuche Eingabe wird korrekt im Head angezeigt
- nach Abschluss der Suche passiert nichts; kein Ergebnis, kein Hinweis auf nicht gefundene Wörter
Muss ich noch weitere Anpassungen der Module vornehmen, Linkziel o.ä.?
Danke für Deine Geduld.
Gruß
AL
... oder ich mach irgendwas grundlegend falsch!
Genau so, wie Du das auf Deiner Seite hast @Stefan, will ich das auch haben:
- Suchbox oben im Head (bsw. CMS_CONTAINER[2])
- Suchergebnisse im Textbereich (bsw. CMS_CONTAINER[10]
Kann doch nicht so schwer sein, oder? *heul*
Ich hab also zwei Module angelegt:
- Volltextsuche Eingabe, mit dem Code von Christa
- Volltextsuche Ausgabe, ebenso von Christa
... soweit richtig?
Nun hab ich im Layout die beiden Container abgelegt; da, wo's jeweils hin soll; richtig oder nicht?
Ergebnis:
- Volltextsuche Eingabe wird korrekt im Head angezeigt
- nach Abschluss der Suche passiert nichts; kein Ergebnis, kein Hinweis auf nicht gefundene Wörter
Muss ich noch weitere Anpassungen der Module vornehmen, Linkziel o.ä.?
Danke für Deine Geduld.
Gruß
AL
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
Hallo Christa,
hier mal das, was im Errorlog zu finden ist:
Danke und Gruß
AL[/code]
hier mal das, was im Errorlog zu finden ist:
Code: Alles auswählen
[19-Nov-2004 18:06:21] Invalid SQL:
SELECT f.name, c.idcat, d.idart, e.idartlang, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum
FROM con_cat AS a,
con_cat AS b,
con_cat AS c
LEFT JOIN con_cat_art AS d ON c.idcat = d.idcat
LEFT JOIN con_art_lang AS e ON d.idart = e.idart
LEFT JOIN con_cat_lang AS f ON f.idcat = d.cat
WHERE
(
(
c.idcat = b.idcat
AND b.idcat = a.idcat
)
)
AND a.idcat = 17
AND e.online = 1
AND e.redirect = 0
AND e.external_redirect = 0
AND e.idlang = 1
AND d.is_start = 0
ORDER BY e.created DESC
LIMIT 0, 0
<br><br>
[19-Nov-2004 18:06:21] next_record called with no query pending.
Danke und Gruß
AL[/code]
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
-
- Beiträge: 76
- Registriert: Mi 5. Jan 2005, 19:42
- Wohnort: Das findet ihr sowieso nicht, weils so klein ist...
- Kontaktdaten:
Nach studium meherer Beiträge zum Thema Volltextsuche bin ich jetz völlig daneben...
Kann bitte jemand auch diese funktionierende, komplette Modul für die Volltextsuche fertig in einem Post veröffentlichen?
Kann bitte jemand auch diese funktionierende, komplette Modul für die Volltextsuche fertig in einem Post veröffentlichen?
**************************************************
Gruss
cyaneo
Zen Cart - The Art of e-Commerce
--------------------------------------------------------------------------------
Wenn jeder dem anderen helfen wollte, wäre allen geholfen.
--------------------------------------------------------------------------------
Ein Problem ist halb gelöst, wenn es klar formuliert ist.
**************************************************
Gruss
cyaneo
Zen Cart - The Art of e-Commerce
--------------------------------------------------------------------------------
Wenn jeder dem anderen helfen wollte, wäre allen geholfen.
--------------------------------------------------------------------------------
Ein Problem ist halb gelöst, wenn es klar formuliert ist.
**************************************************
Hallo cyaneo,
das ist eine einfache Suche, wie es sie auf vielen Seiten gibt www.seraweb.de.
Oder was wolltest Du genau wissen?
Gruß, Martin
das ist eine einfache Suche, wie es sie auf vielen Seiten gibt www.seraweb.de.
Oder was wolltest Du genau wissen?
Gruß, Martin
du musst get anstatt post im formular verwenden. dann geht auch der zurück-knopf.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)