Hallo emil,
die Lösung zu Ihrem Problem ist folgende:
Diesen SSP-Code in die betreffende Vorlage kopieren und einbauen.
<!--spmacro:module(randomitem)
%RANDITEMS = ();
$curIndex = -1;
srand();
sub randomize {
my $itemcount = $_[1];
my $ok = 0;
my $number = 0;
my $check = 0;
while (!$ok) {
if ($check > 200) { $curIndex = -1; return; }
$number = int(rand($itemcount+1));
$ok = !(defined $RANDITEMS{$number});
if ($ok) {
$RANDITEMS{$number} = 1;
$curIndex = $number;
}
$check = $check + 1;
}
}
sub produkt {
main::mprint(ssp::get_var_article("idescription", $curIndex));
}
sub ergaenz1 {
main::mprint(ssp::get_var_article("ergaenz1", $curIndex));
}
sub preis {
my $str = ssp::get_var_article("preis", $curIndex);
if (length($str)) { $str .= " €"; }
main::mprint($str);
}
sub detail {
my $pagenr = ssp::get_var_article("ipagenr", $curIndex);
my $itemid = ssp::get_var_article("itemid", $curIndex);
my $str = qq{<a href="__xxpath__?showd$pagenr!0,__xxsession__,$itemid">Details</a>
};
main::mprint($str);
}
sub id {
if (!ssp::get_var_article("preis", $curIndex)) { return; }
my $wkmin = ssp::get_var_article("WKMIN", $curIndex);
my $wkpack = ssp::get_var_article("WKPACK", $curIndex);
if (($wkmin eq 'undefined') || ($wkmin == " ")) { $wkmin = "1"; }
if (($wkpack eq 'undefined') || ($wkpack == " ")) { $wkpack = "1"; }
my $pagenr = ssp::get_var_article("ipagenr", $curIndex);
my $itemid = ssp::get_var_article("itemid", $curIndex);
my $item_count = $itemid . ":" . $wkpack;
my $str = qq{<a href="__xxpath__?placecart__xxpgid__,__xxsession__,$item_count">In Warenkorb</a>};
main::mprint($str);
}
sub simage {
my $imglink = "<img border=\"0\" src=\"";
$imglink .= ssp::get_var_article("iimage", $curIndex);
$imglink .= "\">";
my $pagenr = ssp::get_var_article("ipagenr", $curIndex);
my $itemid = ssp::get_var_article("itemid", $curIndex);
my $str = qq{<a href="__xxpath__?showd$pagenr!0,__xxsession__,$itemid">$imglink</a>};
main::mprint($str);
}
-->
Hinweise:
Voraussetzung ist, dass die gewünschten Artikel (idealerweise als Verknüpfung) auf der Startseite liegen.
Desweiteren sollten natürlich mehr Artikel dort eingetragen sein als man ausgeben möchten. Somit sind die Kombinationsmöglichkeiten viel grösser.
In der Routine wird selbstverständlich ausgeschlossen, dass ein Artikel mehrmals gleichzeitig dargestellt wird.
Im obigen Code sind exemplarisch einige der wichtigsten Identifier durch SSP-Funktionen ersetzt worden.
Weitere können analog davon abgeleitet werden.
Die ganze Funktionalität ist nicht auf die Startseite beschränkt, sondern kann auf jeder Seite benutzt werden für die Artikel(verknüpfungen) definiert sind.
Aufruf:
Die einzelnen Identifier werden wie die Standardidentifier aufgerufen. Hierbei ist nur zu beachten, dass bevor ein neuer Artikel ausgegeben wird, einmal der Identifier
__random::randomize__
aufgerufen werden muss, um den nächsten Artikel auszuwählen.
Beispiel:
Nachfolgend ein Beispiel um 2 Artikel auf einer Seite anzuzeigen.
<TABLE>
__randomitem::randomize__
<TR>
<TD rowspan="5">__randomitem::simage__</TD>
<TD colspan="2">Angebot </TD></TR>
<TR>
<TD colspan="2">__randomitem::produkt__</TD></TR>
<TR>
<TD colspan="2">__randomitem::ergaenz1__ </TD></TR>
<TR>
<TD colspan="2">__randomitem::preis__</TD></TR>
<TR>
<TD>__randomitem::detail__ </TD>
<TD>__randomitem::id__ </TD></TR>
__randomitem::randomize__
<TR>
<TD rowspan="5">__randomitem::simage__</TD>
<TD colspan="2">Angebot </TD></TR>
<TR>
<TD colspan="2">__randomitem::produkt__</TD></TR>
<TR>
<TD colspan="2">__randomitem::ergaenz1__ </TD></TR>
<TR>
<TD colspan="2">__randomitem::preis__</TD></TR>
<TR>
<TD>__randomitem::detail__ </TD>
<TD>__randomitem::id__ </TD></TR>
</TABLE>