Volltextsuche, Suchergebnise in anderen Container

bazz-design
Beiträge: 57
Registriert: Do 18. Nov 2004, 14:09
Kontaktdaten:

Volltextsuche, Suchergebnise in anderen Container

Beitrag von bazz-design » Do 18. Nov 2004, 14:14

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 :lol:

Gruss Bazz

swelpot
Beiträge: 101
Registriert: Mo 26. Jul 2004, 20:42
Wohnort: Rhein-Main
Kontaktdaten:

Beitrag von swelpot » Do 18. Nov 2004, 15:30


ALbärt

Beitrag von ALbärt » Fr 19. Nov 2004, 01:56

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

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

Beitrag von Halchteranerin » Fr 19. Nov 2004, 08:23

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:

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
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 "> 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>";
Output:

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>"; 
?>
Modul Volltextsuche-Ausgabe
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>";
Output:

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>"; 
?>
Gruss
Christa

swelpot
Beiträge: 101
Registriert: Mo 26. Jul 2004, 20:42
Wohnort: Rhein-Main
Kontaktdaten:

Beitrag von swelpot » Fr 19. Nov 2004, 09:21

falls christa's nicht funktioniert:
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&nbsp;</span></td>
<td><input name="suchtext" type="text" size="20"></td>
<td><input name="submit" type="submit" value="Go"></td>
</tr>
</table>
</form>
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...
hab bazz-design's post so verstanden (live hab ich das zur zeit unter http://contenido.swelpot.de)

grüße

stefan

ALbärt

Beitrag von ALbärt » Fr 19. Nov 2004, 14:35

... 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

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

Beitrag von Halchteranerin » Fr 19. Nov 2004, 17:46

hast du das Ding denn konfiguriert? Steht etwas im errorlog.txt?

Gast

Beitrag von Gast » Fr 19. Nov 2004, 18:09

Hallo Christa,

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]

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

Beitrag von Halchteranerin » Fr 19. Nov 2004, 18:19

Hallo AL,

der Eintrag stammt von einem anderen Modul, denn im Suchmodul taucht kein f.name z.B. auf. Du hast aber nicht gesagt, ob du das Zeug konfiguriert hast ...

Gruss
Christa

marphin
Beiträge: 196
Registriert: Mo 24. Nov 2003, 13:01

Beitrag von marphin » So 2. Jan 2005, 08:20

Hallo zusammen,

das Modul von Christa funktioniert einwandfrei - sogar in Version 4.5.2.

Gruß, Martin

cyaneo
Beiträge: 76
Registriert: Mi 5. Jan 2005, 19:42
Wohnort: Das findet ihr sowieso nicht, weils so klein ist...
Kontaktdaten:

Beitrag von cyaneo » Fr 7. Jan 2005, 14:16

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?
**************************************************
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.
**************************************************

marphin
Beiträge: 196
Registriert: Mo 24. Nov 2003, 13:01

Beitrag von marphin » Fr 7. Jan 2005, 21:15

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

i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt » Sa 8. Jan 2005, 15:34

Wenn ich nun etwas gesucht habe und dann mit dem Browser zurück will, komme ich immer auf eine ungültige Seite.

Wie kann man das verhindern?

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Sa 8. Jan 2005, 16:16

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)

i-fekt
Beiträge: 1520
Registriert: Mo 3. Jan 2005, 02:15
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von i-fekt » Sa 8. Jan 2005, 16:24

Das klappt leider nicht. Wenn ich post durch get ersetze funktioniert die Suche erst gar nicht. :(

Gesperrt