Subkatalog-Seite bookmarken?

Begonnen von dobra, September 22, 2010, 17:38:05

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

dobra

Hallo,

bei mehrsprachigen Shops kann der (nicht eingeloggte) Besucher ja einfach per Klick (mit <a href="http://__xchgsubcat<nr>__">)  "seine" Sprache wählen = er kommt in den Subcat mit dieser Sprache.
Wenn er aber eine Seite bookmarkt und später diesen Link aufruft, ist er immer wieder im Händler-Hauptkatalog mit deutscher Sprache.
Die Subcat-Nr. wird ja nur in der cart-Datei gespeichert - ist also bei neuem Browserstart nicht mehr verfügbar.

wie kann ich ein Cookie setzen, dass sich den einmal gewählten Subcat "merkt"?
Also ich meine jetzt bei nicht eingeloggten Besuchern!
(ich verwende Session-Cookies - falls das irgendeine Rolle spielt?)

Oder welche Möglichkeiten gibt es sonst, dass ein Besucher der eine Subcat-Seite zu den Lesezeichen hinzufügt (oder einen Link per Mail versendet) bei späterem Aufruf wieder in diesen Subcat kommt?

mfG
dobra

dobra

Hallo,

nach langem herumprobieren habe ich eine Lösung gefunden, die mit FF funktioniert  :) - aber nicht mit IE  :-\

<!--spmacro:module(Callback)
sub begin_read_template {
my $sp_subcat;
if ($ENV{'HTTP_COOKIE'}) {
     @cookies = split(/;/,$ENV{'HTTP_COOKIE'});
     foreach $cooky (@cookies) {
           ($cname,$cvalue) = split(/=/,$cooky);
             if ($cname =~ /SHOPPILOT_SUBCAT/) {
                $sp_subcat = $cvalue;
                last;
              }
           }
       }
my $subcat = ssp::get_var_subcat("sid");
my %pageinfo = ssp::getCurrentPageInfo();
my $page = ssp::pageurl() . ",,,subcat=" . $subcat;
if ($pageinfo{pagetype} == 3) {$page = ssp::pageurl() . ",,subcat=" . $subcat;}
my $x = "sub" . $subcat;

   if ($x ne "$sp_subcat" ) {
           use strict;
           use CGI qw(:standard);
           my $q = CGI->new();            
               my $cookie = $q->cookie(
               -name=>'SHOPPILOT_SUBCAT',
               -value=>$x,
               -expires=> '+10y');
               
               print redirect(
               -URL => $page,
               -COOKIE => $cookie
               );
   }    
}
-->


vielleicht kann mir da ja doch jemand helfen?
mfG
dobra

dobra

#2
nochmal Hallo,

habe jetzt eine Lösung gefunden, die in FF und IE funktioniert

<!--spmacro:module(Callback)
sub begin_read_template {
my $sp_subcat;
if ($ENV{'HTTP_COOKIE'}) {
     @cookies = split(/;/,$ENV{'HTTP_COOKIE'});
     foreach $cooky (@cookies) {
           ($cname,$cvalue) = split(/=/,$cooky);
             if ($cname =~ /SHOPPILOT_SUBCAT/) {
                $sp_subcat = $cvalue;
                last;
              }
           }
       }
my $subcat = ssp::get_var_subcat("sid");
$sp_subcat =~ s/sub//g;    
my %pageinfo = ssp::getCurrentPageInfo();
my $xpage = ssp::pageurl();
my $page = ssp::pageurl() . ",,,,subcat=" . $sp_subcat;
   if ($xpage =~ /[^,],[^,]/) {$page = ssp::pageurl() . ",,,subcat=" . $sp_subcat;}

if ($pageinfo{pagetype} == 3) {$page = ssp::pageurl() . ",,subcat=" . $sp_subcat;}
my $x = "sub" . $subcat;

   if ($subcat ne "$sp_subcat" ) {
           use strict;
           use CGI qw(:standard);
           my $q = CGI->new();            
               my $cookie = $q->cookie(
               -name=>'SHOPPILOT_SUBCAT',
               -value=>$x,
               -expires=> '+10y');
               
               print redirect(
               -URL => $page,
               -COOKIE => $cookie
               );
   }    
}
-->


ABER wenn ich jetzt den SB laufen lasse, kommt diese Meldung:
ZitatParameter:
dyn cat: ../../woll-insel-Partnershop
static cat: ../../LANG_Yarns_Partnershop
static url: http://www.wolle-online.eu/LANG_Yarns_Partnershop
start: http://www.wolle-online.eu/wip-cgi-bin/woll-insel-Partnershop/iboshop.cgi?show

URL:http://www.wolle-online.eu/wip-cgi-bin/woll-insel-Partnershop/iboshop.cgi?show0,4711471147
1. Error in requesting http://www.wolle-online.eu/wip-cgi-bin/woll-insel-Partnershop/iboshop.cgi?show0,4711471147
Errcode:302:Found
2. Error in requesting http://www.wolle-online.eu/wip-cgi-bin/woll-insel-Partnershop/iboshop.cgi?show0,4711471147
Errcode:302:Found
3. Error in requesting http://www.wolle-online.eu/wip-cgi-bin/woll-insel-Partnershop/iboshop.cgi?show0,4711471147
Errcode:302:Found
content of response: Content-type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <base href="....

da gabs doch mal ein
if (?? != 4711471147) {..
oder so ähnlich...
um sowas zu vermeiden ?
ich finde das aber nicht mehr  :(

Erledigt  -  habs doch noch gefunden
mit
if ($ssp::xxsession != 4711471147) {...

funktioniert jetzt alles wie es soll - auch der SB läuft wieder fehlerfrei  :)
mfG
dobra

ahe

MfG ahe

dobra

Hallo ahe,

Das verstehe ich jetzt nicht wirklich  ???
wenn ein Besucher im Shop ist und *irgendeine* Seite bookmarkt, soll er beim nächsten Besuch automatisch wieder *seine* Sprache (= den beim letzten Besuch gewählten Subcat) haben.

das ",,,,subcat=..." verschwindet ja sobald er im Shop die nächste Seite aufruft (= nur noch in der cart-Datei gespeichert die ja beim nächsten Browserstart nicht mehr verfügbar ist)

wenn ich den Subcat mit
http://www.shoppilot.de/cgi-bin/demoshops/ep_tabshop_ml/iboshop.cgi?show0,,,,subcat=5
wechsle und dann z.B. die Seite
http://www.shoppilot.de/cgi-bin/demoshops/ep_tabshop_ml/iboshop.cgi?showd100!0,,d_t_2
als Lesezeichen speichere und mit neuem Browser aufrufe, bin ich im deutschen Subcat.

P.S.: funktioniert SO nur mit Session-ID wenn die Lebensdauer der Cart-Datei noch nicht abgelaufen ist  ;)
(bei mir aber garnicht, da ich ja Session-Cookies verwende)
mfG
dobra