Умный оператор if

Первый раз использую smarty, пожалуйста, не злейте .. надеюсь, что кто-нибудь поможет мне с этой проблемой. В page.tpl у меня есть следующий код:

{$user-status}
{if $user-status == '-'}
    <h1>OK</h1>
{/if}

Когда страница загружена, я вижу

"user-status-string" // this is correct
    {if $user-status == '-'}
        <h1>OK</h1>
    {/if}

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

Спасибо


person ianaz    schedule 18.07.2012    source источник


Ответы (1)


Я предполагаю, что присвоение переменной имени тире может привести к нежелательному поведению Smarty.

Попробуйте назначить и использовать, например, переменную с именем $userStatus.

person Frosty Z    schedule 18.07.2012
comment
Кэш-файл выглядит правильно. Пробовал с {if 'a' eq 'b'} {/ if}: In cache ‹? Php if ('a' == 'b') {?› ‹? }? ›И сгенерированный HTML я вижу {if 'a' eq 'b'} {/ if} !!! Что за черт?! - person ianaz; 18.07.2012
comment
Может быть, проверьте расположение каталога компиляции / кеша? (с $smarty->getCompileDir() и $smarty->getCacheDir()) - person Frosty Z; 18.07.2012