Kami Опубликовано 1 мая, 2018 Жалоба Поделиться Опубликовано 1 мая, 2018 Доброй ночи, как проще вывести первые 5 заполненых свойств? Раньше по условию id выводил, но сейчас необходимо вывести первые 5 свойств у товара которые заполнены. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 1 мая, 2018 Жалоба Поделиться Опубликовано 1 мая, 2018 Вывести где? На главной, в каталоге, в карточке, в корзине, в связанных товарах? Блин серьезно достали тупняк писать. Тут не форум экстрасенсов! Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 1 мая, 2018 Автор Жалоба Поделиться Опубликовано 1 мая, 2018 Вывести где? На главной, в каталоге, в карточке, в корзине, в связанных товарах?Блин серьезно достали тупняк писать. Тут не форум экстрасенсов! В карточке товара. Цитата Ссылка на сообщение Поделиться на другие сайты
Решение Kami Опубликовано 1 мая, 2018 Автор Решение Жалоба Поделиться Опубликовано 1 мая, 2018 пока у меня мысли такие <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> Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 1 мая, 2018 Жалоба Поделиться Опубликовано 1 мая, 2018 пока у меня мысли такие <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>Херня, все равно будут выбираться все свойства всех товаров, а это тормоза и перегруз.Завтра если не забуду набросаю решение за + в карму. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 2 мая, 2018 Жалоба Поделиться Опубликовано 2 мая, 2018 пока у меня мысли такие <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> Решение идеальное - простое и правильное. Насчет "тормоза и перегруз" - это мастер преувеличил сильно. Должно быть, перепутал, перегрузы бывают, когда подобное делают в списках - и то перегруз возникает в другом месте. В карточке товара все равно выбираются из базы все свойства, код работает прекрасно. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 2 мая, 2018 Жалоба Поделиться Опубликовано 2 мая, 2018 Решение идеальное - простое и правильное. Насчет "тормоза и перегруз" - это мастер преувеличил сильно. Должно быть, перепутал, перегрузы бывают, когда подобное делают в списках - и то перегруз возникает в другом месте. В карточке товара все равно выбираются из базы все свойства, код работает прекрасно.Да, я почему-то сразу про вывод в каталоге подумал. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 2 мая, 2018 Жалоба Поделиться Опубликовано 2 мая, 2018 Да, я почему-то сразу про вывод в каталоге подумал. При этом НЕ подумал, что в простом цикле Smarty в принципе никаких тормозов быть не может.При этом НЕ подумал, что хорошо бы добавить извинения перед ТС за грубость... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 2 мая, 2018 Жалоба Поделиться Опубликовано 2 мая, 2018 (изменено) При этом НЕ подумал, что в простом цикле Smarty в принципе никаких тормозов быть не может.При этом НЕ подумал, что хорошо бы добавить извинения перед ТС за грубость...Я ничего не писал о тормозах в циклах, глаза протри.За какую грубость? Корс ты в очередной раз доказал что ты дебил. Изменено 2 мая, 2018 пользователем Noxter Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 2 мая, 2018 Жалоба Поделиться Опубликовано 2 мая, 2018 (изменено) Ещё один вариант через срез массива, как по мне проще решение без дополнительного условия.Сам код: {foreach $product->features|@array_slice:0:5 as $f} <p>{$f->name} - {$f->value}</p> {/foreach} Где 0 начало среза, 5 количество элементов.Удачи! Изменено 2 мая, 2018 пользователем Noxter Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 2 мая, 2018 Жалоба Поделиться Опубликовано 2 мая, 2018 Я ничего не писал о тормозах в циклах, глаза протри. И я ничего не писал, о том что Noxter писал о тормозах в циклах. Посему протрите глаза/очки сами, дорогой друг. Было написано, что Noxter НЕ подумал, что в простом цикле Smarty в принципе никаких тормозов быть не может.Обычно программисты бывают сильны в логике... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 2 мая, 2018 Жалоба Поделиться Опубликовано 2 мая, 2018 И я ничего не писал, о том что Noxter писал о тормозах в циклах. Посему протрите глаза/очки сами, дорогой друг. Было написано, что Noxter НЕ подумал, что в простом цикле Smarty в принципе никаких тормозов быть не может.Обычно программисты бывают сильны в логике...Ты больной Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 2 мая, 2018 Жалоба Поделиться Опубликовано 2 мая, 2018 Спасибо, доктор... Цитата Ссылка на сообщение Поделиться на другие сайты
madison21 Опубликовано 16 мая, 2018 Жалоба Поделиться Опубликовано 16 мая, 2018 Я у себя такое решение использую.. {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, просто я их для других целей как переменные ввёл в базу. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 16 мая, 2018 Жалоба Поделиться Опубликовано 16 мая, 2018 Юзайте in_array вместо кучи ифов. Цитата Ссылка на сообщение Поделиться на другие сайты
madison21 Опубликовано 17 мая, 2018 Жалоба Поделиться Опубликовано 17 мая, 2018 Юзайте in_array вместо кучи ифов.Это я только осваиваю..А компоновать или нет - это влияет на что-то или только для удобства разработчика? Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.