Seite 1 von 1
suchmodul formatierung [gelöst]
Verfasst: Mi 28. Dez 2005, 13:43
von rene04
Hallo,
ich bin mir nicht sicher ob das so gewollt ist, aber ich finde es recht unschön und mag das nicht so haben: die "+" zwischen den wörtern um konkret zu werden. wie bekomme ich die weg?
gruesse rene
Verfasst: Mi 28. Dez 2005, 14:20
von rezeptionist
ich denke du meinst die seperatoren zwischen den Suchbegriffen in der Suchausgabe !!
Oder was meinst du genau !
greets
Verfasst: Mi 28. Dez 2005, 14:27
von rene04
Login(1 Treffer)
Um+auf+unseren+geschützten+Bereich+zugreifen+...
Test 5(1 Treffer)
Orbis+Dienstplan+Release+4.0+steht+zum+Download+in...
die "+" müssen da weg.
gruesse rene
Verfasst: Mi 28. Dez 2005, 14:29
von rezeptionist
so dann satteln wir das Pferd mal richtig auf.
Welches Modul verwendest du ??
greets
Verfasst: Mi 28. Dez 2005, 14:36
von rene04
suchmodul_ausgabe:
output:
Code: Alles auswählen
<?php
echo "<table class='site' border=0 cellpadding=0 cellspacing=0>";
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,50)."...";
};
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 style=\"text-decoration:underline;\" href=\"".$results[$i][link]."\"";
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]."<br><br></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>";
echo "<br/>";
?>
welches modul das ist weiß ich leider nicht. steht nix bei der beschreibung dabei.
gruesse rene
Verfasst: Mi 28. Dez 2005, 14:39
von rezeptionist
so ist es einfacher dir zu helfen da es ja so einige suchmodule gibt
Code: Alles auswählen
{
$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]);
};
ich denke wenn du die Pluszeichen aus diesem teil des Moduls entfernst sollte dir geholfen sein gegebenenfalls mit einem Geschützten Leerzeichen ersetzen
greets
Verfasst: Mi 28. Dez 2005, 14:43
von rene04
ähm, ne. das denke ich nicht. die + im code sind um etwas anzuhängen. jedenfalls wenn ich die wegnehm ist das php lämpchen rot.
gruesse rene
Verfasst: Mi 28. Dez 2005, 14:54
von rezeptionist
gibts es dazu auch nen input ?
hast du es auch versucht sie zu ersetzen nicht nur löschen
greets
Verfasst: Mi 28. Dez 2005, 15:42
von rene04
suche_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>";
also ich denke die "+" sind verknüpfungen. hab die auch ersetzt, selber fehler. ich kenn die + con c++ und strings aneinanderhängen.
gruesse rene
Verfasst: Mi 28. Dez 2005, 17:01
von stese
+ können in php keine verknüpfungen sein! das ist javascript, visual basic oder anderes aber kein php.
verkettungszeichen in php ist der punkt ( . ) - die + durch den . ersetzen und es sollte gehen.
Verfasst: Mi 28. Dez 2005, 19:33
von Dodger77
Also, an den von rezeptionist genannten Stellen das "+" zu entfernen bringt nichts. Die
Funktion substr_count gibt halt einen Integer zurück. Da macht das "+" doch schon Sinn.
Es könnte vielleicht klappen, wenn:
Code: Alles auswählen
case 2: $results[$num][text] .= substr(strip_tags(rawurldecode($db->f("content"))),0,50)."...";
durch:
Code: Alles auswählen
case 2: $results[$num][text] .= substr(strip_tags(urldecode($db->f("content"))),0,50)."...";
ersetzt wird.
Verfasst: Do 29. Dez 2005, 08:05
von rene04
danke an alle,
dodger77 hats getroffen
gruesse rene