делать вещи с возвращаемым значением функции smarty? - PullRequest
3 голосов
/ 12 января 2010

У нас есть эта функция Smarty, которая возвращает HTML-код для шаблонов. Однако также возможно, что функция возвращает пустую строку, которую мы теперь хотим идентифицировать. Наша система стабильно работает в течение многих лет, поэтому я ищу наименее инвазивное из возможных решений.

Можно ли присвоить возвращаемое значение переменной smarty? Я попытался присвоить его переменной Javascript, однако, поскольку часть HTML генерируется пользователем, возвращаемая строка может быть смесью двойных и одинарных кавычек, что вызывает проблемы в IE (к сожалению, у большинства наших пользователей).

<script type="text/javascript">
var html = '{smarty function}'; //IE chokes on mixed quotes
</script>

Любая помощь приветствуется!

1 Ответ

6 голосов
/ 12 января 2010

Используйте модификатор escape, например:

{$variable|escape:'quotes'}

Для функции smarty вы можете сначала попробовать, если {smarty_function|escape:'quotes'} работает, если это не так, вам нужно сначала назначить вывод функции в переменную перед ее экранированием, и для этого вы используете capture:

 {capture name=mycapture}{smarty_function}{/capture}
 {$smarty.capture.mycapture|escape:'quotes'}
...