Ich habe ein Suchmodul eingebaut welches eigentlich auch ohne Probleme funktioniert.
Allerdings habe ich ein kleines Problem: Wenn ein Link der Suchergebnisse angeklickt wird und man anschliessend mit dem "zurück"-Button des Browsers wieder auf die Ergebnisseite will kommt die allg. bekannte Meldung: "Achtung: Seite ist nicht mehr gültig"!
Ich treffe aber immer wieder Sites (auch in Contenido erstellte) bei denen es funktioniert...
Auf das Risiko hin, dass ich mich blamiere: Kann mir jemand sagen, wie ich das bewerkstelligen kann?
Danke
Uups...
Suchmodul: Wie komme ich zurück auf die "Ergebnisseite&
das kommt einfach darauf an, ob du die daten mit POST oder GET übergibst. mit POST kriegst du diese meldung, mit GET nicht. das ist die methode, die im suchformular angegeben ist.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
Die Daten werden per "POST" übergeben! Allerdings reicht es scheinbar nicht aus einfach "GET" einzufügen, da er natürlich die Seite mit diesem String dann nicht findet!
...ist übrigens das gleich Modul, welches ihr auf eurer Site auch verwendet...
Evtl. kennt jemand ein Modul das anders aufgebaut ist...?
Uups...
...ist übrigens das gleich Modul, welches ihr auf eurer Site auch verwendet...
Evtl. kennt jemand ein Modul das anders aufgebaut ist...?
Uups...
doch das reicht!
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
Na dann mach ich wohl etwas falsch!
Meine Suchseite ist hier:
http://www.domainname.ch/cms/front_content.php?idcat=31
Wenn ich nur per "get" das Suchwort "irgendwas" übergebe, generiert das Modulden folgenden Link:
http://www.domainname.ch/cms/front_cont ... epfung=und
--> Diese Seite erzeugt dann bei mir einen error 404 bzw. ich werde zur Startseite umgeleitet...
Meine Suchseite ist hier:
http://www.domainname.ch/cms/front_content.php?idcat=31
Wenn ich nur per "get" das Suchwort "irgendwas" übergebe, generiert das Modulden folgenden Link:
http://www.domainname.ch/cms/front_cont ... epfung=und
--> Diese Seite erzeugt dann bei mir einen error 404 bzw. ich werde zur Startseite umgeleitet...
Ich habe vergeblich versucht den Output anzupassen...
Vielleicht kann mir jemand einen Tipp geben? Also die Änderung von "post" zu "get" ist mir ja noch klar. Aber wo ich die Änderungen machen muss, dass im String das auch "idcat" und "idart" mitgegeben werden weiss ich nicht...
Hier ist der Code:
Vielleicht kann mir jemand einen Tipp geben? Also die Änderung von "post" zu "get" ist mir ja noch klar. Aber wo ich die Änderungen machen muss, dass im String das auch "idcat" und "idart" mitgegeben werden weiss ich nicht...
Hier ist der Code:
Code: Alles auswählen
<?php
echo '<form name="suche" method="POST" action="'.$auth->url().'">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td style="width:250px; padding-bottom:10px; vertical-align:top;"><input type="text" size="30" name="suche" value="'.$suche.'" background-color:#FFFFFF; height:20px;"></td>
<td style="width:220px;text-align:left; vertical-align:top;"><button type="submit" style="border:1px solid #0099CC; background-color:#EEEEEE; height:20px;">suchen</button></td>
</tr>
<tr>
<td colspan=2><input type="radio" name="verknuepfung" value="und" checked> UND-Verknüpfung (<i>alle</i> Begriffe müssen enthalten sein)</td>
</tr>
<tr>
<td colspan=2><input type="radio" name="verknuepfung" value="oder"> ODER-Verknüpfung (<i>mindestens ein</i> Begriff muss enthalten sein)</td>
</tr>
<tr>
<td colspan=2><p><br>Durchsucht werden alle Seiten dieses Webs, nicht jedoch die Inhalte von PDF-Dateien.</p>
<p>Groß-/Kleinschreibung wird ignoriert, Wörter wie "und", "der" etc. werden aus der Suchliste gestrichen.</p></td>
</tr>
</table></center>
</fo'.'rm>';
if($suche){
echo '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
$ignore_konj = array("und","oder","als","wenn","auch","wo","wie");
$ignore_art = array("der","die","das","ein","eine");
$ignore = array("ich","du","er","sie","es","wir","ihr","sie");
$suche = trim($suche);
$suchliste = explode(" ",strtolower($suche));
$suchliste = array_diff ($suchliste, $ignore_konj, $ignore_art, $ignore);
$suche = trim(implode(" ",$suchliste));
if($verknuepfung=="oder"){
$suchregexp = "(".str_replace(" ",")|(",$suche).")";
$s=ereg_replace("ü", "%FC",strtolower($suche));
$s=ereg_replace("ä", "%E4",$s);
$s=ereg_replace("ö", "%F6",$s);
$suchregexp .= "|$s";
$sql = "SELECT A.title AS title,A.idart AS idart,A.summary AS comment,B.idcat AS idcat,D.value AS content,A.idartlang AS sideid ";
$sql .= "FROM ".$cfg["tab"]["art_lang"]." AS A, ".$cfg["tab"]["cat_art"]." AS B, ".$cfg["tab"]["cat"]." AS C, ".$cfg["tab"]["content"]." AS D ";
$sql .= "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'";
$sql .= " AND (D.value REGEXP '".$suchregexp."' OR A.title REGEXP '".$suchregexp."' OR A.summary REGEXP '".$suchregexp."')";
} else {
$sql = "SELECT A.title AS title,A.idart AS idart,A.summary AS comment,B.idcat AS idcat,D.value AS content,A.idartlang AS sideid ";
$sql .= "FROM ".$cfg["tab"]["art_lang"]." AS A, ".$cfg["tab"]["cat_art"]." AS B, ".$cfg["tab"]["cat"]." AS C, ".$cfg["tab"]["content"]." AS D ";
$sql .= "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'";
while(list($key, $val) = each($suchliste)) {
$suchregexp = "(".str_replace(" ",")|(",$val).")";
$s=ereg_replace("ü", "%FC",strtolower($val));
$s=ereg_replace("ä", "%E4",$s);
$s=ereg_replace("ö", "%F6",$s);
$suchregexp .= "|$s";
$sql .= " AND (D.value REGEXP '".$suchregexp."' OR A.title REGEXP '".$suchregexp."' OR A.summary REGEXP '".$suchregexp."')";
} reset($suchliste);
}
$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("sideid");
$results[$num][link] = "front_content.php?client=".$client."&la"."ng=".$lang."&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(urldecode($db->f("content"))),0,100)."...";
};
while(list($key, $val) = each($suchliste)) {
$hits[$num] += substr_count(strip_tags(urldecode(strtolower($db->f("title")))), $val) +
substr_count(strtolower(strip_tags(urldecode($db->f("comment")))), $val) +
substr_count(strtolower(strip_tags(urldecode($db->f("content")))), $val);
// echo $num.': '.$val.'='.$hits[$num].$db->f("content").'<br>';
}; reset($suchliste);
};
if(count($hits) > 0){
echo '<tr><td class=subheadline>Suchergebnisse<br><br></td></td>';
$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 style=\"text-align:left; padding-bottom:5px;\"><img src=images/nav_button_2.gif border=0><a href=\"".$results[$i][link]."\"";
if("CMS_VALUE[3]"){echo "TARGET=\"CMS_VALUE[3]\" ";};
echo ">".$results[$i][title]."</a> <br />";
echo $results[$i][text];
echo "</td></tr>";
};
} else { echo "<tr><td align=center><p><b>Keine passenden Seiten gefunden</b></p></td></tr>"; };
} else { echo "<tr><td align=center><p><b>Keine passenden Seiten gefunden</b></p></td></tr>"; };
echo '</table>';
}
?>