Я использую магазинную систему, которая была обновлена с smarty 2 до smarty 3, что привело к появлению списка проблем на нашем сайте. Хуже всего то, что все переменные Smarty, которые мы назначили для их использования в PHP, больше не работают.
Краткий пример:
{assign var=test value=$ORDER_NUMBER}
{php}
$order = $this->get_template_vars('test');
echo $order;
{/php}
Это приводит к следующей ошибке:
FATAL ERROR(1): "Using $this when not in object context"
Теперь на странице Smarty я нашел несколько строк кода, которые делают то же самое, но выглядят немного иначе, например, эта:
$order = $smarty->getTemplateVars('test');
что приводит к:
FATAL ERROR(1): "Call to a member function getTemplateVars() on null"
Ни одно из этих «решений», которые я нашел, больше не работает со времен Smarty 3.
get_template_vars()
устарел, используйтеgetTemplateVars()
и убедитесь, что перед этой строкой:$smarty->getTemplateVars('test')
вы инициализировали свой смарт-объект. - person Amani Ben Azzouz   schedule 07.10.2015php
также устарел в smarty3, вы должны использовать доступные возможности для расширения smarty, чтобы заменить использованиеphp
блоков пользовательскими блоками/функциями/... - person Tom Regner   schedule 07.10.2015