Recommended Posts

Уважаемые Знатоки!

 

Подскажите возможный вариант решения вопроса. Как сделать чтобы не отображались не заполненные поля в карточке объекта?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

подробнее плз, какой шаблон?

в том же agency realty_view.tpl вроде везде есть проверка на вывод только заполненных полей

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можете сами добавлять условия тут

/template/frontend/realia/realty_view.tpl

                             <table>                                 {foreach from=$hvd_tabbed item=tab key=tabname}                                     {if $tab|count>0}                                         {foreach from=$tab item=data_item}                                             {if $data_item.type eq "primary_key" or $data_item.value eq "0" or $data_item.value eq "" or $data_item.name eq "currency_id" or $data_item.name eq "export_cian" or $data_item.name eq "user_id" or $data_item.name eq "price"  or $data_item.name eq "youtube" or $data_item.type eq "hidden" or $data_item.name eq "text" or $data_item.type eq "geodata" or $data_item.name eq "meta_keywords"  or $data_item.name eq "meta_description" or $data_item.name eq "meta_title" or $data_item.type eq "uploads" or $data_item.name eq "text_en"}                                             {elseif $data_item.name eq "fio"}                                                 {assign var="agent_fio" value=$data_item.value}                                             {elseif $data_item.name eq "phone"}                                                 {assign var="agent_phone" value=$data_item.value}                                             {elseif $data_item.name eq "email"}                                                 {assign var="agent_email" value=$data_item.value}                                             {elseif $data_item.type eq "destination"}                                                 {if $data_item.value_string!=''}                                                     <tr><th>{$data_item.title}</th><td>{$data_item.value_string}</td></tr>                                                 {/if}                                             {elseif $data_item.type eq "select_by_query"}                                                 {if $data_item.value_string!=''}                                                     <tr><th>{$data_item.title}</th><td>{$data_item.value_string}</td></tr>                                                 {/if}                                             {elseif $data_item.type eq "select_box_structure"}                                                 {if $data_item.value_string!=''}                                                     <tr><th>{$data_item.title}</th><td>{$data_item.value_string}</td></tr>                                                 {/if}                                             {elseif $data_item.type eq "checkbox"}                                                 {if $data_item.name ne 'hot' and $data_item.name ne 'active'}                                                     {if $data_item.value eq 1}                                                         <tr><th>{$data_item.title}</th><td><input type="checkbox" checked="checked" disabled="disabled" /></td></tr>                                                     {/if}                                                 {/if}                                             {elseif $data_item.type eq "select_box"}                                                 {if $data_item.value_string!=''}                                                     <tr><th>{$data_item.title}</th><td>{$data_item.value_string}</td></tr>                                                 {/if}                                             {elseif $data_item.type eq "tlocation"}                                                 <tr><th>{$data_item.title}</th><td>{$data_item.tlocation_string}</td></tr>                                             {else}                                                 {if $data_item.value!=''}                                                     {if $data_item.name eq "text"}                                                         <tr><th>{$data_item.title}</th><td>{$data_item.value|nl2br}</td></tr>                                                     {else}                                                         <tr><th>{$data_item.title}</th><td>{if is_array($data_item.value)}{$data_item.value|implode:','}{else}{$data_item.value}{/if}</td></tr>                                                     {/if}                                                 {/if}                                             {/if}                                         {/foreach}                                     {/if}                                 {/foreach}                             </table>

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот такого плана 

 

<p><span>Тип:</span><span>
{if isset($data.property_type.value_string) && $data.property_type.value_string!=''}
{$data.property_type.value_string}
{else}
{$user_data.property_type.value_string}
{/if}</span></p>
<p><span>Цена:</span><span>
€ {if isset($data.price.value) && $data.price.value!=''}
    {$data.price.value}
   {else}
    {$user_data.price.value}
   {/if}</span></p>
<p><span>Старая цена:</span><span class="old_price">
€ {if isset($data.sprice.value) && $data.sprice.value!=''}
    {$data.sprice.value}
   {else}
    {$user_data.sprice.value}
   {/if}</span></p>
<p><span>Команты:</span><span>
{if isset($data.room_count.value) && $data.room_count.value!=''}
    {$data.room_count.value}
   {else}
    {$user_data.room_count.value}
   {/if}</span></p>
<p><span>Спальни:</span><span>
{if isset($data.spalni.value) && $data.spalni.value!=''}
    {$data.spalni.value}
   {else}
    {$user_data.spalni.value}
   {/if}</span></p>
<p><span>Ванные:</span><span>
{if isset($data.van.value) && $data.van.value!=''}
    {$data.van.value}
   {else}
    {$user_data.van.value}
   {/if}</span></p>
