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

Производители в каталоге товаров Opencart 1.5.5.1

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

Здравствуйте! Подскажите как вывести в каталоге товаров под Именем товара - Название производителя и -Категорию 
Opencart 1.5.5.1

 

Файлы контроллера и шаблона прилагаю во вложениях

 

becf2d59f3c5.png

category.php

category.zip

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


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

Рассказываю...

 

Для начала открываем файл \catalog\controller\product\category.php

 

В районе 190 строки дописываем

$product_info = $this->model_catalog_product->getProduct($result['product_id']);

дальше ищем массив $this->data['products'][] = array и дописываем в конце строку

'manufacturer'=>  $product_info['manufacturer']

в предыдущей строке не забывем поставить "запятую"!

 

После наших манипуляций должно получиться примерно следующее...

if ($this->config->get('config_review_status')) {
	$rating = (int)$result['rating'];
	} else {
		$rating = false;
	}

$product_info = $this->model_catalog_product->getProduct($result['product_id']);

и

$this->data['products'][] = array(
		'product_id'  => $result['product_id'],
		'thumb'       => $image,
		'name'        => $result['name'],
		'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
		'price'       => $price,
		'special'     => $special,
		'tax'         => $tax,
		'rating'      => $result['rating'],
		'reviews'     => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
		'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id']),
		'manufacturer'=>  $product_info['manufacturer']

Теперь ищем файл \catalog\view\theme\{Ваша_тема}\template\product\category.tpl

 

и в нужном месте вставляем код

<?php echo $product['manufacturer']; ?>

должно получиться что-то вроде такого

<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a>
	  <br><?php echo $product['manufacturer']; ?>
	  </div>
<div class="description"><?php echo $product['description']; ?></div>

С категорией делаем по аналогии вышеизложенного. Вы уж извините, но всю работу делать за Вас не буду :)

  • +1 1

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


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

Рассказываю...

 

Для начала открываем файл \catalog\controller\product\category.php

 

В районе 190 строки дописываем

$product_info = $this->model_catalog_product->getProduct($result['product_id']);

дальше ищем массив $this->data['products'][] = array и дописываем в конце строку

'manufacturer'=>  $product_info['manufacturer']

в предыдущей строке не забывем поставить "запятую"!

 

После наших манипуляций должно получиться примерно следующее...

if ($this->config->get('config_review_status')) {
	$rating = (int)$result['rating'];
	} else {
		$rating = false;
	}

$product_info = $this->model_catalog_product->getProduct($result['product_id']);

и

$this->data['products'][] = array(
		'product_id'  => $result['product_id'],
		'thumb'       => $image,
		'name'        => $result['name'],
		'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',
		'price'       => $price,
		'special'     => $special,
		'tax'         => $tax,
		'rating'      => $result['rating'],
		'reviews'     => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
		'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id']),
		'manufacturer'=>  $product_info['manufacturer']

Теперь ищем файл \catalog\view\theme\{Ваша_тема}\template\product\category.tpl

 

и в нужном месте вставляем код

<?php echo $product['manufacturer']; ?>

должно получиться что-то вроде такого

<div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a>
	  <br><?php echo $product['manufacturer']; ?>
	  </div>
<div class="description"><?php echo $product['description']; ?></div>

С категорией делаем по аналогии вышеизложенного. Вы уж извините, но всю работу делать за Вас не буду :)

Спасибо! Сделал все как вы описали. Почему-то ничего не выводится ((

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


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

Все там работает - делали значит не так :) Я внес правки в Ваши файлы, которые были опубликованы в первом посте. Все должно работать. Для нормального визуального отображения нужно - в файле category.tpl в строке 125 тэгу <div> присвоить стиль.

category.php

category.zip

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


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

Все там работает - делали значит не так :) Я внес правки в Ваши файлы, которые были опубликованы в первом посте. Все должно работать. Для нормального визуального отображения нужно - в файле category.tpl в строке 125 тэгу <div> присвоить стиль.

