2015-02-05 4 views
0

Я использую Smarty для шаблонов электронной почты, и я хочу, чтобы тема почты была в одном месте с шаблоном тела.Назначить переменную от Smarty до PHP

Моя первая попытка была установить тему с

{assign var="subject" value="mySubject"} 

и доступ к нему с

$smart->getTamplateVars(); 

но субъект не является нигде не найти.

Мой текущий рабочий раствор:

{php} 
    global $subject; 
    $subject = "My Subject"; 
{/php} 

Но используя SmartyBC и {PHP} чувствует себя неправильно.

Есть ли лучший способ достичь этого?

ответ

2

Вы не должны назначать переменные в Smarty, а затем использовать его с помощью PHP. Aproach - назначать переменные в вашем контроллере, а затем отображать их в вашем представлении. Вы действительно должны прочитать о шаблоне MVC. Более того, не используйте глобальные переменные, это действительно плохое решение. Тег {php} очень необязателен и не должен подвергаться насилию.

http://www.smarty.net/sampleapp1 по этой ссылке вы найдете пример приложения, чтобы проверить его и посмотреть, как он должен выглядеть.

+0

Я думаю, что в этом случае это E-Mail вид, и поскольку субъект является частью E-Mail, он должен быть частью шаблона. Я теперь сам, что {php} и глобальный не путь, но есть ли у вас другое решение? –

+0

Yep в действии контроллера присваивает объект электронной почте, чтобы он отображал его и отправлял по электронной почте. Я все еще не вижу необходимости назначать его в файле шаблона. – Robert

+0

Это означало бы, что часть представления (субъекта) находится в контроллере, и дизайнер должен ее там редактировать. –

Смежные вопросы