Zum Inhalt

Migration von Smarty 4 auf 5

In Shop 5.6.0 wurde die Template-Engine Smarty auf Version 5.4 aktualisiert. Dieses Upgrade hat umfangreiche Maßnahmen zur Refaktorisierung am Core des JTL-Shops bedingt. Um den Umstieg für Sie so gefahrlos und sicher wie möglich zu gestalten, wurde in Shop 5.6.0 eine PHP-Konstante SMARTY_LEGACY_MODE eingeführt, welche mit dem Standardwert true dafür sorgt, dass intern weiterhin die Version 4 von Smarty genutzt wird.

Wenn Sie Ihre Plugins und Templates auf Kompatibilität mit der aktuellsten Smarty-Version testen wollen, dann setzen Sie die Konstante SMARTY_LEGACY_MODE auf false in der Datei includes/config.JTL-Shop.ini.php mit:

const SMARTY_LEGACY_MODE = false;

Template-Anpassungen

Die meisten Templates sollten mit wenigen Anpassungen weiterhin funktionieren. Die häufigsten Änderungen beschränken sich auf folgende Schritte:

  • In PHP definierte Funktionen können in Smarty-Templates nur noch durch Registrierung nutzbar gemacht werden. Die durch den JTL-Shop Core bereits registrierten nativen PHP-Funktionen sind durch die Konstante SECURE_PHP_FUNCTIONS definiert.
  • Der Modifikator implode wurde als veraltet eingestuft und soll durch join ersetzt werden.
  • Lesen Sie außerdem den offiziellen Upgrade-Guide der Smarty-Engine um über weitere Stolpersteine informiert zu sein.

Plugin-Anpassungen

Ihre Plugins sollten weiterhin wie bisher funktionieren. Beachten Sie nur die Anmerkungen unter Template-Anpassungen!