Autor Thema: zuletzt angesehene Artikel anzeigen  (Gelesen 9251 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
zuletzt angesehene Artikel anzeigen
« am: Oktober 09, 2007, 16:42:32 »
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
« Letzte Änderung: Februar 28, 2009, 16:09:20 von hop »
mfG
dobra


lamp
zuletzt gesehene Artikel aus Demoshop in bestehendes Projekt einbauen

Begonnen von dobra

0 Antworten
3008 Aufrufe
Letzter Beitrag März 22, 2009, 14:21:07
von dobra
xx
je nach Tageszeit andere Artikel anzeigen

Begonnen von dobra

0 Antworten
4905 Aufrufe
Letzter Beitrag Februar 16, 2010, 19:45:46
von dobra
xx
Zuletzt gesehen

Begonnen von Joachim

1 Antworten
3984 Aufrufe
Letzter Beitrag Dezember 08, 2009, 16:35:18
von dobra
xx
Zufallsbild anzeigen

Begonnen von 1nelly1

2 Antworten
6620 Aufrufe
Letzter Beitrag Februar 01, 2011, 13:37:36
von 1nelly1