Ausgabe von Suchergebnissen in einen anderen Container
Ausgabe von Suchergebnissen in einen anderen Container
Hallo alle zusammen,
ich bin grad dabei meinen ersten Versuch mit Contenido zu wagen und bin bisher ganz gut weit gekommen. Doch jetzt hab ich ein kleines Problem. Ich hab das Volltextsuche Modul eingebaut und es einem Container zugewiesen. Dieser ist in einer rechten Seitenleiste. Die Ausgabe erfolgt direkt unter dem Such-Form. Ich möchte aber die Ausgabe gerne in meinem mittleren Bereich ausgeben. Die Seite ist ohne Frames, nur durch Tabellen realisiert und dadurch "relativ" komplex.
Nach meiner Vermutung müsste die Seite neu aufgerufen werden und die Augabe der Suchergebnisse in einem anderen Container erfolgen.
Wie kann man das am besten realisieren???
Vielen Dank!
ich bin grad dabei meinen ersten Versuch mit Contenido zu wagen und bin bisher ganz gut weit gekommen. Doch jetzt hab ich ein kleines Problem. Ich hab das Volltextsuche Modul eingebaut und es einem Container zugewiesen. Dieser ist in einer rechten Seitenleiste. Die Ausgabe erfolgt direkt unter dem Such-Form. Ich möchte aber die Ausgabe gerne in meinem mittleren Bereich ausgeben. Die Seite ist ohne Frames, nur durch Tabellen realisiert und dadurch "relativ" komplex.
Nach meiner Vermutung müsste die Seite neu aufgerufen werden und die Augabe der Suchergebnisse in einem anderen Container erfolgen.
Wie kann man das am besten realisieren???
Vielen Dank!
Als learning-by-doing-Laie würd mir folgendes zusammenbasteln und die Suchergebnisse in einen String schreiben und den an anderen Stelle ausgeben. Also bspw. statt echo "blablaa Suchergebnisse blabla" im Suchmodul, bloß $suchergebnis = "blablaa Suchergebnisse blabla" und an der Stelle wo es hin soll dann echo $suchergebnis.
Wenn der String leer ist, wird nichts ausgegeben. Der String kann auch das komplette Ausgabe-Layout (Tabellen, etc.) enthalten.
Wie sehen das die Profis?
Wenn der String leer ist, wird nichts ausgegeben. Der String kann auch das komplette Ausgabe-Layout (Tabellen, etc.) enthalten.
Wie sehen das die Profis?
Alles über Final Fantasy 7 und 9:
www.Zeitzumspielen.de
Veranstaltungsmanagement an der FH Osnabrück:
www.VamosOnline.de
www.Zeitzumspielen.de
Veranstaltungsmanagement an der FH Osnabrück:
www.VamosOnline.de
dann hast du das Problem, dass du den Content der Seite hast und dann die Suchergebnisse oder umgedreht...
was man natürlich auch machen kann ist, dass man in den Layouts die suchstring-abfrage und den content in eine else-if-abfrage packt ... entweder die suchabfrage (wenn gesetzt) oder den content...
was man natürlich auch machen kann ist, dass man in den Layouts die suchstring-abfrage und den content in eine else-if-abfrage packt ... entweder die suchabfrage (wenn gesetzt) oder den content...
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
Ja, ich glaube das mit der Varible und der If ... else Anweisung ist ne gute Idee. Ich hab auch mal ein paar Tage drüber geschlafen und da ist mir eingefallen, dass ja die Seite neu geladen wird. Ich dachte zwar an eine Java-Script Anweisung, aber warum einfach mit PHP wenn es auch umständlich geht
Ich werd mich gleich mal ransetzen und es mal ausprobieren. Wenn die Seite dann mal online ist, könnt Ihr ja das Ergebnis mal ansehen. Link folgt hier.
Vielen lieben Dank an Euch!
Bis bald
Ich werd mich gleich mal ransetzen und es mal ausprobieren. Wenn die Seite dann mal online ist, könnt Ihr ja das Ergebnis mal ansehen. Link folgt hier.
Vielen lieben Dank an Euch!
Bis bald
sorry dass ich mich erst jetzt melde...
ich hatte anfangs mal vor, zu dem Suchmodul auch ein Quicksearch-Modul einzubauen. Also einfach nur das Suchfeld.
letztlich teilst du das Suchmodul nur in zwei Teile:
Teil 1 (nur Eingabefeld):
Teil 2 (das Suchmodul)
Nennen wir den ersten Teil mal "Eingabe" und den zweiten Teil mal "Ausgabe". Du kannst jetzt Eingabe und Ausgabe auf jeder Seite einbinden. Bei Frameset musst du entsprechend das Formular-Ziel ändern.
Durch die IF-Abfrage am Anfang des Ausgabe-Moduls erfolgt nur dann eine Ausgabe, wenn auch was in die Eingabe eingegeben wurde. Somit kannst du deine Suchfunktion überall anbieten.
Alternativ kannst du natürlich auch im Eingabe-Modul den FORM-Link ändern auf die normale front_content.php und dann idcat, idside und subid per hidden-Feld übergeben. Somit kannst du die Ausgabe der Suchergebnisse z.b. auf einer Unterseite einbauen. Wenn du die darüberliegende Kategorie noch versteckst bzw. Oflline schaltest, ist die Seite im normalen Betrieb unsichtbar.
Ich hoffe das klappt so wie ichs jetzt geschrieben habe - ich konnte es grad nich testen.
ich hatte anfangs mal vor, zu dem Suchmodul auch ein Quicksearch-Modul einzubauen. Also einfach nur das Suchfeld.
letztlich teilst du das Suchmodul nur in zwei Teile:
Teil 1 (nur Eingabefeld):
Code: Alles auswählen
Kein Input
OUTPUT:
echo "<center><table width=\"80%\" border=\"1\"><tr><td align=center>
<form name=\"suche\" method=\"POST\" action=\"".$auth->url()."\" >
<input type=\"text\" size=\"9\" style=\"width:120px\" name=\"suche\" value=\"$suche\">
<INPUT TYPE=\"submit\" VALUE=\"Suchen\"></FORM></td></tr></table>";
Code: Alles auswählen
INPUT:
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>";
OUTPUT:
if($suche){
echo "<center><table width=\"80%\" border=\"1\">";
$suche = trim($suche);
$suchregexp = "(".str_replace(" ",")|(",$suche).")";
$s=ereg_replace("ü", "%FC",strtolower($suche));
$s=ereg_replace("ä", "%E4",$s);
$s=ereg_replace("ö", "%F6",$s);
$suchregexp .= "|$s";
$suchliste = explode(" ",strtolower($suche));
$sql = "SELECT A.title AS title,A.idside AS idside,A.summary AS comment,B.idcat AS idcat,C.parentid AS parentid,D.value AS content,A.idsidelang AS sideid ";
$sql .= "FROM $cfgTab_side_lang AS A,$cfgTab_cat_side AS B,$cfgTab_cat AS C,$cfgTab_content AS D ";
$sql .= "WHERE A.idside=B.idside AND A.idsidelang=D.idsidelang 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')";
$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 $cfgTab_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&lang=$lang&parent=".$db->f("parentid")."&subid=".$db->f("parentid")."&idcat=".$db->f("idcat")."&idside=".$db->f("idside")."";
$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,100)."...";
};
for($x=0;$x<count($suchliste);$x++){
$hits[$num] += substr_count(strtolower($db->f("title")), $suchliste[$x]) +
substr_count(strtolower($db->f("comment")), $suchliste[$x]) +
substr_count(strtolower($db->f("content")), $suchliste[$x]);
};
};
if(count($hits) > 0){
$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 align=left><a href=\"".$results[$i][link]."\" id=\"fontCMS_VALUE[0]\"";
if("CMS_VALUE[3]"){echo "TARGET=\"CMS_VALUE[3]\" ";};
echo ">".$results[$i][title]."</a> <span id=\"fontCMS_VALUE[1]\">(".$hits[$i]." Treffer)<BR>";
echo $results[$i][text]."</span></td></tr>";
};
} else { echo "<tr><td align=center>Keine passenden Seiten gefunden</td></tr>"; };
} else { echo "<tr><td align=center>Keine passenden Seiten gefunden</td></tr>"; };
echo "</table></center>";
};
Durch die IF-Abfrage am Anfang des Ausgabe-Moduls erfolgt nur dann eine Ausgabe, wenn auch was in die Eingabe eingegeben wurde. Somit kannst du deine Suchfunktion überall anbieten.
Alternativ kannst du natürlich auch im Eingabe-Modul den FORM-Link ändern auf die normale front_content.php und dann idcat, idside und subid per hidden-Feld übergeben. Somit kannst du die Ausgabe der Suchergebnisse z.b. auf einer Unterseite einbauen. Wenn du die darüberliegende Kategorie noch versteckst bzw. Oflline schaltest, ist die Seite im normalen Betrieb unsichtbar.
Ich hoffe das klappt so wie ichs jetzt geschrieben habe - ich konnte es grad nich testen.
Module zum anschauen:
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net
Der-Dirigent: http://der-dirigent.de
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net
Der-Dirigent: http://der-dirigent.de
damit meinte ich , dass man den oberen Teil so gestalten kann:
das hat quasi den Effekt, dass das Formular umgeleitet wird auf die angegebene Seite. Dort kannst du dann das Ausgabe-Modul platzieren.
id_cat und id_side bekommst du im Backend in der Seitenübersicht raus, indem du mal über einen Link zu der entsprechenden Seite fährst. Die Subid wird automatisch definiert, weil das meist die idcat ist, von der du kommst. subid wird nur für das Standard-Hauptmenü benötigt.
Code: Alles auswählen
$ziel_idside = 10;
$ziel_idcat = 2;
$ziel_subid = $idcat;
echo "<center><table width=\"80%\" border=\"1\"><tr><td align=center>
<form name=\"suche\" method=\"POST\" action=\"front_content.php\" >
<input type=\"text\" size=\"9\" style=\"width:120px\" name=\"suche\" value=\"$suche\">
<input type=\"hidden\" name=\"idcat\" value=\"$ziel_idcat\">
<input type=\"hidden\" name=\"idside\" value=\"$ziel_idside\">
<input type=\"hidden\" name=\"subid\" value=\"$ziel_subid\">
<INPUT TYPE=\"submit\" VALUE=\"Suchen\"></FORM></td></tr></table>";
id_cat und id_side bekommst du im Backend in der Seitenübersicht raus, indem du mal über einen Link zu der entsprechenden Seite fährst. Die Subid wird automatisch definiert, weil das meist die idcat ist, von der du kommst. subid wird nur für das Standard-Hauptmenü benötigt.
Module zum anschauen:
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net
Der-Dirigent: http://der-dirigent.de
bei Sven: http://contenido-module.de
bei Pulk : http://spielwiese.pulk.net
Der-Dirigent: http://der-dirigent.de
Suche Modul erweitert
Hallo!
ich habe die Version etwas erweiter um nicht die Seite suchen zu müssen per Maus
hier meine Quicksuche!
Ich habe einen neuen Strukturbaum angelegt mit den Hidden Seiten und leite die Suchergebnisse auf die Seite Suchen um, die unter "extern" liegen.
Ich habe alles mit CSS formatiert, so kann man das Design gut anpassen
Viel Spass
Jörg
ich habe die Version etwas erweiter um nicht die Seite suchen zu müssen per Maus
hier meine Quicksuche!
Code: Alles auswählen
TITEL: Suche Quick
INPUT:
echo "<select name=\"CMS_VAR[1]\" size=\"7\">";
if ("CMS_VALUE[1]" != 0) {echo "<option value=\"0\">--- aktuell ---</option>";} else {echo "<option value=\"0\" selected>--- aktuell ---</option>";}
$sql = "SELECT A.idcat, A.level, C.name FROM $cfgTab_cat_tree AS A, $cfgTab_cat AS B, $cfgTab_cat_lang AS C WHERE A.idcat=B.idcat AND B.idcat=C.idcat AND C.idlang='$lang' AND B.idclient='$client' ORDER BY A.idtree";
$db->query($sql);
while ($db->next_record()) {$spaces = "";
for ($i=0; $i<$db->f("level"); $i++) {
$spaces = $spaces . " ";}
if ( $db->f("idcat") == "CMS_VALUE[1]") {echo "<option value=\"".$db->f("idcat")."\" selected>$spaces ".$db->f("name")."</option>";} else {echo "<option value=\"".$db->f("idcat")."\">$spaces ".$db->f("name")."</option>";}}
echo " </select>";
OUTPUT:
$ziel_idcat = "CMS_VALUE[1]";
$ziel_subid = $idcat;
echo "<form name=\"suche\" method=\"POST\" action=\"front_content.php\">
<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tr><td>
<input type=\"text\" size=\"9\" name=\"suche\" value=\"$suche\" id=\"sucheinputquick\"></td><td><INPUT TYPE=\"image\" SRC=\"".$cfgPathFrontendImg."suche.gif\" WIDTH=\"18\" HEIGHT=\"19\" BORDER=\"0\" VALUE=\"Suchen\" id=\"suchegoquick\"></td></tr></table>
<input type=\"hidden\" name=\"idcat\" value=\"$ziel_idcat\">
<input type=\"hidden\" name=\"subid\" value=\"$ziel_subid\">
</FORM>";
Ich habe alles mit CSS formatiert, so kann man das Design gut anpassen
Viel Spass
Jörg