floatval ersetzen mit ????? - Fatal error beim Checkout

mona

Sehr aktives Mitglied
26. April 2016
308
25
Shop 5, Template Nova

Bekomme die Fehlermeldung beim Checkout:
Fatal error: Uncaught --> Smarty Compiler: Syntax error in template "db:db:html31" on line 61 "{assign var=PositionGesamtpreis value=$PositionGesamtpreis|replace:$Bestellung->Waehrung->cNameHTML:''|replace:$Bestellung->Waehrung->cTrennzeichenTausend:''|replace:$Bestellung->Waehrung->cTrennzeichenCent:'.'|trim|floatval}" modifier 'floatval' not allowed by security setting <-- thrown in /var/www/vhosts/n098h064.cloud.snafu.de/html/includes/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php on line 61

Habe nun rausgefunden, dass es an der Emailvorlage Bestellbestätigung liegt. Und dort um den modifier 'floatval'. Was muss ich dort (siehe oben in rot) konkret ändern, damit es wieder funktioniert und die Währung mitberücksichtigt wird?
Oder gibt es irgendwo eine Doku, welche Änderungen in der Emailvorlage seit Shop 4.06. bis 5.1 vorgenommen wurden? Bei github bin ich nicht fündig geworden.

Herzlichen Dank
gruss
mona
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.369
347
Halle (Saale)
Am einfachsten machst du einfach einen Cast draus.
Also statt
Code:
{assign var=myvar value=$a|replace:$b:'c'|floatval}
einfach so:
Code:
{assign var=myvar value=(float)($a|replace:$b:'c')}

Hintergrund: Ab Shop 5 ist Smarty Security aktiviert, das nur gewisse Modifier erlaubt. Diese sind hier aufgelistet: https://gitlab.com/jtl-software/jtl-shop/core/-/blob/release/5.0.X/includes/defines.php#L242
Dass floatval da nicht drin ist, ist natürlich ungünstig und ich mach dafür ein Ticket auf.
 

Ähnliche Themen