shooroop Опубликовано 5 июля, 2015 Жалоба Поделиться Опубликовано 5 июля, 2015 (изменено) Запутался совсем, как вывести цену у просмотренных товаров? <!-- Просмотренные товары --> {get_browsed_products var=browsed_products limit=20} {if $browsed_products} <h2>Вы просматривали:</h2> <ul id="browsed_products"> {foreach $browsed_products as $browsed_product} <li> <a href="products/{$browsed_product->url}"><img src="{$browsed_product->image->filename|resize:50:50}" alt="{$browsed_product->name|escape}" title="{$browsed_product->name|escape}"></a> </li> {/foreach} </ul> {/if} <!-- Просмотренные товары (The End)--> Изменено 5 июля, 2015 пользователем shooroop Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 5 июля, 2015 Жалоба Поделиться Опубликовано 5 июля, 2015 {$browsed_product->price} Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 5 июля, 2015 Жалоба Поделиться Опубликовано 5 июля, 2015 {$browsed_product->price}А вы проверили? Не будет так работать потому как во вью нет выборки по вариантам. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 6 июля, 2015 Жалоба Поделиться Опубликовано 6 июля, 2015 Это маленький недостаток, проистекающий из принципиально неверного общего построения view/View.php - там код дублирован просто ужасно. Кроме get_browsed_products, есть еще 3 очень похожие функции. Это тот случай, когда Simpla неоправданно усложнена на ровном месте. И в соответствии в общими законами программирования при таком подходе возрастает риск ошибок и усложняются изменения. Говорилось про это и раньше. Пора бы автору обратить внимание и эти 4 функции оформить правильным образом... Цитата Ссылка на сообщение Поделиться на другие сайты
Решение mishanya Опубликовано 6 июля, 2015 Решение Жалоба Поделиться Опубликовано 6 июля, 2015 (изменено) А вы проверили?Не будет так работать потому как во вью нет выборки по вариантам. да, нужно добавить в плагин get_browsed_products перед: $browsed_products_images = $this->products->get_images(array('product_id'=>$browsed_products_ids)); выборку вариантов: $variants = $this->variants->get_variants(array('product_id'=>$browsed_products_ids, 'in_stock'=>true)); foreach($variants as &$variant) { $products[$variant->product_id]->variants[] = $variant; } и после if(isset($products[$id]->images[0])) $products[$id]->image = $products[$id]->images[0]; добавить if(isset($products[$id]->variants[0])) $products[$id]->variant = $products[$id]->variants[0]; затем можно вызывать в цикле: {foreach $browsed_product->variants as $v}{$v->price}{/foreach} Изменено 17 сентября, 2018 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
Dmitry86 Опубликовано 17 сентября, 2018 Жалоба Поделиться Опубликовано 17 сентября, 2018 и после if(isset($products[$id]->images[0])) $products[$id]->image = $products[$id]->images[0]; добавить if(isset($product[$id]->variants[0])) $product[$id]->variant = $products[$id]->variants[0]; Можно поинтересоваться, почему в случае с вариантами используется $product[$id], а не $products[$id] ? Разве не так должно быть: if(isset($products[$id]->variants[0])) $products[$id]->variant = $products[$id]->variants[0]; ? Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 17 сентября, 2018 Жалоба Поделиться Опубликовано 17 сентября, 2018 Можно поинтересоваться, почему в случае с вариантами используется $product[$id], а не $products[$id] ? Разве не так должно быть: if(isset($products[$id]->variants[0])) $products[$id]->variant = $products[$id]->variants[0]; ? да. опечатка. Цитата Ссылка на сообщение Поделиться на другие сайты
Dmitry86 Опубликовано 18 сентября, 2018 Жалоба Поделиться Опубликовано 18 сентября, 2018 (изменено) да. опечатка. Спасибо, Mishanya. Есть ещё такой вопрос: Допустим, я зашел в карточку одного товара, потом перешел ещё в какую-то, и вернулся на карточку первого. В результате на карточке с первым товаром в блоке "недавно просмотренных" показывается этот же товар. Можно как-то этого избежать, чтобы в карточке товара не дублировался в блоке "просмотренных товаров" этот же товар? Изменено 18 сентября, 2018 пользователем Dmitry86 Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 19 сентября, 2018 Жалоба Поделиться Опубликовано 19 сентября, 2018 Если уж ставить такую задачу, то дополнительно надо бы сделать, чтобы в просмотренных1. на страницах каталога - не показывался товар, который есть списке товаров,2. на странице товара - не показывался товар, который есть в сопутствующих,3. на странице корзины - не показывался товар, который есть в корзине.4. возможно, и еще где... Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.