<p><span>Жилая площадь:</span><span>
{if isset($data.square_live.value) && $data.square_live.value!=''}
    {$data.square_live.value}
   {else}
    {$user_data.square_live.value}
   {/if} m²</span></p>
<p><span>Площадь террас:</span><span>
{if isset($data.furniture.value) && $data.furniture.value!=''}
    {$data.furniture.value}
   {else}
    {$user_data.furniture.value}
   {/if} m²</span></p>
<p><span>Площадь участка:</span><span>
{if isset($data.square_all.value) && $data.square_all.value!=''}
    {$data.square_all.value}
   {else}
    {$user_data.square_all.value}
   {/if} m²</span></p>
<p><span>Этаж:</span><span>
{if isset($data.floor.value) && $data.floor.value!=''}
    {$data.floor.value}
   {else}
    {$user_data.floor.value}
   {/if}</span></p>
<p><span>Мебль:</span><span>
{if isset($data.mebel.value) && $data.mebel.value!=''}
    {$data.mebel.value}
   {else}
    {$user_data.mebel.value}
   {/if}</span></p>
<p><span>Парковка:</span><span>
{if isset($data.parking.value) && $data.parking.value!=''}
    {$data.parking.value}
   {else}
    {$user_data.parking.value}
   {/if}</span></p>
<p><span>Кухня:</span><span>
{if isset($data.square_kitchen.value) && $data.square_kitchen.value!=''}
    {$data.square_kitchen.value}
   {else}
    {$user_data.square_kitchen.value}
   {/if}</span></p>
<p><span>Вид:</span><span>
{if isset($data.vid.value) && $data.vid.value!=''}
    {$data.vid.value}
   {else}
    {$user_data.vid.value}
   {/if}</span></p>
<p><span>Бассейн:</span><span>
{if isset($data.pool.value) && $data.pool.value!=''}
    {$data.pool.value}
   {else}
    {$user_data.pool.value}
   {/if}</span></p>
<p><span>Год постройки:</span><span>
{if isset($data.god.value) && $data.god.value!=''}
    {$data.god.value}
   {else}
    {$user_data.god.value}
   {/if} г.</span></p>
<p><span>Расстояние до моря:</span><span>
{if isset($data.sea.value) && $data.sea.value!=''}
    {$data.sea.value}
   {else}
    {$user_data.sea.value}
   {/if} м.</span></p>
</div><br />
<div class="object_infolocation">
<p>Окрестности:</p>
<p><span>Пляж:</span><span>
{if isset($data.beach.value) && $data.beach.value!=''}
    {$data.beach.value}
   {else}
    {$user_data.beach.value}
   {/if}</span></p>
<p><span>Магазины:</span><span>
{if isset($data.mag.value) && $data.mag.value!=''}
    {$data.mag.value}
   {else}
    {$user_data.mag.value}
   {/if}</span></p>
<p><span>Аэропорт:</span><span>
{if isset($data.aero.value) && $data.aero.value!=''}
    {$data.aero.value}
   {else}
    {$user_data.aero.value}
   {/if}</span></p>
<p><span>Больница:</span><span>
{if isset($data.hosp.value) && $data.hosp.value!=''}
    {$data.hosp.value}
   {else}
    {$user_data.hosp.value}
   {/if}</span></p>
</div><br />
<div class="object_characteristic">
<p>Особенности:</p>
<table>
       {foreach from=$hvd_tabbed item=tab key=tabname}
{foreach from=$tab item=data_item}
{if $data_item.type eq "primary_key" or $data_item.value eq "0" or $data_item.value eq "" or $data_item.name eq "currency_id" or $data_item.name eq "export_cian" or $data_item.name eq "user_id" or $data_item.name eq "price"  or $data_item.name eq "youtube" or $data_item.type eq "hidden" or $data_item.name eq "text" or $data_item.type eq "geodata" or $data_item.name eq "meta_keywords"  or $data_item.name eq "meta_description" or $data_item.name eq "meta_title"}
                   {elseif $data_item.type eq "checkbox"}
                       {if $data_item.name ne 'hot' and $data_item.name ne 'active'}
                           {if $data_item.value eq 1}
                            <tr><th style="width:250px"><p><span>{$data_item.title}</span></p></th><td> <div class="ez-checkbox ez-checked"></div></td></tr>
                           {/if}
                       {/if}            
                   {elseif $data_item.type eq "select_box"}
 
                   {elseif $data_item.type eq "tlocation"}
                    <tr><th>222{$data_item.title}</th><td>{$data_item.tlocation_string}</td></tr>
               {/if}
   {/foreach}
{/foreach}
</table>
</div>

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Т.е. уже разобрались? )

