Hallo,
Aufgabe:
Die zuletzt angeschauten Artikel sollen angezeigt werden
(funktioniert ohne login und JS)
Lösung:
in HEADbereich der Detailseiten
<!--spmacro:module(Callback)
sub begin_read_template {
if ($ssp::xxsession != 4711471147) {
my $besuchteSeiten = ssp::cart_read_var('compseite');
if ($besuchteSeiten eq $ssp::undefined) { $besuchteSeiten = ""; }
my $aktuelleSeite= ssp::get_var_article('itemid');
if ($besuchteSeiten =~ m/$aktuelleSeite!_!/) {$alleSeiten = $besuchteSeiten}
else { $alleSeiten = $aktuelleSeite . "!_!" . $besuchteSeiten; }
ssp::cart_write_var('compseite', $alleSeiten);
}
}
-->
Auf der (den) Seiten, wo die Artikel angezeigt werden soll(en) im BODYbereich
(kann auf allen Seiten, jeder beliebigen Seite oder auch auf einer extra Infoseite sein)
<!--spmacro:module(show)
sub artikel {
my $Artikel = ssp::cart_read_var('compseite');
my (@Liste) = split('!_!', $Artikel);
my $str;
foreach my $out(@Liste) {
$str .= "$out,";
}
ssp::embedded("csearch","xyz.txt",$str . ":10000000");
}
-->
xyz.txt => beliebige txt Datei für die Anzeige (s. mini_cross.txt)
An der Stelle, wo die gesehenen Artikel anzeigen werden sollen __show::artikel__
(der entscheidende Tipp, wie ich das Script bauen kann, kam wieder von ahe - DANKE)
Nachtrag:
Wenn man nur eine bestimmte Anzahl - also z.B. die letzen 10 angeschauten Artikel ausgeben will, zusätzlich auf den Seiten auf denen die zuletzt gesehenen Artikel angezeigt werden im HEAD-Bereich diesen Code einfügen
<!--spmacro:module(Callback)
sub begin_read_template {
if ($ssp::xxsession != 4711471147) {
my $besuchteSeiten = ssp::cart_read_var('compseite');
my(@Liste) = split('!_!', $besuchteSeiten);
if ($#Liste >= 10) { $#Liste = 9;
$besuchteSeiten = join('!_!', @Liste); }
ssp::cart_write_var('compseite', $besuchteSeiten);
}
}
-->
Bei "if ($#Liste >= 10) { $#Liste = 9;" kann die Anzahl eingestellt werden.
(die 2. Zahl muß um 1 kleiner angegeben werden, da das erste Element 0 und nicht 1 ist)
ursprünglicher Code editiert
(doppelte Artikelnummern aus Liste entfernen war zu ungenau - jetzt wird auch zwischen 123_1 und 123_1_1 unterschieden)
ACHTUNG ! - funktioniert nicht auf statischen Seiten
Linkback: https://www.shoppilot.net/pf/index.php?topic=960.0