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

Как вывести категорию товара при просмотре "Бренд"


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

Ужас как любопытно узнать подробности - кто пропустил,  где пропустил, как надо правильно делать с break...

И это пишет Корс гуру программирования допотопными средствами :D

Читаем матчасть по циклам, как минимум сэкономит запросы к БД.

Ссылка на сообщение
Поделиться на другие сайты
  • Ответов 50
  • Дата создания
  • Последний ответ

Лучшие авторы в теме

Лучшие авторы в теме

Популярные посты

решение лучше   добавляем $categories = $this->categories->get_product_categories($products_ids); foreach($categories as $cat) $products[$cat->product_id]->category = $this->

Можете ТОЧНО сказать, где в указанном способе в коде "Пропустил break" ?

 

Приведенный код создает ОДИН запрос к БД, Если знаете, как лучше или правильнее, сообщайте. Если не можете или не хотите сказать ТОЧНО по делу, просьба не писать вообще, чтоб не разводить флуд...

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

Можете ТОЧНО сказать, где в указанном способе в коде "Пропустил break" ?

 

Приведенный код создает ОДИН запрос к БД, Если знаете, как лучше или правильнее, сообщайте. Если не можете или не хотите сказать ТОЧНО по делу, просьба не писать вообще, чтоб не разводить флуд...

Ну если его здесь нет:

Пробуйте

 

 

		$categories = $this->categories->get_product_categories($products_ids);
		foreach($categories as $cat)
			if(!isset($products[$cat->product_id]->category))
				$products[$cat->product_id]->category = $this->categories->get_category((int)$cat->category_id);

 

 

Логично же что пропустил break.
Ссылка на сообщение
Поделиться на другие сайты

По моему, совсем не логично.
Чтобы понять Вашу логику, я и прошу написать по-Вашему правильный вариант вместе с правильно вставленным break.
В коде Simpla полным-полно подобных циклов, и никто на форуме, кажется, до сих пор не требовал навставлять там break-ов.

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

 

Пробуйте

 

		$categories = $this->categories->get_product_categories($products_ids);
		foreach($categories as $cat)
			if(!isset($products[$cat->product_id]->category))
				$products[$cat->product_id]->category = $this->categories->get_category((int)$cat->category_id);

Подскажите пожалуйста, почему выводится только одна категория? Другие категории этого товара не выводятся

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

Подскажите пожалуйста, почему выводится только одна категория? Другие категории этого товара не выводятся

 

Потому что задуман вывод только одной категории.

Если надо выводить все, потребуется некоторое усложнение...

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

 

Пробуйте

 

		$categories = $this->categories->get_product_categories($products_ids);
		foreach($categories as $cat)
			if(!isset($products[$cat->product_id]->category))
				$products[$cat->product_id]->category = $this->categories->get_category((int)$cat->category_id);

Подскажите, а как можно данное решение использовать для вывода категории товара в yandex.php

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

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

А если ждете ответ краткий, то можно данное решение использовать копированием-вставкой. Желательно при этом понимать смысл: что копируем, зачем, куда вставляем, почему именно туда, а не в десяток разных прочих мест и т.д.

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

По-разному можно использовать.

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

 

А если ждете ответ краткий, то можно данное решение использовать копированием-вставкой. Желательно при этом понимать смысл: что копируем, зачем, куда вставляем, почему именно туда, а не в десяток разных прочих мест и т.д.

Я просто спросил совета. Мне не нужна "немаленькая статья".

Вы же понимаете суть вопроса? Я и сам понимаю, что "Копированием и вставкой" тут не обойтись, но именно с yndex.php у меня не получается.

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

Я просто спросил совета. Мне не нужна "немаленькая статья".

Вы же понимаете суть вопроса? Я и сам понимаю, что "Копированием и вставкой" тут не обойтись, но именно с yndex.php у меня не получается.

 

Так стандартно же выводится название категории в yandex.php 

А у самого товара прописывается id этой категории как по правилам

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

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

Так стандартно же выводится название категории в yandex.php 

А у самого товара прописывается id этой категории как по правилам

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

В этом-то вся и проблема, помимо id категории товара, надо чтобы прописывалось наименование категории которой принадлежит товар

<typePrefix>Видеокамера</typePrefix>
<model>Видеокамера ST-712 IP PRO D</model>

Здесь <model> это как <name> (название товара)

<typePrefix> это наименование категории к которой принадлежит товар

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

В этом-то вся и проблема, помимо id категории товара, надо чтобы прописывалось наименование категории которой принадлежит товар

<typePrefix>Видеокамера</typePrefix>
<model>Видеокамера ST-712 IP PRO D</model>

