Neu Was ist der richtige Weg in Plugins Sprachvariablen an Smarty zu übergeben?

Trigoda

Aktives Mitglied
8. September 2022
52
6
Liebe Kollegen,

Ich habe Probleme im Plugin Sprachvariablen an Smarty zu übergeben.

Ich mache das derzeit mit dem Hook HOOK_SMARTY_INC und da kommt es dann leider vor, dass die Sprachvariablen (nicht nur vom Plugin, sondern wohl alle) sich nicht beim ersten Aufruf anpassen an die Sprache, sondern erst nach einem Reload.

Das Problem scheint schon öfter vorgekommen zu sein, zum Beispiel beim "Hinweisfenster von wnm" wurde das schon mal gefixt (das ist aber dummerweise mit IONCube verschlüsselt, weswegen ich die Lösung da nicht abgucken kann)

Kann mir einer der hoch geschätzten Kollegen hier verraten, wie ich Sprach Variablen an Smarty übergeben kann, ohne das es zu diesem Sprachen Chaos kommt? Damit es gleich die richtige Sprache anzeigt, ohne Reload?

Das würde mir extrem weiter helfen und vielen Dank im voraus!

Beste Grüße aus Berlin
 

css-umsetzung

Offizieller Service Partner
SPBanner
6. Juli 2011
8.648
2.700
Berlin
Firma
css-umsetzung
Der Hook ist schon recht früh, vermutlich ist dort noch gar nicht festgelegt, um zu wissen um welche Sprache es geht,
du beschreibst nicht genau was du da machst, darum kann ich dir da auch nichts wirklich verwertbares dazu sagen und nur Tipps geben wie es gehen sollte:

Eventuell wäre es besser auf den hook HOOK_LETZTERINCLUDE_INC zu gehen, da sollte klar sein um welche Sprache es geht.

Laut @MBesancon (https://forum.jtl-software.de/threads/jtl-und-die-sparchdatei-base-mo-im-plugin.220366/post-1180945)
kannst du das über die lang Funktion machen, aber das ist nicht sicher, bzw. funktioniert nicht stabil wie es scheint.

Die sicherste Art wäre, wenn du dein Plugin per Variable an smarty übergibst und das dann über die Plugin Funktion ausgibst.

In deinem Hook dann also dein Plugin registrieren

Code:
Shop::Smarty()->assign('DeinPlugin',$plugin);

Und dann kannst du das in deinem Template so ausgeben:

Code:
{$DeinPlugin->getLocalization()->getTranslation('DeineVariable')}

Das sollte der sicherste Weg sein, aber wie ich schon schrieb, das sind zu wenig Informationen zu dem was und warum du da etwas machst.

Grüße zurück aus dem heute sonnigem Berlin
 

Ähnliche Themen