auf Variable $sCountry in Templatedatei ajax_cart.tpl zugreifen

Hi,

ich schreibe ein Plugin, dass vor allem die Templatedatei ajax_cart.tpl manipuliert.

Mir fiel auf, dass beim Einbinden eines Shopware internen Textbausteines, in dem die Variable {$sCountry.countryname} vorkommt, das Land nicht angezeigt werden konnte. In ajax_cart.tpl ist die Variable $sCountry nicht bekannt. Das hab ich auch via {debug} feststellen können.

Meine vorrübergehende Lösung: Hol das Land einfach aus der $sUserData.additional.country und erstelle eine Referenz in $sCountry
{$sCountry = $sUserData.additional.country}. Funktioniert!

Aber: natürlich könnten $sCountry und $sUserData.additional.country voneinander abweichen.

Deshalb brauche ich eine Lösung, wie ich $sCountry in ajax_cart.tpl “verfügbar machen kann”.^^

 

Ein möglicher Lösungsansatz, den ich allerdings noch nicht erfolgreich umsetzen konnte:

Eine passende Methode fand ich in Controllers/Checkout.php: getSelectedCountry(); Ist es möglich, diese von außen aufzurufen und ein Wert zurückzubekommen? Das Problem ist allerdings, dass der Name $sCountry nicht überschrieben werden sollte. Glaube ich zumindest^^ Ich bin da recht unerfahren mit.

Vielen Dank für die Hilfe!

Wieso können die denn abweichen? Welches Land steht den sonst in $sCountry?

Ich nehme mal an, der Standort des Shops. Oder zumindest das Land, fuer welches der Versand eigentlich gilt. Jedenfalls duerfte in meinem Fall das Land, das in dem Textbaustein vorkommt, nicht vom User abhängen. Wenn der User aus England käme, würde im Text plötzlich England stehen, wobei beispielsweise die Versandoptionen nur für Deutschland gelten. Aber ich kann mich auch irren, da so ein Fall in der Praxis noch nicht vorkam.

Nicht glauben, wissen. 

@arnebecker schrieb:

Wieso können die denn abweichen? Welches Land steht den sonst in $sCountry?

 

@BestShopPossible schrieb:

Nicht glauben, wissen. 

 

Falls du etwas weißt, das ich nicht weiß und du mir bei der Beantwortung meiner Frage helfen kannst und möchtest, bist du hiermit herzlich eingeladen. 

Hallo @MisterTabasco‍,

sCountry variable kommt von Session.

also du kannst dies einfach von Session nehmen wie so:

{$Shopware->Session()->offsetGet("sCountry")}

VG,

 

Tel.: +49 755 - 183 990 00 | Web: http://enbit.de/

1 Like