Перейти к содержимому


Фото
- - - - -

вывод первых 5 свойств


Best Answer Kami , 01.05.2018 - 23:51

пока у меня мысли такие

 

<ul class="feature-block">
  {assign var=max_f value=5}
   {foreach $product->features as $f} 
       <li>  {$f->name}<span>{$f->value}</span></li>   
 {if $f@iteration >= $max_f}
{break}
 {/if}
    {/foreach}
 </ul>
Перейти к посту


  • Чтобы отвечать, сперва войдите на форум
15 ответов в теме

#1 Kami

Kami
  • Пользователь
  • 113 сообщений
  • Откуда:Россия

Опубликовано 01.05.2018 - 23:31

Доброй ночи, как проще вывести первые 5 заполненых свойств? Раньше по условию id выводил, но сейчас необходимо вывести первые 5 свойств у товара которые заполнены.



#2 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 497 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 01.05.2018 - 23:38

Вывести где? На главной, в каталоге, в карточке, в корзине, в связанных товарах?
Блин серьезно достали тупняк писать. Тут не форум экстрасенсов!

#3 Kami

Kami
  • Пользователь
  • 113 сообщений
  • Откуда:Россия

Опубликовано 01.05.2018 - 23:46

Вывести где? На главной, в каталоге, в карточке, в корзине, в связанных товарах?
Блин серьезно достали тупняк писать. Тут не форум экстрасенсов!

 

В карточке товара.



#4 Kami

Kami
  • Пользователь
  • 113 сообщений
  • Откуда:Россия

Опубликовано 01.05.2018 - 23:51   Best Answer

пока у меня мысли такие

 

<ul class="feature-block">
  {assign var=max_f value=5}
   {foreach $product->features as $f} 
       <li>  {$f->name}<span>{$f->value}</span></li>   
 {if $f@iteration >= $max_f}
{break}
 {/if}
    {/foreach}
 </ul>


#5 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 497 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 02.05.2018 - 00:21


пока у меня мысли такие

<ul class="feature-block">
  {assign var=max_f value=5}
   {foreach $product->features as $f} 
       <li>  {$f->name}<span>{$f->value}</span></li>   
 {if $f@iteration >= $max_f}
{break}
 {/if}
    {/foreach}
 </ul>
Херня, все равно будут выбираться все свойства всех товаров, а это тормоза и перегруз.
Завтра если не забуду набросаю решение за + в карму.

#6 phukortsin

phukortsin
  • Пользователь
  • 157 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 02.05.2018 - 08:53

пока у меня мысли такие
 

<ul class="feature-block">
  {assign var=max_f value=5}
   {foreach $product->features as $f} 
       <li>  {$f->name}<span>{$f->value}</span></li>   
 {if $f@iteration >= $max_f}
{break}
 {/if}
    {/foreach}
 </ul>

 

Решение идеальное -  простое и правильное.

Насчет "тормоза и перегруз" - это мастер преувеличил сильно. Должно быть, перепутал, перегрузы бывают, когда подобное делают в списках - и то перегруз возникает в другом месте. 

В карточке товара все равно выбираются из базы все свойства, код работает прекрасно.



#7 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 497 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 02.05.2018 - 09:25

Решение идеальное - простое и правильное.

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

Да, я почему-то сразу про вывод в каталоге подумал.

#8 phukortsin

phukortsin
  • Пользователь
  • 157 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 02.05.2018 - 09:37

Да, я почему-то сразу про вывод в каталоге подумал.

 

При этом НЕ подумал, что в простом цикле Smarty в принципе никаких тормозов быть не может.

При этом НЕ подумал, что хорошо бы добавить извинения перед ТС за грубость...



#9 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 497 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 02.05.2018 - 10:09

При этом НЕ подумал, что в простом цикле Smarty в принципе никаких тормозов быть не может.
При этом НЕ подумал, что хорошо бы добавить извинения перед ТС за грубость...

Я ничего не писал о тормозах в циклах, глаза протри.
За какую грубость? Корс ты в очередной раз доказал что ты дебил.

Изменено: Noxter, 02.05.2018 - 10:09


#10 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 497 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 02.05.2018 - 13:08

Ещё один вариант через срез массива, как по мне проще решение без дополнительного условия.
Сам код:
{foreach $product->features|@array_slice:0:5 as $f}
<p>{$f->name} - {$f->value}</p>
{/foreach}
Где 0 начало среза, 5 количество элементов.
Удачи!

Изменено: Noxter, 02.05.2018 - 13:08


#11 phukortsin

phukortsin
  • Пользователь
  • 157 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 02.05.2018 - 16:28

Я ничего не писал о тормозах в циклах, глаза протри.

 

И я ничего не писал, о том что Noxter писал о тормозах в циклах. Посему протрите глаза/очки сами, дорогой друг.


Было написано, что Noxter НЕ подумал, что в простом цикле Smarty в принципе никаких тормозов быть не может.

Обычно программисты бывают сильны в логике...



#12 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 497 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 02.05.2018 - 17:14

И я ничего не писал, о том что Noxter писал о тормозах в циклах. Посему протрите глаза/очки сами, дорогой друг.

Было написано, что Noxter НЕ подумал, что в простом цикле Smarty в принципе никаких тормозов быть не может.
Обычно программисты бывают сильны в логике...

Ты больной

#13 phukortsin

phukortsin
  • Пользователь
  • 157 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 02.05.2018 - 18:03

Спасибо, доктор...



#14 madison21

madison21
  • Пользователь
  • 79 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 16.05.2018 - 22:29

Я у себя такое решение использую..

{foreach $product->features as $f}
{if $f@iteration < 8 && $f->feature_id != '1' && $f->feature_id != '2'}
  <div class="propertyTable">
       <div class="propertyName">{$f->name}</div>
       <div class="propertyValue">{$f->value} </div>
  </div>
 {/if}
 {/foreach}

Выводит только первые 8 свойств.
А также закрываю 2 свойства по их id, просто я их для других целей как переменные ввёл в базу. 



#15 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 497 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 17.05.2018 - 01:22

Юзайте in_array вместо кучи ифов.

#16 madison21

madison21
  • Пользователь
  • 79 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 17.05.2018 - 23:53

Юзайте in_array вместо кучи ифов.

Это я только осваиваю..
А компоновать или нет - это влияет на что-то или только для удобства разработчика?






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых