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


Фото
- - - - -

Универсальный виджет для товаров

get_products плагин

Best Answer mishanya , 19.06.2018 - 00:31

версия 2.3

 

тогда так. в виджете что вы скопировали код у Noxter ПЕРЕД

 foreach($this->products->get_products($params) as $p)
	 $products[$p->id] = $p;

добавить

if($params['category_id']){
        $category = $this->categories->get_category((int)$params['category_id']);
	$params['category_id'] = $category->children;
}

и вызвать

 

{get_products var=custom_products category_id=77 limit=5}

где 77 айди родительской категории

Перейти к посту


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

#1 DarAmal

DarAmal
  • Пользователь
  • 696 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 18.06.2018 - 23:28

Приветствую!

 

Спасибо большое, Noxter-у за плагин, что опубликован здесь

 

Последовал инструкции, но возникла банальная проблема с выводом товаров с определенной категории на главной странице.

 

Вставляю в main.tpl

{get_products var=custom_products category_id=77 limit=5}
{if $custom_products}
<div class="max huawei">
    <div class="related">
                <ul class="catprods">
               {foreach $custom_products as $product}
                {include file='product_iteam.tpl'}
                {/foreach}
                </ul></div>
</div>
{/if}

Но ничего не выходит.


но если вместо category_id=77 вставляю к примеру brand_id=24, то отображаются товары бренда.

 

По совету Noxter-а поставил иначе:

{get_products var=custom_products category_id=[77] limit=5}

тоже ничего.

 

Подскажите, в чем проблема и где копать. Уже не знаю, заменил даже папку Smarty и файл api/Products.php, думал в них может что-то сменили ранее, не помогло.

 

Спасибо за любую информацию.



#2 shooroop

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

Опубликовано 18.06.2018 - 23:48

категория с таким id есть?



#3 DarAmal

DarAmal
  • Пользователь
  • 696 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 18.06.2018 - 23:50

категория с таким id есть?

Да, конечно есть.



#4 yr4ik

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

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

если у вас категории вида:

 

кат1

кат77

-кат771

-кат772

кат3

 

и вы указываете для поиска кат77 - то ничего не будет. Потому что товары находятся в кат771 и кат772



#5 DarAmal

DarAmal
  • Пользователь
  • 696 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 19.06.2018 - 00:05

если у вас категории вида:

 

кат1

кат77

-кат771

-кат772

кат3

 

и вы указываете для поиска кат77 - то ничего не будет. Потому что товары находятся в кат771 и кат772

Вы совершенно правы. Именно таким образом расположены категории. Для проверки указал категорию к примеру "кат771" и товары отобразились.

 

А как можно вывести товары родительской категории, ведь в админке отображаются товары той же "кат77"?



#6 mishanya

mishanya
  • Фрилансер
  • 2 550 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 19.06.2018 - 00:08

{get_products var=custom_products category_id=$category->children limit=5}

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


Изменено: mishanya, 19.06.2018 - 00:09


#7 DarAmal

DarAmal
  • Пользователь
  • 696 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 19.06.2018 - 00:14

{get_products var=custom_products category_id=$category->children limit=5}

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

Спасибо Мишаня. А как нужно выбрать нужную категорию.

то есть так?

{get_products var=custom_products category_id=77 limit=5}
{get_products var=custom_products category_id=$category->children limit=5}


#8 mishanya

mishanya
  • Фрилансер
  • 2 550 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 19.06.2018 - 00:20

нет. верия симплы какая?



#9 DarAmal

DarAmal
  • Пользователь
  • 696 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 19.06.2018 - 00:27

нет. верия симплы какая?

версия 2.3



#10 mishanya

mishanya
  • Фрилансер
  • 2 550 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 19.06.2018 - 00:31   Best Answer

версия 2.3

 

тогда так. в виджете что вы скопировали код у Noxter ПЕРЕД

 foreach($this->products->get_products($params) as $p)
	 $products[$p->id] = $p;

добавить

if($params['category_id']){
        $category = $this->categories->get_category((int)$params['category_id']);
	$params['category_id'] = $category->children;
}

и вызвать

 

{get_products var=custom_products category_id=77 limit=5}

где 77 айди родительской категории



#11 DarAmal

DarAmal
  • Пользователь
  • 696 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 19.06.2018 - 00:41

Мишаня, Гениально! Спасибо огромное.

 

а как внедрить в этот

{get_products var=custom_products category_id=77 limit=5}

чтобы товары рандомно отображались?

в других случаях чтобы featured/ is_new / discounted товары из этой категории отображались?



#12 mishanya

mishanya
  • Фрилансер
  • 2 550 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 19.06.2018 - 00:57

пользуйтесь поиском. вывод рандомных товаров http://forum.simplac...оваров-на-глав/

 

в других случаях чтобы featured/ is_new / discounted товары из этой категории отображались?

 

так же как я выше писал сделать для других плагинов в view/View.php



#13 DarAmal

