deezler

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

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

deezler    1

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

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

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

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

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

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


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

 

Проверил решение для 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

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


Ссылка на сообщение
Поделиться на другие сайты
deezler    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

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


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

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

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


Ссылка на сообщение
Поделиться на другие сайты
deezler    1
<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

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


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

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

 

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

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

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

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

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


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

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

 

 

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

 

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

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


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

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

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

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  код добавил. Может код нужно как-то переделать?

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


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

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

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

 

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


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

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

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


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

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

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

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

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

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

Войти

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

Войти


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

    • От kazbanov
      Выручайте ребяты. После настройки редирескта в htaccess с HTTP на HTTPS не пускает в админку, логин и пароль правилные, редирект пробовал разный. Выключаю - пускает, включаю - не пускает. Конфиги настроены верно, с движком дружу давно, а вот с таким столкнулся впервые. Версия 2.2.0.0 тема fastor.
    • От ruscosmonavt
      Всем привет! Столкнулся, с тем, что на дефолтном шаблоне, если товар имеет например 49 атрибутов, то показывается в карточке только первые 25, как отобразить все атрибуты? Видимо где-то лимит прописан, не могу найти. Помогите пожалуйста. 
    • От ReManager


      Просмотреть файл Дополнительное описание категорий и товаров
      Дополнительное описание для товаров и категорий. Делал для себя. Не заменяет файлы. OCMOD. Мод для тех, кто ручками допиливает шаблон и разместит вывод доп.описаний в нужном месте шаблона.Добавляет дополнительные 2 поля в базу. Работает на ocStore 2.3.0.2.
       
      Что мод делает:
      1. С помощью мода можно вывести дополнительное описание в категориях в файле catalog/view/theme/ВАША_ТЕМА/template/product/category.tpl добавить:
      - для вывода доп.описания продукта в необходимом месте блока формирования карточки продукта
      <?php if ($product['description_dop']) { ?><div class="dop-opisanie"><?php echo $product['description_dop']; ?></div><?php } ?> - для вывода доп.описания категории в необходимом месте
      <?php if ($description_dop) { ?><div class="dop-opisanie"><?php echo $description_dop; ?></div><?php } ?> 2. Для вывода доп.описания на странице товара в файле catalog/view/theme/ВАША_ТЕМА/template/product/product.tpl добавить в нужном месте:
      <?php if ($description_dop) { ?><div class="dop-opisanie"><?php echo $description_dop; ?></div><?php } ?> 3. Для вывода доп.описания в модуле "Рекомендуемые" товара в файле catalog/view/theme/ВАША_ТЕМА/template/extension/module/featured.tpl добавить в нужном месте:
      <?php if ($product['description_dop']) { ?><div class="dop-opisanie"><?php echo $product['description_dop']; ?></div><?php } ?> 4. Для вывода доп.описания в модуле "Последние" товарах в файле catalog/view/theme/ВАША_ТЕМА/template/extension/module/latest.tpl добавить в нужном месте:
      <?php if ($product['description_dop']) { ?><div class="dop-opisanie"><?php echo $product['description_dop']; ?></div><?php } ?>  - <div class="dop-opisanie"> - это так, просто для понимания, что можно оформить своими стилями;
      - можно просто выводить только через строку кода с echo; без if.
       
      Как пользоваться с версии 1.2.1:
      .zip - для тех кто ставит в первые.
      .xml - для тех кто ставил уже предыдущие версии и хочет обновиться.
       
      v.1.2.0.0.1 - Доп.описание категории отсутствует на страницах пагинации(2-я, 3-я страница каталога), у формы Доп.описания товара нет редактора.
      v.1.2.0.1.1 - Доп.описание категории отсутствует на страницах пагинации(2-я, 3-я страница каталога), у формы Доп.описания товара есть редактор.
      v.1.2.1.0.1 - Доп.описание категории присутствует на страницах пагинации(2-я, 3-я страница каталога), у формы Доп.описания товара нет редактора.
      v.1.2.1.1.1 - Доп.описание категории присутствует на страницах пагинации(2-я, 3-я страница каталога), у формы Доп.описания товара есть редактор.
       
      В версиях, где редактор для Доп.описание товаров текст можно форматировать, т.е добавлять ссылки, картинки, стили и т.п(как полное описание). Кстати, где нет редактора в Доп.описании, то в шаблоне все html-тэги удаляются. Не стоит ограничения по длине доп.описания категории и товара!
       
      Проверял на чистом сайте. Возмоооожно, будут конфликты с какими-нибудь модами. Но это не сложно решить, наверно.
       
      Установка мода:
      1. Установить через "Установка дополнений".
      2. Обновить кэш в "Менеджер дополнений".
       
      Обновление мода:
      Скачивайте .xml нужной версии, удаляйте модификатор, обновляйте кэш, ставьте новый .xml и опять обновляйте кэш.
       
      ВНИМАНИЕ:
      1. Я не программист, поэтому 100% работу на ваших сайтах с различными шаблонами гарантировать не могу. Если авторы шаблонов протестят мой мод и, при несовместимости частичной, покажут где-что подправить, то я сделаю версии и под их шаблоны.
      2. Работает пока только с редактором Summer Note.
       
      Демо с доп. описание категории, товаров, модулями Последние и Рекомендуемые.
       
      Донатики на пиво/сок/сигареты и печеньки можно присылать тут
      Автор ReManager Добавлен 26.12.2016 Категория Прочее Системные требования Метод активации Ioncube Loader OpenCart ocStore OpenCart.Pro, ocShop  
    • От ReManager
      Дополнительное описание для товаров и категорий. Делал для себя. Не заменяет файлы. OCMOD. Мод для тех, кто ручками допиливает шаблон и разместит вывод доп.описаний в нужном месте шаблона.Добавляет дополнительные 2 поля в базу. Работает на ocStore 2.3.0.2.
       
      Что мод делает:
      1. С помощью мода можно вывести дополнительное описание в категориях в файле catalog/view/theme/ВАША_ТЕМА/template/product/category.tpl добавить:
      - для вывода доп.описания продукта в необходимом месте блока формирования карточки продукта
      <?php if ($product['description_dop']) { ?><div class="dop-opisanie"><?php echo $product['description_dop']; ?></div><?php } ?> - для вывода доп.описания категории в необходимом месте
      <?php if ($description_dop) { ?><div class="dop-opisanie"><?php echo $description_dop; ?></div><?php } ?> 2. Для вывода доп.описания на странице товара в файле catalog/view/theme/ВАША_ТЕМА/template/product/product.tpl добавить в нужном месте:
      <?php if ($description_dop) { ?><div class="dop-opisanie"><?php echo $description_dop; ?></div><?php } ?> 3. Для вывода доп.описания в модуле "Рекомендуемые" товара в файле catalog/view/theme/ВАША_ТЕМА/template/extension/module/featured.tpl добавить в нужном месте:
      <?php if ($product['description_dop']) { ?><div class="dop-opisanie"><?php echo $product['description_dop']; ?></div><?php } ?> 4. Для вывода доп.описания в модуле "Последние" товарах в файле catalog/view/theme/ВАША_ТЕМА/template/extension/module/latest.tpl добавить в нужном месте:
      <?php if ($product['description_dop']) { ?><div class="dop-opisanie"><?php echo $product['description_dop']; ?></div><?php } ?>  - <div class="dop-opisanie"> - это так, просто для понимания, что можно оформить своими стилями;
      - можно просто выводить только через строку кода с echo; без if.
       
      Как пользоваться с версии 1.2.1:
      .zip - для тех кто ставит в первые.
      .xml - для тех кто ставил уже предыдущие версии и хочет обновиться.
       
      v.1.2.0.0.1 - Доп.описание категории отсутствует на страницах пагинации(2-я, 3-я страница каталога), у формы Доп.описания товара нет редактора.
      v.1.2.0.1.1 - Доп.описание категории отсутствует на страницах пагинации(2-я, 3-я страница каталога), у формы Доп.описания товара есть редактор.
      v.1.2.1.0.1 - Доп.описание категории присутствует на страницах пагинации(2-я, 3-я страница каталога), у формы Доп.описания товара нет редактора.
      v.1.2.1.1.1 - Доп.описание категории присутствует на страницах пагинации(2-я, 3-я страница каталога), у формы Доп.описания товара есть редактор.
       
      В версиях, где редактор для Доп.описание товаров текст можно форматировать, т.е добавлять ссылки, картинки, стили и т.п(как полное описание). Кстати, где нет редактора в Доп.описании, то в шаблоне все html-тэги удаляются. Не стоит ограничения по длине доп.описания категории и товара!
       
      Проверял на чистом сайте. Возмоооожно, будут конфликты с какими-нибудь модами. Но это не сложно решить, наверно.
       
      Установка мода:
      1. Установить через "Установка дополнений".
      2. Обновить кэш в "Менеджер дополнений".
       
      Обновление мода:
      Скачивайте .xml нужной версии, удаляйте модификатор, обновляйте кэш, ставьте новый .xml и опять обновляйте кэш.
       
      ВНИМАНИЕ:
      1. Я не программист, поэтому 100% работу на ваших сайтах с различными шаблонами гарантировать не могу. Если авторы шаблонов протестят мой мод и, при несовместимости частичной, покажут где-что подправить, то я сделаю версии и под их шаблоны.
      2. Работает пока только с редактором Summer Note.
       
      Демо с доп. описание категории, товаров, модулями Последние и Рекомендуемые.
       
      Донатики на пиво/сок/сигареты и печеньки можно присылать тут
    • От paulittop
      Добрый день.
       
      Произвел добавление поля в карточку товара на магазине заказчика  - поле в админке не показывается ни в каких табах.
      Когда делаю то же самое на свежем ОС 2.02, то все нормально.
      Подскажите пожалуйста в какую сторону копать?
      Что может блокировать?
      Благодарю.
  • Последние посетители   0 пользователей онлайн

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