shooroop Posted July 5, 2015 Report Share Posted July 5, 2015 (edited) Запутался совсем, как вывести цену у просмотренных товаров? <!-- Просмотренные товары --> {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)--> Edited July 5, 2015 by shooroop Quote Link to post Share on other sites
mishanya Posted July 5, 2015 Report Share Posted July 5, 2015 {$browsed_product->price} Quote Link to post Share on other sites
Noxter Posted July 5, 2015 Report Share Posted July 5, 2015 {$browsed_product->price}А вы проверили? Не будет так работать потому как во вью нет выборки по вариантам. Quote Link to post Share on other sites
Kors Posted July 6, 2015 Report Share Posted July 6, 2015 Это маленький недостаток, проистекающий из принципиально неверного общего построения view/View.php - там код дублирован просто ужасно. Кроме get_browsed_products, есть еще 3 очень похожие функции. Это тот случай, когда Simpla неоправданно усложнена на ровном месте. И в соответствии в общими законами программирования при таком подходе возрастает риск ошибок и усложняются изменения. Говорилось про это и раньше. Пора бы автору обратить внимание и эти 4 функции оформить правильным образом... Quote Link to post Share on other sites
Solution mishanya Posted July 6, 2015 Solution Report Share Posted July 6, 2015 (edited) А вы проверили?Не будет так работать потому как во вью нет выборки по вариантам. да, нужно добавить в плагин 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} Edited September 17, 2018 by mishanya Quote Link to post Share on other sites
Dmitry86 Posted September 17, 2018 Report Share Posted September 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]; ? Quote Link to post Share on other sites
mishanya Posted September 17, 2018 Report Share Posted September 17, 2018 Можно поинтересоваться, почему в случае с вариантами используется $product[$id], а не $products[$id] ? Разве не так должно быть: if(isset($products[$id]->variants[0])) $products[$id]->variant = $products[$id]->variants[0]; ? да. опечатка. Quote Link to post Share on other sites
Dmitry86 Posted September 18, 2018 Report Share Posted September 18, 2018 (edited) да. опечатка. Спасибо, Mishanya. Есть ещё такой вопрос: Допустим, я зашел в карточку одного товара, потом перешел ещё в какую-то, и вернулся на карточку первого. В результате на карточке с первым товаром в блоке "недавно просмотренных" показывается этот же товар. Можно как-то этого избежать, чтобы в карточке товара не дублировался в блоке "просмотренных товаров" этот же товар? Edited September 18, 2018 by Dmitry86 Quote Link to post Share on other sites
phukortsin Posted September 19, 2018 Report Share Posted September 19, 2018 Если уж ставить такую задачу, то дополнительно надо бы сделать, чтобы в просмотренных1. на страницах каталога - не показывался товар, который есть списке товаров,2. на странице товара - не показывался товар, который есть в сопутствующих,3. на странице корзины - не показывался товар, который есть в корзине.4. возможно, и еще где... Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.