IBO - Vertriebspartner in Österreich             
ShopPilot.at
zurück Home     ShopPilot.at Tutorials Scripte für diverse Aufgaben Seite empfehlen Seite drucken    teilen
Tipps - Tricks - Lösungen

Thema: wechselnde Artikel auf der Starseite
Autor: ahe

Aufgabe:
Wenn ein Kunde den Shop betritt, soll er zufällige Artikel angezeigt bekommen.
Funktioniert natürlich so nur im dynamischen Shop

Lösung:
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 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.

<!--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{Details	
	};
	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{In Warenkorb};
	main::mprint($str);
}

sub simage {
	my $imglink = "";
	my $pagenr = ssp::get_var_article("ipagenr", $curIndex);
	my $itemid = ssp::get_var_article("itemid", $curIndex);
	my $str = qq{$imglink};
	main::mprint($str);
}
-->

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>



Wenn Sie fragen zum Artikel haben, bitte im Support-Forum stellen.