volltextsuche

benja
Beiträge: 168
Registriert: Mi 31. Aug 2005, 10:54
Wohnort: Köln
Kontaktdaten:

volltextsuche

Beitrag von benja » Mi 31. Aug 2005, 11:01

hallo,

ich beschäftige mich erst seit ca. einer woche mit contenido und finde das cms sehr gut, nur wegen der suche verzweifle ich inzwischen. ich glaube ich bin schon alle möglichkeiten die ich hier im forum finden konnte durch gegangen, aber habe keine wirkliche lösung gefunden. hat hier ggf. jemand für mich ein suchmodul das mit der version 4.4.5 funktioniert? das wäre großartig.

ich möchte ein suchergebnis, dass nicht den titel sondern die headline anzeigt, die verlinkt ist und darunter sollte der text angerissen sein. treffer oder prozent sollten auch angegeben sein.

viele grüße
benja

emergence
Beiträge: 10645
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Sa 3. Sep 2005, 07:57

ähm das müsste bei einer 4.4.5 funktionieren
-> http://www.contenido.org/forum/viewtopi ... ltextsuche

ob deine benötigten features inkludiert sind, weiss ich nicht... frag mal im anderen thread..
*** make your own tools (wishlist :: thx)

benja
Beiträge: 168
Registriert: Mi 31. Aug 2005, 10:54
Wohnort: Köln
Kontaktdaten:

Beitrag von benja » Mo 5. Sep 2005, 07:39

danke, emergence, aber bei der suche geht der back button im browser nicht bei der zweite version mit get erhalte ich schon im output fenster einen fehler, abgesehen davon dass ich gerne noch andere features hätte.

lg
benja

zimboo
Beiträge: 171
Registriert: Fr 20. Mai 2005, 09:43
Wohnort: Köln - Rondorf
Kontaktdaten:

Beitrag von zimboo » Mo 5. Sep 2005, 08:14

Meinst du so etwa

Suchergebnis

Dann nimmst Du folgendes Modul:
Modul "Ausgabe_Suchergebnis" 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>";
Modul "Ausgabe_Sucherbenis" Output:

Code: Alles auswählen

<?php

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){
echo "<h2>Suchergebnisse:</h2>";
$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 "<p><a href=\"".$results[$i][link]."\" class='text'";
if("CMS_VALUE[3]"){echo "TARGET=\"CMS_VALUE[3]\" ";};
echo ">".$results[$i][title]."</a>&nbsp;(".$treffer[$i]." Treffer)<br>";
echo $results[$i][text]."</p><hr>";
};
} else { echo "<p style=\"text-align:center;\">Keine passenden Seiten gefunden</p>"; };
} else { echo "<p style=\"text-align:center;\">Keine passenden Seiten gefunden</p>"; };
};

?>
Modul "Such_eingabe" 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>";
Modul "such_eingabe" Output:

Code: Alles auswählen

<?php
echo "<hr>
<form name='suche' method='GET' action='front_content.php'>
<input type='hidden' name='idcatart' value='118'>
<input type='hidden' name='lang' value='4'>
<input type='hidden' name='client' value='4'>
<p>Suchen:<br><input type=\"text\" size=\"15\" class=\"feld\" name=\"suche\" value=\"$suche\"><button name=\"s\" type=\"submit\" value=\"Suchen\" size=\"1\" style=\"width: 30px;height:20px; color: #fff; border:0;background-color:#be0027;font-size:10\">Go</button></fORM></p>";
echo "<hr>";
?>
Ich benutze auch 4.4.5 und bei mir funzt das ganze prima.
Im Original ist es - glaube ich - von Halchteranerin...

ich hoffe ich konnte Dir weiterhelfen....

Gruß

Jörg
Jörg Zimmermann
Köln Rondorf

benja
Beiträge: 168
Registriert: Mi 31. Aug 2005, 10:54
Wohnort: Köln
Kontaktdaten:

Beitrag von benja » Mo 5. Sep 2005, 08:32

hallo nachbar :)

eigentlich wollte ich keine sucheingabe im extra container, aber wenn diese suche funktioniert, ändere ich es eben wieder.
woher bekomme ich nur die idcatart? die idcat ist klar, aber idcatart finde ich nirgends?

lg
benja

zimboo
Beiträge: 171
Registriert: Fr 20. Mai 2005, 09:43
Wohnort: Köln - Rondorf
Kontaktdaten:

Beitrag von zimboo » Mo 5. Sep 2005, 10:02

In der Tabelle "con_cat_art"

hatte mich auch etwas an Zeit gekostet das herauszufinden...

Loß et dir joot jonn ;-)


Grüße

Jörg
Jörg Zimmermann
Köln Rondorf

benja
Beiträge: 168
Registriert: Mi 31. Aug 2005, 10:54
Wohnort: Köln
Kontaktdaten:

Beitrag von benja » Mo 5. Sep 2005, 10:27

ok, die habe ich. woher nehme ich dann lang und client?
der link der suchausgabeseite sieht so aus:
front_content.php?changeview=edit&action=con_editart&idartlang=38&type=&typenr=&idart=38&idcat=25&idcatart=&lang=1&contenido=6c7bb327ff6b42d9d8b04630e23d724b

