Autor Thema: Subkatalog-Seite bookmarken?  (Gelesen 5404 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Subkatalog-Seite bookmarken?
« am: September 22, 2010, 17:38:05 »
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?



Linkback: https://www.shoppilot.net/pf/index.php?topic=1473.0
mfG
dobra

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Subkatalog-Seite bookmarken?
« Antwort #1 am: September 23, 2010, 22:13:21 »
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?

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
die Lösung: Subkatalog-Seite bookmarken?
« Antwort #2 am: September 24, 2010, 00:40:16 »
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:
Zitat
Parameter:
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  :)
« Letzte Änderung: September 24, 2010, 00:57:57 von dobra »

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: Subkatalog-Seite bookmarken?
« Antwort #3 am: September 24, 2010, 08:49:47 »
Hallo dobra,

das sollte auch einfacher gehen.
Siehe Demoshop Tabshop_ml.

Startseite deutsch
http://www.shoppilot.de/cgi-bin/demoshops/ep_tabshop_ml/iboshop.cgi?show0,,,,subcat=2

Startseite englisch
http://www.shoppilot.de/cgi-bin/demoshops/ep_tabshop_ml/iboshop.cgi?show0,,,,subcat=5

Also einfach nur subcat=... anhängen.
MfG ahe

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: Subkatalog-Seite bookmarken?
« Antwort #4 am: September 24, 2010, 09:05:09 »
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)


xx
Subkatalog erstellen

Begonnen von rehnus

1 Antworten
7096 Aufrufe
Letzter Beitrag Juli 11, 2004, 19:47:43
von jg
xx
Subkatalog 1:1 importieren

Begonnen von jg

10 Antworten
11462 Aufrufe
Letzter Beitrag August 14, 2002, 12:52:03
von jg
xx
Subkatalog zuweisen

Begonnen von karathan

2 Antworten
5027 Aufrufe
Letzter Beitrag Januar 24, 2005, 16:46:47
von karathan
xx
SubKatalog (Fehler?)

Begonnen von Andi

3 Antworten
7210 Aufrufe
Letzter Beitrag August 13, 2002, 01:08:59
von hop