suchmodul formatierung [gelöst]

Gesperrt
rene04
Beiträge: 600
Registriert: Mo 10. Okt 2005, 12:28
Wohnort: Kaiserslautern
Kontaktdaten:

suchmodul formatierung [gelöst]

Beitrag 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
Zuletzt geändert von rene04 am Do 29. Dez 2005, 08:06, insgesamt 1-mal geändert.
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist »

ich denke du meinst die seperatoren zwischen den Suchbegriffen in der Suchausgabe !!
Oder was meinst du genau !

greets
greets
rene04
Beiträge: 600
Registriert: Mo 10. Okt 2005, 12:28
Wohnort: Kaiserslautern
Kontaktdaten:

Beitrag 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
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist »

so dann satteln wir das Pferd mal richtig auf.

Welches Modul verwendest du ??


greets
greets
rene04
Beiträge: 600
Registriert: Mo 10. Okt 2005, 12:28
Wohnort: Kaiserslautern
Kontaktdaten:

Beitrag 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
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag 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

Code: Alles auswählen

&nbsp;
greets
greets
rene04
Beiträge: 600
Registriert: Mo 10. Okt 2005, 12:28
Wohnort: Kaiserslautern
Kontaktdaten:

Beitrag 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
rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist »

gibts es dazu auch nen input ?

hast du es auch versucht sie zu ersetzen nicht nur löschen

greets
greets
rene04
Beiträge: 600
Registriert: Mo 10. Okt 2005, 12:28
Wohnort: Kaiserslautern
Kontaktdaten:

Beitrag 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
stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag 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.
Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag 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.
rene04
Beiträge: 600
Registriert: Mo 10. Okt 2005, 12:28
Wohnort: Kaiserslautern
Kontaktdaten:

Beitrag von rene04 »

danke an alle,

dodger77 hats getroffen :)

gruesse rene
Gesperrt