ich habe es mit 1/1 versucht, das steht auch in der tabelle unter con_art_lang und con_clients. so funktioniert es nicht, also muß das wohl falsch sein!!


lg
benja

zimboo
Beiträge: 171
Registriert: Fr 20. Mai 2005, 09:43
Wohnort: Köln - Rondorf
Kontaktdaten:

Beitrag von zimboo » Mo 5. Sep 2005, 10:32

hmmm also ich habe da die mandanten ID (bei mir 3) und die SprachID des Mandanten (auch 3) eingetragen und es funzt....

Hast du es online??? Kann man sich das mal ansehen???ß

Jörg

>edit>
Bekommst du die "Nobody"-Login-Seite?????
Jörg Zimmermann
Köln Rondorf

benja
Beiträge: 168
Registriert: Mi 31. Aug 2005, 10:54
Wohnort: Köln
Kontaktdaten:

Beitrag von benja » Mo 5. Sep 2005, 10:34

ich verstehe echt nichts :) woher bekomme ich die mandanten id,..?
den link kann ich hier "noch" nicht veröffentlichen, weil nicht mal der kunde das layout gesehen hat.

zimboo
Beiträge: 171
Registriert: Fr 20. Mai 2005, 09:43
Wohnort: Köln - Rondorf
Kontaktdaten:

Beitrag von zimboo » Mo 5. Sep 2005, 10:45

Also die MandantenID findest Du in der Datenbank in der Tabelle "con_clients" oder im Backend steht oben rechts "Mandant:" Mandantxyz und in Klammern steht die MandantenID...

Die SprachID findest Du in der DB in der Tabelle "con_clients_lang" oder im Backend oben rechts in dem Dropdownfeld steht z.B. "deutsch (4)"

Diese beiden Informationen stammen aus den Tabellen "con_clients" und "con_clients_lang" ...

:wink:

okay???

Gruß

Jörg

Nitt verzweifele - et weed schon joot weede :lol:
Jörg Zimmermann
Köln Rondorf

benja
Beiträge: 168
Registriert: Mi 31. Aug 2005, 10:54
Wohnort: Köln
Kontaktdaten:

Beitrag von benja » Mo 5. Sep 2005, 10:51

joot weede - na ja. ich glaube ich lasse das von contenido einbauen, dann funktioniert es auch wirklich und ich mir ist die suche ohne eingabe im extra container auch lieber.
trotzdem danke für die hilfe.

lg
benja

zimboo
Beiträge: 171
Registriert: Fr 20. Mai 2005, 09:43
Wohnort: Köln - Rondorf
Kontaktdaten:

Beitrag von zimboo » Mo 5. Sep 2005, 12:08

gibst Du etwa auf??? :wink:

Nee, sach mal verstehst Du irgendwas denn nicht?

Gruß

Jörg
Jörg Zimmermann
Köln Rondorf

benja
Beiträge: 168
Registriert: Mi 31. Aug 2005, 10:54
Wohnort: Köln
Kontaktdaten:

Beitrag von benja » Mo 5. Sep 2005, 12:20

ich denke ich muß aufgeben, weil ich dafür nicht ewig zeit habe und die suche ist eh nicht das was ich möchte. die von www.4fb.de wäre am besten für mein projekt.

lg
benja

zimboo
Beiträge: 171
Registriert: Fr 20. Mai 2005, 09:43
Wohnort: Köln - Rondorf
Kontaktdaten:

Beitrag von zimboo » Mo 5. Sep 2005, 13:12

Nun dann musst Du folgendes machen:

1.) eine Kategorie (Content -> Kategorie ->Neuen Baum anlegen) erstellen (z.B. Suche)

2.) einen Artikel erstellen (Content -> Kategorie -> Artikel) am besten direkt als Startartikel festlegen und diesen Artikel konfigurieren...

In einem Container (z.B. CMS_CONTAINER[1]) legst Du das Modul für die Sucheingabe und in einen zweiten Container (z.B. CMS_CONTAINER[2]) auf dieser Seite legst Du dann die "Ergebnis-Ausgabe"... so war das ja bei dem Originalmodul vorher auch. Ich habe es dann so angepasst, dass die Sucheingabe an jeder beliebigen Stelle der Webseite gemacht werden kann....

3.) Das Modul konfigurieren (das ist nun wirklich sehr einfach; unter
-> Content ->Artikel -> Konfigurieren ) siehe hier:
Bild

und fertisch iss...

Also wenn ich das geschafft habe :wink:

Gruß

Jörg
Jörg Zimmermann
Köln Rondorf

benja
Beiträge: 168
Registriert: Mi 31. Aug 2005, 10:54
Wohnort: Köln
Kontaktdaten:

Beitrag von benja » Mo 5. Sep 2005, 14:25

wow, danke ;)
so habe ich es auch gemacht, aber wenn ich auf senden gehe kommt immer dieselbe seite, er spring egal was ich eingebe auf presse. die idcatard,... habe ich überprüft!!

lg
benja

Gesperrt