Я использую Smarty для eMail-Templates и хочу, чтобы тема письма находилась в одном месте с шаблоном тела.
Моей первой попыткой было установить тему с
{assign var="subject" value="mySubject"}
и получить к нему доступ
$smart->getTamplateVars();
но предмета нигде не найти.
Мое текущее рабочее решение:
{php}
global $subject;
$subject = "My Subject";
{/php}
Но использование SmartyBC и {php} кажется неправильным.
Есть ли лучший способ добиться этого?
Вы не должны назначать переменные в Smarty, а затем использовать их в PHP. Подход состоит в том, чтобы назначить переменные в вашем контроллере и затем отобразить их в вашем представлении. Вы должны действительно прочитать о шаблоне MVC. Более того, не используйте глобалы, это действительно плохое решение. Тег {php} не является обязательным и не должен использоваться неправильно.
http://www.smarty.net/sampleapp1 По этой ссылке вы найдете пример приложения, проверьте его и посмотрите, как оно должно выглядеть.
Других решений пока нет …