artctur
15.01.2016 - 14:41
есть такая штука выводит данные из ячейки таблицы на странице сайта,
Пользователь: {get_user_meta user_id=$user_data.id key='name'}
но если данные пустые выводится пустая строка
Пользователь:
вопрос как сделать если ячейка пуста, строка полностью не отображалась.
Спасибо.
с смарти не знаком, но похоже на twig
{% if var is defined %}
{% endif %}
artctur
15.01.2016 - 15:00
ничего так не получается
Valick
15.01.2016 - 15:18
artctur
15.01.2016 - 15:46
я понимаю как сделать 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
15.01.2016 - 18: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}
_____________
[продано копирайтерам]
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} |
Зато в смарти есть пользовательские функции
_____________
Свои мозги еще никто не отменял.
Телепатов нету.
AllesKlar
16.01.2016 - 01:08
Цитата (waldicom @ 15.01.2016 - 16:58) |
Зато в смарти есть пользовательские функции |
А, ну да... Гонокод 80лвл. Даешь в шаблон еще и запросы к базе.
Хотя, смарти поддерживает и тег {php}{/php}, так что можно весь движок написать на чистом шаблонизаторе.
И что ты имел ввиду под "пользовательские функции"?
То что в смарти можно объявить свою функцию?
Можно почитать где?
(об внедрении в исходники не говорим)
ТС отдай контроллеру то, что должен делать контроллер (вычислять, формировать данные, массивы) а шаблону исключительно вывод.
если же хочешь дальше говнокодить, то знатный говнокод получится из assign
_____________
[продано копирайтерам]
И это, пользовательские фукции в шаблонах != говнокод.
AllesKlar
16.01.2016 - 01:53
О, спасибо. Не знал.
По той причине, что
Цитата |
И это, пользовательские фукции в шаблонах != говнокод. |
Это не говнокод, а лютый, наилютейший говнокод, который ломает сам принцип MVC, ведь шаблоны смарти - это и есть V
Смысл шаблона в том, что для него нужно подготовить данные и передать их в шаблон. И всё. и шаблон обязан коректно эти данные отобразить.
А со $smarty->register_function нужно тащить за собой обязательно контроллер либо недоконтроллер, либо еще ХЗ чего.
Разъесни мне, уважаемый, стеснительный аноним, в чем смысл использования $smarty->register_function ?
если с assign внуртри шаблона я еще как-то могу смириться (когда криворукий программит зафигачил в шаблон недоданные, и несчастный верстальщик сам их внутри шаблона парсит), то вот вообще не могу представить ниодного случая, где было бы уместно применения пользовательской функции в шаблоне.
_____________
[продано копирайтерам]
waldicom
16.01.2016 - 01:54
Цитата (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>"
_____________
Свои мозги еще никто не отменял.
Телепатов нету.
Цитата (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
16.01.2016 - 07:46
ну , если начали юузать функции внутри смарти, то и логику обработки вешайте на get_user_meta user_id
П.С. согласен с мнением AllesKlar. Смарти втюха, а значит должен выполнять только свои функции и не важно, что на нем можно теплоход построить. Ибо потом хрен разберешься, что и где.
Дополнять своими хелперами вывод еще можно, но вот так, как у ТС это перебор.
Цитата (icedfox @ 16.01.2016 - 07:46) |
ну , если начали юузать функции внутри смарти, то и логику обработки вешайте на get_user_meta user_id
П.С. согласен с мнением AllesKlar. Смарти втюха, а значит должен выполнять только свои функции и не важно, что на нем можно теплоход построить. Ибо потом хрен разберешься, что и где. Дополнять своими хелперами вывод еще можно, но вот так, как у ТС это перебор. |
так вот в движке задумано программером выводить всё подряд. поэтому приходится что то выдумывать.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.