Shopsystem ShopPilot Shoploesung Diskussionen und Infos zum Shopsystem ShopPilot
Willkommen Gast. Bitte einloggen oder registrieren.
Mai 22, 2012, 07:23:42

Einloggen mit Benutzername, Passwort und Sitzungslänge
Suche:     Erweiterte Suche
5257 Beiträge in 1422 Themen von 333 Mitglieder
Neuestes Mitglied: pje
* Übersicht Hilfe Login Registrieren
+  Diskussionen und Infos zum Shopsystem ShopPilot
|-+  ShopPilot
| |-+  Shopbetrieb
| | |-+  Subkatalog-Seite bookmarken?
0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: Subkatalog-Seite bookmarken?  (Gelesen 996 mal)
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« 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?

Gespeichert

dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« Antwort #1 am: September 23, 2010, 22:13:21 »

Hallo,

nach langem herumprobieren habe ich eine Lösung gefunden, die mit FF funktioniert  Smiley - aber nicht mit IE  Undecided

Code:
<!--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?
Gespeichert

dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« Antwort #2 am: September 24, 2010, 00:40:16 »

nochmal Hallo,

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

Code:
<!--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  Sad

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

funktioniert jetzt alles wie es soll - auch der SB läuft wieder fehlerfrei  Smiley
« Letzte Änderung: September 24, 2010, 00:57:57 von dobra » Gespeichert

ahe
Global Moderator
Sr. Member
*****

Lob: 19
Offline Offline

Beiträge: 407


« 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.
Gespeichert

MfG ahe
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1182


WWW
« Antwort #4 am: September 24, 2010, 09:05:09 »

Hallo ahe,

Das verstehe ich jetzt nicht wirklich  Huh
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  Wink
(bei mir aber garnicht, da ich ja Session-Cookies verwende)
Gespeichert

Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  

mysitelist Impressum Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS