Seite 1 von 2
volltextsuche
Verfasst: Mi 31. Aug 2005, 11:01
von benja
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
Verfasst: Sa 3. Sep 2005, 07:57
von emergence
ä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..
Verfasst: Mo 5. Sep 2005, 07:39
von benja
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
Verfasst: Mo 5. Sep 2005, 08:14
von zimboo
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> (".$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
Verfasst: Mo 5. Sep 2005, 08:32
von benja
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
Verfasst: Mo 5. Sep 2005, 10:02
von zimboo
In der Tabelle "con_cat_art"
hatte mich auch etwas an Zeit gekostet das herauszufinden...
Loß et dir joot jonn
Grüße
Jörg
Verfasst: Mo 5. Sep 2005, 10:27
von benja
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
Verfasst: Mo 5. Sep 2005, 10:32
von zimboo
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?????
Verfasst: Mo 5. Sep 2005, 10:34
von benja
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.
Verfasst: Mo 5. Sep 2005, 10:45
von zimboo
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" ...
okay???
Gruß
Jörg
Nitt verzweifele - et weed schon joot weede

Verfasst: Mo 5. Sep 2005, 10:51
von benja
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
Verfasst: Mo 5. Sep 2005, 12:08
von zimboo
gibst Du etwa auf???
Nee, sach mal verstehst Du irgendwas denn nicht?
Gruß
Jörg
Verfasst: Mo 5. Sep 2005, 12:20
von benja
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
Verfasst: Mo 5. Sep 2005, 13:12
von zimboo
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:
und fertisch iss...
Also wenn ich das geschafft habe
Gruß
Jörg
Verfasst: Mo 5. Sep 2005, 14:25
von benja
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