Как правильно совмещать php со smarty при написании своего модуля Есть решение

Добрый день!

Пишу свой модуль в Webasyst (на подобии модуля Гостевой книги). Делаю условие в шаблоне wa-apps/[MY_APP]/templates/actions/frontend/frontend.html

Где переменная $current - значение этапа.

{if $current == 1}
      <p>Вы на первом этапе!</p>
{elseif $current == 2}
      <p>Вы на втором этапе!</p>
{/if}

Переменная берется их экшена wa-apps/[MY_APP]/lib/actions/[MY_APP]Frontend.action.php


<?php
class [MY_APP]FrontendAction extends waViewAction
{
  public function execute()
  {
    
    $current == 1;
    
  }
}

В таком состоянии не правильно выводятся данные условия, то вообще не выводятся. Что только не пробовал. Правильно условие работает только когда в самом smarty задаю переменную {$current == 1}. В таком случае работает условие правильно.


Вопрос в следующем: Можно ли так использовать переменные php в smarty? Ибо переменная должна у меня хранится 100% в action. Ибо ее в будущем буду получать из БД.

3 ответа

  • 1
    Евгений 19 февраля 2017 15:37 # Решение

    Вы в шаблон должны передавать значение своей переменной из класса

    $this->view->assign("current", 1);
  • 1
    Николай Иванов 19 февраля 2017 15:46 # Решение

    Именно. assign.
    Изучите класс waViewAction и классы от которых он происходит(waSmarty3View).

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите