Neu Shopsprache ändern

Mojo78

Aktives Mitglied
6. März 2012
83
8
Hi Leute,
ich möchte in einem Plugin die Shopsprache ändern. Ich habe schon einiges im HOOK_SMARTY_INC versucht:
In Bootstrap.php -> class Bootstrap extends Bootstrapper -> public function boot(Dispatcher $dispatcher): void
Code:
$dispatcher->listen('shop.hook.' . \HOOK_SMARTY_INC, static function (array $args) use ($plugin) {
            if (Request::verifyGPDataString('versandrechnerBTN') === 'save') {
                
                $langISO = Request::verifyGPDataString('lang'); // $langISO = "ger" oder "eng"
                $lh= LanguageHelper::getInstance();
                $kSprache = $lh->byISO[$langISO]->kSprache; 
                $kSprachISO= $lh->byISO[$langISO]->kSprachISO; 

//Erst habe ich versucht die Session-Variablen zu verändern, die ich in der Session aufgefunde habe, nachdem ich die Standard-JTLShop-Sprach-Schalter verwendet habe. Absolut garkein Effekt. Auch nicht nach Reload -> 
                $_SESSION["kSprachISO"] = $kSprachISO;
                $_SESSION["kSprache"] = $kSprache;
                $_SESSION['cISOSprache'] = $langISO;

//dann z.B $lh->setzeSprache getestet -> das scheint nur den aktuellen Aufruf zu übersetzen:
                //$lh->setzeSprache($langISO); 

//dann über ne Shop-Instanz setLanguage() versucht -> kein Effekt
                //$shop=Shop::getInstance();
                //$shop->setLanguage($kSprache, $langISO);

// dann static probiert -> auch kein Effekt aber eig. kein Wunder
                Shop::Lang()->setLanguage($kSprache, $langISO);

Keine Ahnung, was ich falsch mache. Brauche ich für sowas nen anderen hook, der vielleicht früher eingreift? Weiß jemand, wie man die Sprache im Plugin ändert?

Ciao, Jörg
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
8.317
2.511
Berlin
Firma
css-umsetzung
Kannst du mal bitte erklären was du da wirklich machst, bzw. wozu.

Wenn der Smarty Hook aufgerufen wird, ist bereits alles gelaufen was relevant ist.
Aber ich frage mich eben "warum, möchtest du da mit den Sprachen etwas ändern, das verwaltet der Shop doch selbst.
 

Mojo78

Aktives Mitglied
6. März 2012
83
8
vielen Dank für die Antwort. Ich will mit einem eigenem <select> - Element die Sprache ändern. Aber ich war wohl etwas auf dem Holzweg. Ich habe das nun völlig anders gelöst und zwar per jquery beim Ändern des Länder-Auswahl - <select> das action - Attribut des Formulars auf die URL der jeweiligen Sprache gesetzt, damit beim absenden des Formulars einfach auf die richtige Sprache geleitet wird. Das funktioniert anscheinend tadellos :)