DarAmal
  • Пользователь
  • 696 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 19.06.2018 - 07:48

Мишаня, огромное спасибо. Все отлично работает теперь.

еще один вопросик немного не в тему.

 

Как вывести к примеру рядом с этим блоком количество товаров из той или иной категории?

 

попытался вставить

{api module=products method=count_products var=count category_id='77' visible=1}
{$count}

показывает "0".



#14 Maksclub

Maksclub

    Помогаю с Симплой и c PHP

  • Фрилансер
  • 1 378 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 19.06.2018 - 11:33

-


Изменено: Maksclub, 19.06.2018 - 13:13


#15 mishanya

mishanya
  • Фрилансер
  • 2 550 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 19.06.2018 - 12:02

Мишаня, огромное спасибо. Все отлично работает теперь.

еще один вопросик немного не в тему.

 

Как вывести к примеру рядом с этим блоком количество товаров из той или иной категории?

 

попытался вставить

{api module=products method=count_products var=count category_id='77' visible=1}
{$count}

показывает "0".

 

ну так правильно показывает 0. вы делаете то же что в первом посту. передаете родительскую категорию а товары в дочерних



#16 Noxter

Noxter

    Simpla Developer

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

Опубликовано 19.06.2018 - 12:07

Вообще-то с версии 2.3.7 есть универсальный плагин (немного недоработанный) для всего API.

Вот тут читаем http://simpla-addons...21-aprelya-2015 пробуем сами.



#17 DarAmal

DarAmal
  • Пользователь
  • 696 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 20.06.2018 - 11:05

ну так правильно показывает 0. вы делаете то же что в первом посту. передаете родительскую категорию а товары в дочерних

я прошу прощение, Мишаня. вставил это в View.php

// Количество активных товаров
		$count_products = $this->products->count_products( array('visible'=>1) );
		$this->design->assign('count_catalog', $count_products);
		

после

if($params['category_id']){
        $category = $this->categories->get_category((int)$params['category_id']);
		$params['category_id'] = $category->children;
		}

а в шаблоне

{$count_catalog}

ничего не выходит.

Как можно это связать вместе с указанной категории?

{get_products var=custom_products category_id=77 limit=5}

 

Спасибо.



#18 phukortsin

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

Опубликовано 20.06.2018 - 13:07

Во первых, Ваш фрагмент
// Количество активных товаров
		$count_products = $this->products->count_products( array('visible'=>1) );
		$this->design->assign('count_catalog', $count_products);
считает кол-во ВСЕХ активных товаров  вообще.
Если надо в категории, то менять примерно так
$count_products = $this->products->count_products( array('visible'=>1, 'category_id'=>77) );
Или вместо 77 вставлять список подкатегорий
$count_products = $this->products->count_products( array('visible'=>1, 'category_id'=>array(77,86,16,209)) );
 
Во-вторых, будет или нет работать вставка {$count_catalog}, зависит от того, в какой шаблон это вставляете.
 
Если определяли переменую в View.php, то работать будет только в index.tpl.
Если хотите, что работало в products.tpl, то и фрагмент то надо вставлять в ProductsView.php...

#19 Kosjak76

Kosjak76
  • Модератор
  • 3 762 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 20.06.2018 - 13:16

Если определяли переменую в View.php, то работать будет только в index.tpl.

Бред сивой кобылы :)

Почему-то все, что в этом файле определяется работает во ВСЕХ шаблонах...

Вот пример, проверте:

			// Передаем в дизайн то, что может понадобиться в нем
			$this->design->assign('currencies',	$this->currencies);
			$this->design->assign('currency',	$this->currency);
			$this->design->assign('user',       $this->user);
			$this->design->assign('group',      $this->group);
			
			$this->design->assign('config',		$this->config);
			$this->design->assign('settings',	$this->settings);


#20 DarAmal

DarAmal
  • Пользователь
  • 696 сообщений
  • Дизайн, Верстка
  • Версия CMS:2.x

Опубликовано 20.06.2018 - 13:56

Во первых, Ваш фрагмент

// Количество активных товаров
		$count_products = $this->products->count_products( array('visible'=>1) );
		$this->design->assign('count_catalog', $count_products);
считает кол-во ВСЕХ активных товаров  вообще.
Если надо в категории, то менять примерно так
$count_products = $this->products->count_products( array('visible'=>1, 'category_id'=>77) );
Или вместо 77 вставлять список подкатегорий
$count_products = $this->products->count_products( array('visible'=>1, 'category_id'=>array(77,86,16,209)) );
 
Во-вторых, будет или нет работать вставка {$count_catalog}, зависит от того, в какой шаблон это вставляете.
 
Если определяли переменую в View.php, то работать будет только в index.tpl.
Если хотите, что работало в products.tpl, то и фрагмент то надо вставлять в ProductsView.php...

пытаюсь вставить в main.tpl.

сделал все это в View.php, нее помогло. ничего не выдает.







Также с меткой «get_products, плагин»

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

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