Я использую систему магазинов, которая обновилась с smarty 2 до smarty 3, что привело к списку проблем на нашем сайте. Хуже всего то, что все переменные Smarty, которые мы назначили для использования в PHP, больше не работают.Назначить переменную Smarty PHP с помощью Smarty 3
короткий пример:
{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')', который вы инициализировали свой объект smarty. –
Тег 'php' также устарел в smarty3, вы должны использовать доступные возможности для расширения smarty, чтобы заменить использование' php'-блоков настраиваемыми блоками/функциями/... –
Ваш второй метод должен работать с использованием $ умная переменная. Если возможно, попробуйте поставить глобальный $ smarty; перед вашим кодом. Однако ваш код плохой и очень устаревший, и его необходимо изменить с течением времени. В следующей версии smarty она, вероятно, вообще не работает. –