Причина, по которой $php_var
неверен, заключается в том, что вы случайно закрыли {php}
, когда поместили туда {/php}
в код PHP. Smarty не понимает достаточно, чтобы заботиться о том, чтобы он был в строке в кавычках.
Чтобы получить переменную smarty, используйте $this->get_template_vars('smarty_var')
где-нибудь в вашем блоке '{php}'.
Альтернативно, разделите шаблон на два меньших, вызываемых последовательно.