Перейти к содержанию
Официальный форум поддержки Simpla

Вывод некоторых свойств на странице товара


Перейти к решению Решено Kors,

Рекомендуемые сообщения

Задумка следующая: некоторые свойства товара иллюстрировать иконкой и вывести отдельно от общего списка свойств, естественно проверив перед выводом заполнено ли значение нужного св-ва.

 

Следующий код не работает, увы(

179 - айди свойства в БД.

Свойство активно в этой категории товаров

{if $product->features[179]->value !=''}
    <div class="pic-prop">
        <span class="i-prop i-dive"></span>
        <span class="pp-value">{$product->features[179]->value}</span>
    </div>
{/if}

Simpla 2.3.6.

 

Что я делаю не так?)

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

А где foreach? Это первое Но это может сработать, т.к. указан явный код свойства. Может оно и отображается, но под другими слоями. Куда выводят классы-то не понятно. И условие зачем такое?  Делай

{if $product->features}

А в foreach уже проверяй на значение.

Ссылка на сообщение
Поделиться на другие сайты
{if $product->features}
   {foreach $product->features as $f}
        {if $f[180]->value !=''}
            <div class="pic-prop">
                <span class="i-prop i-fall"></span>
                <span class="pp-value">{$f[180]->value}</span>
            </div>
        {/if}
        Тут еще 4 подобных блока с проверкой на заполненность значения с разными айди
    {/foreach}
{/if}

Так тоже не работает

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

Тут еще 4 подобных блока с проверкой на заполненность значения с разными айди

Так ты на заполненость проверешь в форече, зачем еще проверять?

Фореч тебе выбирает все свойства данного товара, на заполненность ты проверил в этом цикле, зачем еще?

А вообще, лучше проверять

{if !empty(...)}
Ссылка на сообщение
Поделиться на другие сайты

Мне кажется, Вы не совсем поняли задачу, стоящую перед мною.

Мне нужно вывести в отдельные блоки 4-5 свойств из 25-30 имеющихся)

То есть имеется свойство - глубина погружения (в каких-то камерах ЗАПОЛНЕНО, в каких то нет)

Если оно заполнено то мне нужно вывести иконку, а под ней значение для конкретной камеры.

 

Как мне сделать это для кокретного свойства с айди, предположим 180?)

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

{if $product->features}
   {foreach $product->features as $f}
        {if $f->feature_id==180}
           {$f->value}
        {/if}
    {/foreach}
{/if}
 

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

{if $product->features}
   {foreach $product->features as $f}
        {if $f->feature_id==180 && !empty($f->value)}
           {$f->value}
        {/if}
    {/foreach}
{/if}
 
 

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

Всё равно не понятно, ты что, каждому свойству в коде будешь ID забивать? А если добавится или поменяется?

Kors, а почему feature_id, а не id?

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

И вообще, по моему у свойства есть только id и name, от куда value взяли?

Хотя спорить не буду, нет базы под рукой.

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

Kors и Koteyka - спасибо огромное)

 

 

Всё равно не понятно, ты что, каждому свойству в коде будешь ID забивать? А если добавится или поменяется?

 

Там эти свойства вряд ли поменяются или добавятся, так как во-первых - это основные свойства, а во вторых - это я обговорил зараннее. Да и поменять их дело одной-двух минут. Со спрайтом иконок дольше возится придется, нежели чем с кодом)

 

кстати так

f->id == 180

не отрабатывает. Сам уже пробовал.

Ссылка на сообщение
Поделиться на другие сайты
  • 6 месяцев спустя...

А если нужно вывести определенные значения свойства id=153 не в карточке товара,

а вместо аннотации в списке продуктов (напр. в майне)

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

Вывод избранных свойств в списках товаров

Предлагается способ вывода в списках товаров нескольких избранных свойств (с указанными ID).

Создавалось для версии 2.3.6.

Скорее всего, годится и для других версий 2.x

http://simpla-tuning.com/products/vyvod-izbrannyh-svojstv-v-spiskah-tovarov

Ссылка на сообщение
Поделиться на другие сайты
  • 6 месяцев спустя...

{if $product->features}

   {foreach $product->features as $f}

        {if $f->feature_id==180 && !empty($f->value)}

           {$f->value}

        {/if}

    {/foreach}

{/if}

 

 

 

Спасибо большое за код.

Не подскажите, а как тоже самое отобразить в каталоге (products.tpl) ?

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

 

 Не подскажите, а как тоже самое отобразить в каталоге (products.tpl) ?

А зачем свойства в списке? Если у одного товара много свойств, а у другого пару или вообще нет, то представь какой кавардак на странице получится?

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

А зачем свойства в списке? Если у одного товара много свойств, а у другого пару или вообще нет, то представь какой кавардак на странице получится?

Дело в том, что в коде уже идет проверка, есть ли то или иное свойство. Поэтому данная проверка не создаст хаос ))

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

Ваш код выше самый раз в моем случай, т.к. отображаются именно те свойства, что выбраны. а по ссылке там отображаются первые 3-4 из общих характеристик.

 

вот как теперь прикрутить Ваш код в products.tpl ?

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

Только не смейтесь, но я сделал так )) :

в product.tpl вставил

{include file='short-description.tpl'}

а в него дособирал свойств ))

 {if $product->features}
   {foreach $product->features as $f}
   
   {if $f->feature_id==7 && !empty($f->value)}
           <br>• вес {$f->value}, 
        {/if}
    {if $f->feature_id==8 && !empty($f->value)}
           ШxВxТ {$f->value}
        {/if}
            
   {if $f->feature_id==35 && !empty($f->value)}
           <br>• аккумулятор {$f->value}
        {/if}
        
   {if $f->feature_id==25 && !empty($f->value)}
           <br>• {$f->value}
        {/if}
        
   {if $f->feature_id==165 && !empty($f->value)}
           <br>• память {$f->value}
        {/if} 
        
   {if $f->feature_id==16 && !empty($f->value)}
           <br>• камера {$f->value}
        {/if}        
        
   {if $f->feature_id==11 && !empty($f->value)}
           <br>• экран {$f->value}, 
        {/if}
        {if $f->feature_id==12 && !empty($f->value)}
           разрешение {$f->value}
        {/if}
        {if $f->feature_id==4 && !empty($f->value)}
           {$f->value}
        {/if}
        {if $f->feature_id==2 && !empty($f->value)}
           •  {$f->value},
        {/if}
    {/foreach}
{/if}

так отображается отлично в карточке товара. Теперь хочу, чтобы свойства эти и в каталоге показались, тоже с

{include file='short-description.tpl'}

или быть может иначе?!

Изменено пользователем DarAmal
Ссылка на сообщение
Поделиться на другие сайты

Можно инклудом, но стили нужно будет переделать уже под список. Хотя, у тебя их там и нет. :)

Изменено пользователем koteyka
Ссылка на сообщение
Поделиться на другие сайты

Можно инклудом, но стили нужно будет переделать уже под список.

главное чтобы отобразились, а стили не проблема

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

Я не помню точно, а свойства каждого товара в сам шаблон у нас передаются из ProductsView.php? По моему нет. В таком случае нужно будет ProductsView.php допиливать.

Изменено пользователем koteyka
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...