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