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

OpenCart 2.2: Вывести названия категорий и ссылки на них в карточке товара

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

Привет. Хочу вывести все категории товара на странице этого товара. Не нашел полного решения под Opencart 2 ни в рунете, ни буржунете.

Проверил решение для Opencart 1.5. По описанию — именно то, что надо, но не работает на 2.2, к сожалению.

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

Еще получилось вывести название категории и ссылку по инструкции отсюда. Но таким методом, как я понял, можно вывести только на одну категорию, как в хлебных крошках.

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

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


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

 

Проверил решение для Opencart 1.5. По описанию — именно то, что надо, но не работает на 2.2, к сожалению.

 

 

Чуть измените решение для 1.5
 
 $this->load->model('catalog/category');


          $data['catprod'] = 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) {
 $data['catprod'][] = array(
 'name'     => $category_info['name'],
 'href'     => $this->url->link('product/category', 'path=' . $category_info['category_id'])
 );
 }
          } 

всё работает! http://ocshop.xdomus.ru/index.php?route=product/product&path=24&product_id=40

  • +1 1

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


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

Спасибо огромное!

 

Шикарно получилось:

581da8fba355d7fd7d6f3a275a91704f.jpg

 

=====

 

Продублирую решение, чтобы оно не затерялось.

 

1. В файле catalog/controller/product/product.php

 

После строки

$this->load->model('catalog/product');

Вставить

$this->load->model('catalog/category');


        $data['catprod'] = 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) {
		$data['catprod'][] = array(
		'name'     => $category_info['name'],
		'href'     => $this->url->link('product/category', 'path=' . $category_info['category_id'])
		);
		}
} 

