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

Вывод цены у просмотренных товаров?


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

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

Запутался совсем, как вывести цену у просмотренных товаров?

 

 

 

 

 

<!-- Просмотренные товары -->
			{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)-->
			

 

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

Это маленький недостаток, проистекающий из принципиально неверного общего построения view/View.php -  там код дублирован просто ужасно. Кроме get_browsed_products, есть еще 3 очень похожие функции. Это тот случай, когда Simpla неоправданно усложнена на ровном месте. И в соответствии в общими законами программирования при таком подходе возрастает риск ошибок и усложняются изменения. Говорилось про это и раньше. Пора бы автору обратить внимание и эти 4 функции оформить правильным образом...

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

А вы проверили?

Не будет так работать потому как во вью нет выборки по вариантам.

 

 

 

да, нужно добавить в плагин 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}
Изменено пользователем mishanya
Ссылка на сообщение
Поделиться на другие сайты
  • 3 года спустя...

 

и после

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];

?

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

Можно поинтересоваться, почему в случае с вариантами используется $product[$id], а не $products[$id] ?

 

Разве не так должно быть:

if(isset($products[$id]->variants[0]))
	$products[$id]->variant = $products[$id]->variants[0];

?

 

да. опечатка.

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

да. опечатка.

 

Спасибо, Mishanya. Есть ещё такой вопрос: Допустим, я зашел в карточку одного товара, потом перешел ещё в какую-то, и вернулся на карточку первого. В результате на карточке с первым товаром в блоке "недавно просмотренных" показывается этот же товар. Можно как-то этого избежать, чтобы  в карточке товара не дублировался в блоке "просмотренных товаров" этот же товар?

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

Если уж ставить такую задачу, то дополнительно надо бы сделать, чтобы в просмотренных

1. на страницах каталога - не показывался товар, который есть списке товаров,

2. на странице товара - не показывался товар, который есть в сопутствующих,

3. на странице корзины - не показывался товар, который есть в корзине.

4. возможно, и еще где...

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

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

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

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

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

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

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

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

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

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