[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: if в smarty
Страницы: 1, 2
artctur
есть такая штука выводит данные из ячейки таблицы на странице сайта,

Пользователь: {get_user_meta user_id=$user_data.id key='name'}

но если данные пустые выводится пустая строка

Пользователь:

вопрос как сделать если ячейка пуста, строка полностью не отображалась.

Спасибо.
Bolik
с смарти не знаком, но похоже на twig

{% if var is defined %}

{% endif %}
artctur
ничего так не получается
artctur
я понимаю как сделать if одного значения или двух в smarty, но как вот эту строку приравнять не могу понять, уже пробовал по разному не получается т.е. надо так

{if ..... если значение вот этого {get_user_meta user_id=$user_data.id key='name'} есть, выводим
Пользователь: {get_user_meta user_id=$user_data.id key='name'}
{/if}

если пусто пропускаем

если так то это просто
{if !empty($user_data)}
Выводим
{/if}

но там ещё key="name' вот на него и ругается
AllesKlar
Цитата (artctur @ 15.01.2016 - 12:41)
{get_user_meta user_id=$user_data.id key='name'}

Это не строка смарти. В смарти нет инструкции get_user_meta

в общем случае же:
{if $user_data.id > 0}
....
{/if}


_____________
[продано копирайтерам]
waldicom
Цитата (AllesKlar @ 15.01.2016 - 15:48)
Цитата (artctur @ 15.01.2016 - 12:41)
{get_user_meta user_id=$user_data.id key='name'}

Это не строка смарти. В смарти нет инструкции get_user_meta

в общем случае же:
{if $user_data.id > 0}
....
{/if}

Зато в смарти есть пользовательские функции

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
AllesKlar
Цитата (waldicom @ 15.01.2016 - 16:58)
Зато в смарти есть пользовательские функции

А, ну да... Гонокод 80лвл. Даешь в шаблон еще и запросы к базе.
Хотя, смарти поддерживает и тег {php}{/php}, так что можно весь движок написать на чистом шаблонизаторе.
И что ты имел ввиду под "пользовательские функции"?
То что в смарти можно объявить свою функцию?
Можно почитать где?
(об внедрении в исходники не говорим)

ТС отдай контроллеру то, что должен делать контроллер (вычислять, формировать данные, массивы) а шаблону исключительно вывод.

если же хочешь дальше говнокодить, то знатный говнокод получится из assign



_____________
[продано копирайтерам]
Guest
И это, пользовательские фукции в шаблонах != говнокод.
AllesKlar
Цитата (Guest @ 15.01.2016 - 23:19)
Можно так http://www.smarty.net/docsv2/ru/api.register.function.tpl
Или вот так http://www.smarty.net/docs/en/language.function.function.tpl

О, спасибо. Не знал.
По той причине, что
Цитата
И это, пользовательские фукции в шаблонах != говнокод.

Это не говнокод, а лютый, наилютейший говнокод, который ломает сам принцип MVC, ведь шаблоны смарти - это и есть V

Смысл шаблона в том, что для него нужно подготовить данные и передать их в шаблон. И всё. и шаблон обязан коректно эти данные отобразить.

А со $smarty->register_function нужно тащить за собой обязательно контроллер либо недоконтроллер, либо еще ХЗ чего.

Разъесни мне, уважаемый, стеснительный аноним, в чем смысл использования $smarty->register_function ?

если с assign внуртри шаблона я еще как-то могу смириться (когда криворукий программит зафигачил в шаблон недоданные, и несчастный верстальщик сам их внутри шаблона парсит), то вот вообще не могу представить ниодного случая, где было бы уместно применения пользовательской функции в шаблоне.

_____________
[продано копирайтерам]
waldicom
Цитата (Guest @ 15.01.2016 - 22:21)
И это, пользовательские фукции в шаблонах != говнокод.

Я, кстати, полностью разделяю это мнение. Пользовательские "хелперы" очень удобны. Как простые modifiers, так и plugins.
Например с помощью собсвтенного modifier "currency" можно во всем проекте в темплейтах выдавать цены. Что-то типа {$price|currency} или уж совсем навороченно "{$article.price|currency:use_shortname:right}"
Или с помощью плагинов/пользовательских функций строить URLs: <a href="{url controller='account' action='downloads' sParam='test'}">blja</a>"

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
Guest
Цитата (waldicom @ 15.01.2016 - 18:58)
Цитата (AllesKlar @ 15.01.2016 - 15:48)
Цитата (artctur @ 15.01.2016 - 12:41)
{get_user_meta user_id=$user_data.id key='name'}

Это не строка смарти. В смарти нет инструкции get_user_meta

в общем случае же:
{if $user_data.id > 0}
....
{/if}

Зато в смарти есть пользовательские функции

У user_data.id две ячейки, одна всегда заполнена, другая по усмотрению, от того и key='name'

ячейки: 1 - key='name', 2 - та которую надо вывести

пример: 'name'-'user'
'name1'-'luser'

т.е. в key указывается то, что надо вывести

если использовать $user_data.id будет выводится и key и значение
icedfox
ну , если начали юузать функции внутри смарти, то и логику обработки вешайте на get_user_meta user_id

П.С. согласен с мнением AllesKlar. Смарти втюха, а значит должен выполнять только свои функции и не важно, что на нем можно теплоход построить. Ибо потом хрен разберешься, что и где.
Дополнять своими хелперами вывод еще можно, но вот так, как у ТС это перебор.
Guest
Цитата (icedfox @ 16.01.2016 - 07:46)
ну , если начали юузать функции внутри смарти, то и логику обработки вешайте на get_user_meta user_id

П.С. согласен с мнением AllesKlar. Смарти втюха, а значит должен выполнять только свои функции и не важно, что на нем можно теплоход построить. Ибо потом хрен разберешься, что и где.
Дополнять своими хелперами вывод еще можно, но вот так, как у ТС это перебор.

так вот в движке задумано программером выводить всё подряд. поэтому приходится что то выдумывать.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.