Скопировал файлы, но ничего не работает ((((

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


Ссылка на сообщение
Поделиться на другие сайты
Открыть файл catalog/controller/product/category.php

 

найти 

 



'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 100) . '..',


после неё вставить



'manufacturer'=> $result['manufacturer'],


 

сохранить.

 

Открыть файл catalog/view/theme/ваша тема/template/product/category.tpl

 

перед

 



 <div class="cart">


 

вставить

 



 <div class="manufacturer"><?php echo $text_manufacturer . " " . $product['manufacturer'];?></div>


 

ниже, найти строки

 



function display(view) {
if (view == 'list') {
$('.product-grid').attr('class', 'product-list');


$('.product-list > div').each(function(index, element) {
html  = '<div class="right">';


после них добавить

 



html += '<div class="manufacturer">'+ $(element).find('.manufacturer').html()+'</div>';


 

ещё ниже, найти строку

 

 



html += '  <div class="description">' + $(element).find('.description').html() + '</div>';


 

после неё вставить

 



html +=' <div class="manufacturer">'+ $(element).find('.manufacturer').html()+'</div>';


 

ещё ниже находим

 



var rating = $(element).find('.rating').html();


if (rating != null) {
html += '<div class="rating">' + rating + '</div>';
}


 

после этих строк добавляем

 



html +='<div class="manufacturer">'+ $(element).find('.manufacturer').html()+'</div>';


 

Готово

  • +1 1

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


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

Ничего не выходит, но я не нашел в файле <div class="cart"> и добавил после <div class="name">

 

Может из за этого?

 

 <!--/ swap img-->

        
      <div class="name"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a>
<br>
 
</div>
  <div class="manufacturer"><?php echo $text_manufacturer . " " . $product['manufacturer'];?></div>    
      
      
      <?php if ($product['price']) { ?>

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


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

Странно что у Вас нет  <div class="cart"> , но это лишь место где я предложил вывести  саму надпись.Вы можете вставить там где Вам удобней.А Вы  вставили между названием товара и ценой.

 

PS  А у Вас сам производитель  привязан к товару?

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


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

Да вот и я думаю, что странно:) Не раз использовал вариант, описанный мной - и все работало:) Может действительно товар к производителю не привязан?

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


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

Да вот и я думаю, что странно :) Не раз использовал вариант, описанный мной - и все работало :) Может действительно товар к производителю не привязан?

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

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


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

В админке в Каталог-Товар  в Связях указан производитель?

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


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

В админке в Каталог-Товар  в Связях указан производитель?

Конечно связан. у  меня более 100 товаров и у всех свои производители и категории

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


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

Всё вышеописанное проверенно лично на практике и живых магазинах, если у вас не получается

 

1) Значит ,что то всё же не так делаете

 

2) Значит , Вы используете шаблон и нужно отталкиваться от его файлов.

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


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

Всё вышеописанное проверенно лично на практике и живых магазинах, если у вас не получается

 

1) Значит ,что то всё же не так делаете

 

2) Значит , Вы используете шаблон и нужно отталкиваться от его файлов.

Не знаю, вроде все верно

Да шаблон используется. но не знаю что там может быть не так

Вот файлы category.php и tpl

https://docviewer.yandex.ru/?url=ya-disk%3A%2F%2F%2Fdisk%2Fcategory2.zip&name=category2.zip&c=523dad34184a 

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


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

Ссылка ведёт на отсутствие  файлов.

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


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

В Вашем шаблоне сделайте немного иначе  в category.tpl ,  а контролер сделайте как выше описано.

 

надите

 

 <!-- wish  //  compare  //  cart
        =============-->

Перед этим добавьте

<div class="manufacturer"><?php echo $text_manufacturer . " " . $product['manufacturer'];?></div>

Эта строка отвечает за вывод  , а где именно решать вам.В этом случае будет выше кнопок(купить-в закдки-в сравнения)

 

Ниже находим

html += '  <div class="description">' + $(element).find('.description').html() + '</div>';

ниже добавляем

html += '<div class="manufacturer">'+ $(element).find('.manufacturer').html()+'</div>';

Ещё ниже находим такую же строку и ниже её добавляем тоже самое.

 

Теперь в Вашем шаблоне в отображении список  уже отображается,а для отображения в сетке добавьте например

 

.product-grid .manufacturer  {
text-decoration: none;
display: block;
margin-bottom: 4px;
text-align: center;
color: #626262;
font-size: 13px;
}

можно в самом конце стилей,а можно ниже 1830 строки

 

после 

 

.product-grid .description {
font-size: 15px;
    padding: 10px;
clear: both;
color: #000;
}

должно получится.

 

 

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


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

Вот черт :eek: получилось!!!!!!!!!!! :eek:  :eek:  :eek:  :eek:

СПАСИБО ОГРОМНОЕ!!!!!!

 

Подскажите, пожалуйста, а КАК УБРАТЬ СЛОВО ПРОИЗВОДИТЕЛЬ

И вывести категорию ниже??

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


Ссылка на сообщение
Поделиться на другие сайты
Подскажите, пожалуйста, а КАК УБРАТЬ СЛОВО ПРОИЗВОДИТЕЛЬ

 

 

 

Заменить

<div class="manufacturer"><?php echo $text_manufacturer . " " . $product['manufacturer'];?></div>

на

 <div class="manufacturer"><?php echo $product['manufacturer']; ?></div>

 А категории по моему мнению никчему.

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


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

Спасибо! Ну категории очень нужны
Просто при просмотре товара в категориях иногда бывают большие описания, и необходимо обозначить категорию, так как она будет на следующей строке и смотреться будет более эстетично
 
Например сейчас (идет перенос на следущею строчку) 
Велосипед CUBE ELITE 26 SUPER
HPC(2013)
Cube
 
а будет 
CUBE ELITE 26 SUPER HPC(2013)
Велосипед  
Cube

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


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

Описание выше.

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


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

Я так понял нужно делать аналогично и просто изменить <div class="manufacturer"><?php echo $text_manufacturer . " " . $product['manufacturer'];?></div>

 

на категорию, подскажите, пожалуйста, какое имя присвоить в место manufacturer?????

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


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

Пробуйте.Получить разжёванное прямо в рот проще.Но зато сделать самому намного приятней.

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


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

Пробуйте.Получить разжёванное прямо в рот проще.Но зато сделать самому намного приятней.

Подскажите, пожалуйста,  где капать? довно пытаюсь сам но ничего не выходит

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.