Shopsystem ShopPilot

ShopPilot => SSP - Shop Server Pages => Thema gestartet von: dobra am September 13, 2008, 07:48:31

Titel: leerer Warenkorb
Beitrag von: dobra am September 13, 2008, 07:48:31
Hallo,

irgendwie hat es mich immer gestört, daß ein leerer WK nicht besonders attraktiv ist....

(http://www.woll-insel.at/Bilder/SP-Forum/WKleer1.gif)

Die Lösung:
man blendet den WK mit ssp aus und schreibt einen beliebigen Text rein, wenn er leer ist
und eine leere Warenkorbseite schaut dann z.B. so aus

(http://www.woll-insel.at/Bilder/SP-Forum/WKleer2.gif)

nachdem man (oder ich kann's zumindest nicht) keine Conditional Comments in den qq-Bereich schreiben kann, sind hierfür 2 subs notwendig.

Code in die WK-Seite schreiben
(hier als Beispiel der Code vom Styleshop)
<!--spmacro:module(show)
my $sum = ssp::get_wkprodsum();
sub wkhead {
my $out;
if (length($sum)) {
$out = qq|
<tr>
<td colspan="6">
<div align="left">
<table align="left">
<tr>
<td style="text-align:left;">Lieferung nach</td>
<td style="text-align:left;">__zonen__</td>
</tr>
<tr>
<td style="text-align:left;">Zahlung per</td>
<td style="text-align:left;">__zahlart__</td>
</tr>
</table>
</div>
</td>
</tr>
<tr><td colspan="6">&nbsp;</td></tr>
<tr>
<td></td>
<td class="colheader" style="text-align:left;">Produkt-Nr.</td>
<td class="colheader" style="text-align:left;">Bezeichnung</td>
<td class="colheader">Stückzahl</td>
<td class="colheader">Einzelpreis</td>
<td class="colheader">Gesamtpreis</td>
</tr>
|;
}
main::mprint $out;
}

sub wkfoot {
my $out;
if (length($sum)) {
$out = qq|
<tr>
<td colspan="6" class="smallnoborder">&nbsp;</td>
</tr>
<tr>
<td colspan="4" class="smallnoborder"></td>
<td nowrap class="small">__mindertext__</td>
<td nowrap class="small">__minder__</td> </tr>
<tr>
<td colspan="4" class="smallnoborder"></td>
<td nowrap class="small">__versandtext__</td>
<td nowrap class="small">__versand__</td>
</tr>
<tr>
<td colspan="4" class="smallnoborder"></td>
<td nowrap class="small">__zahlarttext__</td>
<td nowrap class="small">__zahlartbetrag__</td>
</tr>
<tr>
<td colspan="4" class="smallnoborder"></td>
<td nowrap class="small">__rabatttext__</td>
<td nowrap class="small">__rabatt__</td>
</tr>
<tr>
<td colspan="6" class="smallnoborder">&nbsp;</td>
</tr>
<tr>
<td colspan="4" style="background-color:#ffffff;"></td>
<td align="right" class="box_table_content stdborder_all"><b>Gesamtpreis:</b></td>
<td align="right" class="box_table_content stdborder_all"><b>__gesamtpreis__</b></td>
</tr>
<tr>
<td colspan="6" align="right" style="background-color:#ffffff;"><br>Der Gesamtpreis enthält <b>__steuer__ __steuertext__</b><br>&nbsp;</td>
</tr>
<tr>
<td colspan="6">
<div align="center">
<table cellspacing="20" align="center">
<tr>
<td>__bestellen__</td>
<td>__sbestellen__</td>
</tr>
</table>
</div>
</td>
</tr>
|;
}
else
{  $out = qq|
<tr>
<td   style="text-align:center;"> <br>Sie haben keine Artikel im Warenkorb<br><br></td>
</tr>
|;
}
main::mprint $out;
}
-->


sub wkhead - hier packt man den HTML-Code der VOR dem <!--spmacro:loopitem--> steht und ausgeblendet werden soll hinein und ersetzt diesen Teil durch
__show::wkhead__
sub wkfoot - hier kommt der HTML-Code hinein, der NACH <!--spmacro:enditem--> steht.
im "else" Teil kommt dann der Text, der bei leerem WK angezeigt werden soll (kann natürlich noch mit "class="..."" formatiert werden)

Der HTML-Teil im WK schaut dann im Beispiel so aus:
<table class="cart" width="100%">
<tr>
<td colspan="6" class="header">Ihr Warenkorb</td>
</tr>
__show::wkhead__
<!--spmacro:loopitem-->
...
...
<!--spmacro:enditem-->
__show::wkfoot__
</table>