хелпер Есть решение

в теме нельзя делать проверок вроде
{if !empty($wa->meta('keywords'))} ... ?

Пытаюсь написать
{if !empty($wa->meta('keywords'))} <meta name="Keywords" content="{$wa->meta('keywords')|escape}" /> {/if}

и сайт не открывается
Я так понимаю в классе хелпера waViewHelper.class нет такого метода keywords. Как же тогда сделать подобное условие?

2 ответа

  • 2
    Михаил Ушенин Webasyst 24 февраля 2015 01:36 # Решение

    PHP-функции empty() в качестве аргумента нужно передавать переменную, а не выражение, оттого и ошибка. Вот такое изменение вашего кода устранит ошибку:

    {$keywords = $wa->meta('keywords')}
    {if !empty($keywords)} <meta name="Keywords" content="{$wa->meta('keywords')|escape}" /> {/if}

    Хотя ещё логичнее было бы изменить ваш код вот так (вам ведь нужно проверить, есть ли непустая строка в МЕТА-свойстве keywords):

    {if strlen($wa->meta('keywords'))}<meta name="Keywords" content="{$wa->meta('keywords')|escape}" />{/if}

    * А ваш оригинальный вариант (даже будучи правильным) не добавил бы на страницу МЕТА-тег, если бы в keywords была записана цифра 0, скажем, потому что вызов empty('0') вернул бы false, хотя значение у переменной было бы непустое. Но это скорее из теории, на практике такое маловергоятно. Просто чтобы вы понимали смысл происходящего.

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

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