Назначить переменную из Smarty в PHP

0

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

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

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

и получить доступ к нему с помощью

$smart->getTamplateVars();

но предмет нигде не найден.

Мое текущее рабочее решение:

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

Но использование SmartyBC и {php} ошибочно.

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

Теги:
smarty
smarty3

1 ответ

2

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

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

  • 0
    Я думаю, что в этом случае E-Mail является представлением, и поскольку тема является частью E-Mail, она должна быть частью шаблона. Теперь я сам, что {php} и глобальный не путь, но у вас есть другое решение?
  • 0
    Да в действии контроллера назначьте тему электронной почты, отрендерите ее и отправьте как электронную почту. Я до сих пор не вижу необходимости назначать его в файл шаблона.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню