Перейти к содержанию

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

Добрый день.
Есть следующая структура:

  • Категория
    • Субкатегория 1
      • Субкатегория 2
        • Товар

На странице Главной категории выводятся товары (category.tpl). Как к товару добавить айди категорий и субкатегорий  к которым он относится?


Ожидаемый результат такой: data-categories="КатегорияID_Субкатегория1ID_Субкатегория2ID"

Поделиться сообщением


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

как пример посмотрите файл от seopro

а именно метод getPathByProduct

Поделиться сообщением


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

как-то так:

 

Цитата

$cat = array();    
    $product_category = $this->model_catalog_product->getCategories($product_id);
          foreach ($product_category as $prodcat) {
              
          $category_info = $this->model_catalog_category->getCategory($prodcat['category_id']);
            if ($category_info) {
           $cat[] = array(
          'name'     => $category_info['name'],
          'href'     => $this->url->link('product/category', 'path=' . $category_info['category_id'])
          );
            }
          }

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
14 часов назад, MilkeyWay сказал:

как-то так:

 

 

Спасибо, нашел другой способ. Может пригодится кому-то.

 

Перед $products[] = array(

//

$product_categories = array();
                                    
                                    
$categories = $this->model_catalog_product->getCategories($result['product_id']);
                                    if($categories){
                                        foreach($categories as $category){
                                            $category_info = $this->model_catalog_category->getCategory($category['category_id']);
                                            $product_categories[] = array(
                                                'id' => (string)$category['category_id'],
                                                'name' => $category_info['name'],
                                                'href' => $this->url->link('product/category', 'path=' . $category_info['category_id'] )
                                            );
                                        }
                                    }
                        $products[] = array(

В массив $products[] = array(

добавляем строку

'product_categories' => $product_categories, //массив с id

 

Ну и вывод в .tpl в цикле <?php foreach ($category['products'] as $product) { ?>

 

<?php if($product['product_categories']){ ?>
	<?php  $product_categorie_ids='';?>
	<?php foreach($product['product_categories'] as $category){ ?>
			<?php  $product_categorie_ids = $product_categorie_ids . '_' . $category['id'];?>
	<?php } ?>
	<span><?php echo $product_categorie_ids; ?></span>
<?php } ?>

 

Изменено пользователем zzharuk
добавил код

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
32 минуты назад, zzharuk сказал:

$categories = $this->model_catalog_product->getCategories($result['product_id']);

 

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

Поделиться сообщением


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

А че нужно-то? получить все пути товара?
Один запрос - и все будет хорошо
подсказка Group_Concat

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
44 минуты назад, chukcha сказал:

А че нужно-то? получить все пути товара?
Один запрос - и все будет хорошо
подсказка Group_Concat

Нет, пути товара не нужны.

Нужно на странице Главной категории сгруппировать продукты в слайдеры по субкатегориям.

Находил платный модуль. Есть бесплатный, который выводит плиткой из любой категории. А id всех категорий вида "num_num_num" мне нужны в качестве data-attribute.

Вложеность такая:

Категория -> Субкатегория 1 -> Субкатегория 2 -> Товары

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×