COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

Как узнать категории в которых находится просматриваемый товар?


AlexDev

Recommended Posts

Как вывести все категории, в которых находится продукт в оспро 2.3?

 

пробовал

<?php print_r($categories); ?>

но выдает

Цитата

Notice: Undefined variable: categories in /home/admin/web/.ru/public_html/vqmod/vqcache/vq2-catalog_view_theme_default_template_product_product.tpl on line 9

 

Как я понял надо что-то прописать в контроллере...

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

Нашел тут

[на помойке]

 

в контроллере товара добавить

 

 $categories = $this->model_catalog_product->getCategories($product_id);
          
            if ($categories)
               $categories_info = $this->model_catalog_category->getCategory($categories[0]['category_id']);
          
            $this->data['category_title'] = $categories_info['name'];          

а потом в шаблоне выводить

<?php echo $category_title; ?>

однако не работает. видимо за 2.5 года что-то изменилось. и в 2.3 как-то по другому, но как?

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

9 минут назад, Yoda сказал:

2 - где именно вывести ?

 

 

на странице продукта (product.tpl) вывести список дополнительных категорий в которых находится продукт с целью стилизации.

 

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

вот нужно как-то вытащить переменную, что если продукт находится в такой-то дополнительной категории - тогда стиль страницы такой-то.

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

 

Понял, что нужно что-то дописать в controller\product\product.php

вот все гуглю.. нашел решения - но для других версий. под 2.3 не срабатывает. видимо что-то переименовали.

 

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

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

1 час назад, Yoda сказал:

 


$data['categories'] = array();

$categories = $this->model_catalog_product->getCategories($product_id);


foreach ($categories as $result) {
				$data['categories'][] = array(
					'name' => $result['name'],
					'href' => $this->url->link('product/category', 'path=' . $result['category_id'])
				);
}

Не совсем кошерная конструкция, так как урл категории будет строиться через пень-колоду.
Но seo_pro его должен пофиксить!

 

Спасибо, так работает!

я только маленькую правочку сделал, так как была ошибка, мол неизвестная перемененная $product_id

 

сделал так и стало все выводить

$data['categories'] = array();
$product_id=(int)$this->request->get['product_id'];
$categories = $this->model_catalog_product->getCategories($product_id);

foreach ($categories as $result) {
				$data['categories'][] = array(
					'name' => $result['name'],
					'href' => $this->url->link('product/category', 'path=' . $result['category_id'])
				);
}

хотя видимо достаточно было просто ниже по коду опустить, когда объявляется эта переменная

 

 

 

обнаружил следующее:

категории выводит, но сверху пишет:

Notice: Undefined index: name in /home/admin/web/....ru/public_html/vqmod/vqcache/vq2-catalog_controller_product_product.php on line 89
Notice: Undefined index: name in /home/admin/web/....ru/public_html/vqmod/vqcache/vq2-catalog_controller_product_product.php on line 89
Notice: Undefined index: name in /home/admin/web/....ru/public_html/vqmod/vqcache/vq2-catalog_controller_product_product.php on line 89

 

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу