Smarty Conditionals - PullRequest
       14

Smarty Conditionals

0 голосов
/ 01 августа 2011

Я пытаюсь использовать умный код, чтобы напечатать имя оппонента, когда оно установлено, но когда имя не задано, я хочу просто отобразить «Кто-то».

{if isset($OPPONENT_FULL_NAME)}
    %%OPPONENT_FULL_NAME%% 
{else} 
    Someone 
{/if} started a game with you.

Прямо сейчас, когда я устанавливаю $OPPONENT_FULL_NAME на что-то, оно работает хорошо, но когда я оставляю это поле пустым, ничего не появляется. Нет "Кто-то".

Что я делаю не так?

Ответы [ 3 ]

3 голосов
/ 01 августа 2011

Переменная $OPPONENT_FULL_NAME может быть установлена, но в пустую строку.Вы можете попробовать сделать что-то вроде

{if isset($OPPONENT_FULL_NAME) && $OPPONENT_FULL_NAME not '' }%%OPPONENT_FULL_NAME%% {else} Someone {/if} started a game with you.
0 голосов
/ 14 октября 2015

Я думаю, вы должны сначала выполнить фильтрацию, очистку или обработку в php.

Например:
$OPPONENT_FULL_NAME = (isset($OPPONENT_FULL_NAME) AND !empty($OPPONENT_FULL_NAME)) ? $OPPONENT_FULL_NAME : "Someone";

Затем вы можете просто позвонить {$OPPONENT_FULL_NAME} в шаблоне smarty.

Однако, если вам нужно сделать это в шаблоне smarty,
{$OPPONENT_FULL_NAME|default: "Someone"} сделает свое дело.

Надеюсь, это поможет, ура!

0 голосов
/ 29 сентября 2013

Помните, что ноль отличается от пустой строки

{if !isset($OPPONENT_FULL_NAME) || $OPPONENT_FULL_NAME eq ''}
   {$OPPONENT_FULL_NAME}
{else}
   Someone
{/if|
...