2. Затем в шаблоне, например, в catalog/view/theme/*/template/product/product.tpl

 

Перед

<?php if ($manufacturer) { ?>

Или другом месте вставить

<span>Categories: </span><?php foreach ($catprod as $catp) { ?> <a href="<?php echo $catp['href']; ?>"><?php echo $catp['name']; ?></a> |<?php } ?><br />
Изменено пользователем deezler
  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
<span>Categories: </span>

не кошерно))))

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


Ссылка на сообщение
Поделиться на другие сайты
<span>Categories: </span>

не кошерно))))

 

 

Так в оригинале было :) Тут главное категории вывести.

 

Я оформил так:

<div class="catslist"><?php foreach ($catprod as $catp) { ?><span><a href="<?php echo $catp['href']; ?>"><?php echo $catp['name']; ?></a></span> <?php } ?></div>

А в CSS запятые:

.catslist span:after {
    content: ",";
}
.catslist span:last-child:after {
content: "";
}
Изменено пользователем deezler

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


Ссылка на сообщение
Поделиться на другие сайты
<span>Categories: </span>

не кошерно))))

 

Да, надо из языковых вытащить...

А лучше вообще убрать и так понятно о чём речь :) 

там еще палочка | не кошерная...

Изменено пользователем Wadamir

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


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

там еще палочка | не кошерная...

 

 

Наверное уместней вывести списком (через <ul>) или каждому выводимому разделу присвоить бутстраповский стиль "label" с подходящим цветом.

 

Недавно решал задачу как вывести категорию товара. Выгнал в "крошки" в итоге, полный путь. Но это одна категория (не считая родительских), а все категории даже интересней вывести, для внутренней перелинковки.

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


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

Добрый вечер.

После вставки кодов вылетает ошибка на странице карточки товара (на месте где должно быть название категории):

Categories: Notice: Undefined variable: catprod in /home/users/l/limn/domains/777potolki99-os/catalog/view/theme/magazin/template/product/product.tpl on line 159Warning: Invalid argument supplied for foreach() in /home/users/l/limn/domains/777potolki99-os/catalog/view/theme/magazin/template/product/product.tpl on line 159

Помогите с решением этой проблемы. Версия ocStore 2.1.0.1

Судя по ошибке - не объявлена переменная. В файле catalog/controller/product/product.php  код добавил. Может код нужно как-то переделать?

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


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

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

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

 

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


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

то какое в итоге решения для opencart 2.3... ?

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


Ссылка на сообщение
Поделиться на другие сайты
В 09.06.2016 в 01:01, Tom сказал:

<span>Categories: </span>

не кошерно))))

Добрый день! Автор темы был Новичок, поэтому не факт что мне ответит, поэтому обращаюсь к вам. Можете подсказать как в этом коде сделать так, чтобы выводились не ВСЕ категории, а только главная?

 

Вот сам код напомню:

 

$this->load->model('catalog/category');


        $data['catprod'] = 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) {
		$data['catprod'][] = array(
		'name'     => $category_info['name'],
		'href'     => $this->url->link('product/category', 'path=' . $category_info['category_id'])
		);
		}

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


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

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

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

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

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

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

Войти

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

Войти

  • Похожий контент

    • От alla08
      Добрый вечер. Названия товара имеют разное к-во. символов, которое отображается в нескольких строках, поэтому карточки имеют разный размер высоты и отбражаються некорректно. Что нужно изменить. Спасибо

    • От CGS
      700.00 руб
      Скачать/Купить дополнение


      Вопрос-Ответ (вкладка карточки товара)
      Аскетичный не нагруженный модуль "Вопрос-Ответ"
      Добавляет в карточку товара вкладку, где можно прочитать ранее заданные вопросы и задать свой.
      Все вопросы пре модерируются администратором. Отвечает именно администратор сайта из админ панели,
      с возможностью указать при ответе отправку на указанные email ответа.
       
      Версия 1.2.0
      Добавлена поддержка шаблона "Anystore"
       
      Версия 1.2.1
      Исправлено отображение даты, исправлена сортировка.
      Исправлена ссылка на вопрос в почте пользователю задавшему вопрос.
      Добавлена нотификация новых не опубликованных вопросов (рядом с колокольчиком).
      Добавлено уведомление на почту администратору сайта о новых вопросах.
      Добавил CGS Добавлено 07.05.2018 Категория Обратная связь, звонки Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3 ocStore 2.3 OpenCart.Pro, ocShop  
    • От CGS
      Аскетичный не нагруженный модуль "Вопрос-Ответ"
      Добавляет в карточку товара вкладку, где можно прочитать ранее заданные вопросы и задать свой.
      Все вопросы пре модерируются администратором. Отвечает именно администратор сайта из админ панели,
      с возможностью указать при ответе отправку на указанные email ответа.
       
      Версия 1.2.0
      Добавлена поддержка шаблона "Anystore"
       
      Версия 1.2.1
      Исправлено отображение даты, исправлена сортировка.
      Исправлена ссылка на вопрос в почте пользователю задавшему вопрос.
      Добавлена нотификация новых не опубликованных вопросов (рядом с колокольчиком).
      Добавлено уведомление на почту администратору сайта о новых вопросах.
    • От whiteblue
      710.00 руб
      Скачать/Купить дополнение


      HTML данные в продукте и продуктах категории
      Очень часто нам нужно добавить произвольную информацию в виде html кода в карточку товара, как на уровне товара, так и в каждый товар категории...
       
      Данный модуль позволит добавить необходимой информации(html-поле) и заголовок H1 на уровне категорий и в карточке товара.
       
      Возможности модуля:
      1. Возможность добавления информации для каждого товара.
      В случаи, если значения для отдельного товара не задано, то в карточке товара будет отображаться содержимое html-поле заданное для категории этого товара.
      2. Добавить html-поле для товарох категории.
      Содержимое этого поля будет выводиться во всех товарах категории.
      3. Добавить заголовок H1 для категории и товара. (также есть версия без H1)
      4. Простота администрирования.
       
      Demo
      http://demo.torg.town/index.php?route=product/product&path=33&product_id=30
      Admin
      http://demo.torg.town/admin/index.php?route=catalog/product/edit&token=jnXseG7Pm3K9klIwbjGBPT2waTg9Q1is&product_id=30&filter_name=Canon+EOS+5D
      http://demo.torg.town/admin/index.php?route=catalog/category/edit&token=jnXseG7Pm3K9klIwbjGBPT2waTg9Q1is&category_id=33
       
      Login: html
      Password: html
       
       
      Установка модуля:
      Сделать резервную копию сайта и БД. Скачать архив. Не распаковывая его загрузить в админ-панель. Модули - Установка расширения - Загрузить. Обновить модификаторы. Добавил whiteblue Добавлено 03.05.2017 Категория Модули Системные требования Сайт разработчика http://white-blue.com.ua/module-html-data-in-product Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.1 ocStore 2.3
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.1  
    • От whiteblue
      Очень часто нам нужно добавить произвольную информацию в виде html кода в карточку товара, как на уровне товара, так и в каждый товар категории...
       
      Данный модуль позволит добавить необходимой информации(html-поле) и заголовок H1 на уровне категорий и в карточке товара.
       
      Возможности модуля:
      1. Возможность добавления информации для каждого товара.
      В случаи, если значения для отдельного товара не задано, то в карточке товара будет отображаться содержимое html-поле заданное для категории этого товара.
      2. Добавить html-поле для товарох категории.
      Содержимое этого поля будет выводиться во всех товарах категории.
      3. Добавить заголовок H1 для категории и товара. (также есть версия без H1)
      4. Простота администрирования.
       
      Demo
      http://demo.torg.town/index.php?route=product/product&path=33&product_id=30
      Admin
      http://demo.torg.town/admin/index.php?route=catalog/product/edit&token=jnXseG7Pm3K9klIwbjGBPT2waTg9Q1is&product_id=30&filter_name=Canon+EOS+5D
      http://demo.torg.town/admin/index.php?route=catalog/category/edit&token=jnXseG7Pm3K9klIwbjGBPT2waTg9Q1is&category_id=33
       
      Login: html
      Password: html
       
       
      Установка модуля:
      Сделать резервную копию сайта и БД. Скачать архив. Не распаковывая его загрузить в админ-панель. Модули - Установка расширения - Загрузить. Обновить модификаторы.
  • Последние посетители   0 пользователей онлайн

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

×