2015-11-24 2 views
0

На текущем веб-сайте я пытаюсь выполнить функцию, которая исходит из переменной.Smarty - вызов функции и отрисовка ответа

Мой текущий фрагмент кода:

<textarea rows="10" name="{$field.name}" class="form-control">{$field.placeholder}</textarea> 

Итак, что внутри переменной шаблонного?

{$plugin->getMessage()} 

А содержание моего текстового поля в настоящее время с этой установкой:

{$plugin->getMessage()} 

Но цель, что умник выполняет функцию и использовать содержание, которое возвращает из функции. Поэтому я попытался использовать некоторые фильтры.

  • Сначала я использовал "ldelim" и "rdelim"

    {ldelim}{$field.placeholder}{rdelim} 
    

отклик в моем браузере был (Value внутри текстового поля):

{{$plugin->getMessage()}} 
  • Также я пытался использовать "literal"

    {literal}{$field.placeholder}{/literal} 
    

Ответ в моем браузере (Value внутри текстового поля):

{$field.placeholder} 

Но что я должен использовать, чтобы получить ответ моей функции "$plugin->getMessage()"?

EDIT: Для кого-то, кто имеет те же проблемы, а также: Использование {eval var=$foo}

http://www.smarty.net/docs/en/language.function.eval.tpl

ответ

1

Я думаю, что вы можете запутаться, о том, как Smarty работ. Кажется, вы просто назначаете строку "{$ plugin-> getMessage()}" переменной $ field.placeholder и ожидаете, что каким-то образом smarty будет ее оценивать. Но это не так, поэтому он показывает строку вместо этого.

Чтобы заставить его работать, вы должны назначить в вашем PHP скрипт результат этой функции в переменной

+0

Да, я немного смущен, потому что в Twig вы можете повторно анализировать содержимое переменной с помощью '| raw'. Таким образом, функция i вызывается внутри переменной, поскольку строка выполняет еще один раз и возвращает результат функции. И я действительно сомневаюсь, умный тоже не может этого сделать. – Tyralcori

+1

Ну, у smarty есть {eval} - http://www.smarty.net/docs/en/language.function.eval.tpl, не знаю, работает ли он как ветка raw, но вы можете дать ему попробовать – Borgtex

+0

Это именно то, что я ищу! Большое спасибо. – Tyralcori

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