У меня блоки с разными стилями... не могу подстроиться под этот вывод блин...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У меня блоки с разными стилями... не могу подстроиться под этот вывод блин...

напишите в раздел фриланс, возможно найдутся хорошие люди чтобы вам помочь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Самое сложно в этом определиться, что соответствует понятию "незаполненное поле".

Например

{if isset($data.sprice.value) && $data.sprice.value!=''}...{/if}

На первый взгляд логичное условие. Но оно не учитывает, что

а) может быть нолик

б) может быть в значении "двестипятьдесяттри" (буквами) или "какбыхотелнаписатьценунодрогнуларука"

в) может быть просто пробел. Он тоже не равен пустой строке.

 

Иногда проще определять не то, что незаполнено, а условие заполнености. Например для цены сложно ловить три условия, проще считать, что если "значение в цифровом представлении не равно нулю, значит цена заполнена" и тогда условие приобретает вид

{if isset($data.sprice.value) && 0!==(int)$data.sprice.value}...выводим{/if}

Может оффтоп, а может кого и подтолкнет в верном направлении.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Может оффтоп, а может кого и подтолкнет в верном направлении.

не офтоп, всё в тему.

имхо всегда надо ловить именно ожидаемое значение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

Вот такого плана 

имхо такие длинные листинги лучше в спойлер запихивать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

to rumattic: а разве в IPB нет подсветки кода языка?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

to rumattic: а разве в IPB нет подсветки кода языка?

Есть, просто не все оформляют это в тегах кода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Самое сложно в этом определиться, что соответствует понятию "незаполненное поле".

Например

{if isset($data.sprice.value) && $data.sprice.value!=''}...{/if}

На первый взгляд логичное условие. Но оно не учитывает, что

а) может быть нолик

б) может быть в значении "двестипятьдесяттри" (буквами) или "какбыхотелнаписатьценунодрогнуларука"

в) может быть просто пробел. Он тоже не равен пустой строке.

 

Иногда проще определять не то, что незаполнено, а условие заполнености. Например для цены сложно ловить три условия, проще считать, что если "значение в цифровом представлении не равно нулю, значит цена заполнена" и тогда условие приобретает вид

{if isset($data.sprice.value) && 0!==(int)$data.sprice.value}...выводим{/if}

Может оффтоп, а может кого и подтолкнет в верном направлении.

<p><span>Этаж:</span><span>
{if isset($data.floor.value) && 0!==(int)$data.floor.value!=''}
    {$data.floor.value}
   {else}
    {$user_data.floor.value}
   {/if}</span></p>
 
Не проходит такое значение... отваливается вывод

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
{if isset($data.floor.value) && 0!==(int)$data.floor.value!=''}

 

 

 

Во второй части выражения либо 0!== либо !=''

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Во второй части выражения либо 0!== либо !=''

Могу я попросить Вас наглядный пример?!)) Благодарю за понимание! Мне так проще понимать ситуацию и похожие моменты в дальнейшем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Могу я попросить Вас наглядный пример?

{if isset($data.floor.value) && 0!=(int)$data.floor.value}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
{if isset($data.floor.value) && 0!=(int)$data.floor.value}

Здорово конечно, убирает пустую инфу, но не прячет весь массив...

"

<p><span>Старая цена:</span><span class="old_price">
€ {if isset($data.sprice.value) && $data.sprice.value!=''}
    {$data.sprice.value}
   {else}
    {$user_data.sprice.value}
   {/if}</span></p>
"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

по аналогии обработать каждое нужное поле

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В итоге сделал вот такого вида:

 

{if isset($data.floor.value) && $data.floor.value!=''}
<p><span>Этаж:</span><span>
{$data.floor.value}
{else}
{$user_data.floor.value}
</span></p>
{/if}
 
В редакции объекта упорно выводится "0", даже если затираю полностью.... посмотрел в бд, сравнил поля с которыми такого не происходит и не нашел отличия... куда глянуть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вы проверяете на заполненность, а где в вашем варианте проверка на 0 ?

&& 0!==(int)$data.floor.value}

в 8 посту вроде подробно расписали суть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вы проверяете на заполненность, а где в вашем варианте проверка на 0 ?

&& 0!==(int)$data.floor.value}

в 8 посту вроде подробно расписали суть.

Благодарю! Проморгал вот этот момент!

У меня в окончании && $data.square_all.value!=''} соответственно конфликт и не работало!

 

Вот теперь можно разделять вывод!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас