Hallo,
Aufgabe:
Bei den Suchoptionen sollen nicht bestimmte DB-Feldern (wie in den Demoshops mit hersteller.ipl "Hersteller, Beschreibung") in einer Listbox vorbelegt werden, sondern die Shop-Kategorien.
Lösung:
<!--spmacro:module(kategorie)
sub suche {
my $subcat = &main::get_subcat();
my $old = ssp::get_var_form("suchort");
my $PAGE = ssp::db_get_prefix() . "PAGE";
my $PSCAT = ssp::db_get_prefix() . "PSCAT";
#Abfragen wenn kein Subkatalog vorhanden
if ($subcat == -1){
$sql = qq|SELECT DISTINCT TITLE, PGID FROM $PAGE WHERE PPGID = 0|;
}
else {
#Abfragen wenn Subkataloge vorhanden
$sql = qq|SELECT DISTINCT $PAGE.TITLE, $PAGE.PGID, $PSCAT.PGID FROM $PAGE INNER JOIN $PSCAT ON $PAGE.PGID = $PSCAT.PGID WHERE
$PSCAT.SCID=$subcat AND $PAGE.PPGID = 0|;
}
my $read = ssp::readSQLData($sql, "_TITLE", "_PGID");
my $out = qq|<select name="suchort">
<option value="">alle Kategorien</option>|;
for (my $i = 0; $i < $read; $i++) {
my $titel = ssp::get_var_db("_TITLE", $i);
my $pgid = ssp::get_var_db("_PGID", $i);
my $sel = " ";
if ($pgid eq $old) { $sel = " selected ";}
$out .= qq|<option value="$pgid" $sel>$titel</option>
|;
}
$out .= qq|</select>|;
main::mprint $out;
return "noinc";
}
-->
Mit __kategorie::suche__ wird dann eine Auswahlbox mit allen Kategorien der 1. Ebene im Shop erzeugt.
<form <form method="post" action="__xsuchen__">
__kategorie::suche__
<input name="suchbegriff" type=text>
<input name="suchen" type=submit value="Go">
</form>
(http://www.woll-insel.at/Bilder/SP-Forum/katsuchen.jpg)