deezler

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

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

deezler    1

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

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

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

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

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

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


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

 

Проверил решение для 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    2 091
<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    67
<span>Categories: </span>

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

 

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

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

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

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

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


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

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

 

 

Наверное уместней вывести списком (через <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... ?

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


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

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

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

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

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

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

Войти

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

Войти


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

    • От morrison4394
      Добрый день, помогите пожалуйста.
      Есть модуль для добавления дополнительных полей в карточку товара, в нем три дополнительных поля.
      Мне трех полей мало, хочется штук 8-10. Пытаюсь по аналогии прописать дополнительные поля 4-5-6 к примеру, админка сайта перестает работать, хотя сам сайт работает. Но на сайте появляется ошибка system/storage/modification/catalog/model/catalog/product.php on line 22Notice: для полей 4-5-6.
      Подскажите, что я делаю не так, и как мне это исправить? 
      Прилагаю 2 файла, первый который исходный, а второй, в который я пытаюсь добавить поля 4-5-6. Версия опенкарт про 2.1.0.2, других подходящих бесплатных модулей я не нашла, а переименование 6 полей товарных кодов мне не подходят (у разных товаров разные хар-ки). 
      extra_fields_in_product.ocmod.xml
      extra_fields_in_product.ocmod.xml
    • От pasha2298
      Сделал небольшое дополнение для того что бы  убирать вкладки в карточке добавления товара и выводить все поля одним списком. Прошу не судить строго поскольку это мое первое дополнение. Протестировано на ocStore 2.3 
      vkladki.ocmod.xml
    • От Dethtrix
      Здравствуйте! Столкнулся с такой проблемой. Есть на сайте кровати, по дефолту они идут без основания и имеют 3 размера. Имеется опция, собственно само это основание, которое имеет такие же размеры как у кроватей (цена зависит от размера). При нажатии на чекбокс с опцией основания, нужно, чтобы считывало выбранный размер кровати и плюсовало к цене кровати, цену основания того же размера. Как такое реализовать? Заранее спасибо! 
       
      P.S. - если захотите сами потыкать (http://webmagazin123.ru/krovat-isabella-bez-osnovaniya-s-lamelyami)

    • От sunhunter
      Пожалуйста, посоветуйте, как можно уменьшить ширину правой части карточки товара - ту, где пишется цена, кнопки купить и т.д.
      Размер картинки товара слева в какой-то момент на это перестает влиять - у правой части где-то задана наименьшая ширина, вопрос - где?
      Очень надеюсь на помощь!!
    • От vier
      Скачать/Купить дополнение
        Модуль TranslitSeoUrlAuto для OpenCart 2 free
      Описание модуля TranslitSeoUrlAuto
       
      Модуль TranslitSeoUrlAuto  для OpenCart версии 2.x предназначен для автоматического создания ЧПУ (Seo Url) в админке карточки Товара, Категории, Производителе и Информации (Статьи) при их сохранении.
      Для транслита модуль автоматически определяет языковые настройки админки.
      Создан на чистом PHP, так что конфликтов не должно быть, и качество работы гарантировано.
      Если у Вас в товаре, категории, производителе или статьи уже создано ЧПУ, то модуль не перезаписывает его.
      ЧПУ проходит контроль на дубли стандартными методами OpenCart, и при положительном результате записывается в базу при сохранении карточки Товара, Категории, Производителя или Статьи.
       
       
      Установка (стандартная):
      Разархивировать архив модуля, скопировать из папки upload (не папку upload) в корень Вашего сайта папку admin с вложенными в нее файлами.   Установить модификатор модуля и обновить сами модификаторы. Всё.
      Файлы не перезаписывает.
      Модуль распространяется как есть.
      Автор запрещает использовать модуль в коммерческих целях и распространять его на других ресурсах интернета и т.п.
      Добавил vier Добавлено 07.11.2017 Категория Модули Системные требования стандартные Сайт разработчика https://oc-vier.ru Старая цена   Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х  
  • Последние посетители   0 пользователей онлайн

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