Здесь <model> это как <name> (название товара)

<typePrefix> это наименование категории к которой принадлежит товар

 

Не понятно зачем вам решение которое тут применено?

 

Тут у вас простой SQL запрос, где вы должны подтянуть название категории. Ну а дальше просто в теге где вам нужно выводите. Данное решение вам не зачем.

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

Не понятно зачем вам решение которое тут применено?

 

Тут у вас простой SQL запрос, где вы должны подтянуть название категории. Ну а дальше просто в теге где вам нужно выводите. Данное решение вам не зачем.

Наверное неправильно выразился. Мне нужно у товара вывести категорию к которой он принадлежит и сделать это надо в yandex.php

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

Наверное неправильно выразился. Мне нужно у товара вывести категорию к которой он принадлежит и сделать это надо в yandex.php

 

Очень неправильно выразился. Ибо неопределенно, расплывчато и непонятно.

1. "у товара вывести категорию к которой он принадлежит" - это стандартно делается в виде

<categoryId>".$p->category_id."</categoryId>

2. Если надо непременно выводить и НАЗВАНИЕ категории, то надо говорить, как и что, в частности:

2.1 в каком виде выводить - как минимум  два варианта есть: Ботинки/Детские/Летние или просто Летние,

2.2 название одной главной категории или и дополнительных категорий тоже.

3. В зависимости от желаний 2.1 и 2.2 в реализации будут "большие разницы"...

 

 

 

 

 

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

 

Очень неправильно выразился. Ибо неопределенно, расплывчато и непонятно.

1. "у товара вывести категорию к которой он принадлежит" - это стандартно делается в виде

<categoryId>".$p->category_id."</categoryId>

2. Если надо непременно выводить и НАЗВАНИЕ категории, то надо говорить, как и что, в частности:

2.1 в каком виде выводить - как минимум  два варианта есть: Ботинки/Детские/Летние или просто Летние,

2.2 название одной главной категории или и дополнительных категорий тоже.

3. В зависимости от желаний 2.1 и 2.2 в реализации будут "большие разницы"...

 

 

 

 

 

Надо вывести именно НАЗВАНИЕ категории и именно ТОЛЬКО "Летние". Товар всегда относится только к одной категории (это наверняка тоже важно, чтобы не было  вопросов что выводить если товар принадлежит нескольким категориям)

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

В yandex.php уже есть  выбор всех категорий

Нужно сформировать массив id => name

И потом у каждого товара по его category_id выводить соответствующее имя из массива категорий

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

а как в карточке товара у связанных товарах вывести название категории?

Изменено пользователем get31
Ссылка на сообщение
Поделиться на другие сайты
4 часа назад, phukortsin сказал:

По аналогии с тем как в начале темы советовал Виталий Анатольевич...

Делаю и чет ничего

вставляю в ProductView.php

		$related_ids = array();
		$related_products = array();
		foreach($this->products->get_related_products($product->id) as $p)
		{
			$related_ids[] = $p->related_id;
			$related_products[$p->related_id] = null;
		}
		if(!empty($related_ids))
		{
			foreach($this->products->get_products(array('id'=>$related_ids, 'in_stock'=>1, 'visible'=>1)) as $p)
				$related_products[$p->id] = $p;
            
// ВЫВОДИМ КАТЕГОРИЮ
			$categories = $this->categories->get_product_categories($related_products);
			foreach($categories as $cat)
				$related_products[$cat->product_id]->category = $this->categories->get_category((int)$cat->category_id);
// ВЫВОДИМ КАТЕГОРИЮ


			$related_products_images = $this->products->get_images(array('product_id'=>array_keys($related_products)));
			foreach($related_products_images as $related_product_image)
				if(isset($related_products[$related_product_image->product_id]))
					$related_products[$related_product_image->product_id]->images[] = $related_product_image;
				
			$related_products_variants = $this->variants->get_variants(array('product_id'=>array_keys($related_products), 'in_stock'=>1));
			foreach($related_products_variants as $related_product_variant)
			{
				if(isset($related_products[$related_product_variant->product_id]))
				{
					$related_products[$related_product_variant->product_id]->variants[] = $related_product_variant;
				}
			}
			foreach($related_products as $id=>$r)
			{
				if(is_object($r))
				{
					$r->image = &$r->images[0];
					$r->variant = &$r->variants[0];
				}
				else
				{
					unset($related_products[$id]);
				}
			}
			$this->design->assign('related_products', $related_products);
		}

в шаблоне {$related_product->category->name}

Подскажите плиз, где ошибка?

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

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

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

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

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

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

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

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

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

Загрузка...

×
×
  • Создать...