Shopsystem ShopPilot

ShopPilot => SSP - Shop Server Pages => SSP Bibliothek => Thema gestartet von: dobra am April 21, 2014, 21:28:21

Titel: Suche in Kategorien
Beitrag von: dobra am April 21, 2014, 21:28:21
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)