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

[Решено] Вывод производителя и его фото в списке товаров категории для OpenCart 2.3

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

Нашел на этом форуме кучу решений как вывести название производителя в списке товаров, а вот как вывести лого производителя вместе с названием нигде не пишут :(

 

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

 

Версия: OpenCart 2.3

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


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

Нашел на этом форуме кучу решений как вывести название производителя в списке товаров, а вот как вывести лого производителя 

по аналогии с названием, не?

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


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

по аналогии с названием, не?

Не хватает опыта в php ;(

 

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


С меня плюсик профилю и огромное спасибо!)

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

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


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

 в списке товаров,

это где? в категории?

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


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

это где? в категории?

 

да верно, в категории

 

в других списках уже по аналогии смогу сделать

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


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

в getProduct добавить m.image as manufacturer_image

строчку типа 'manufacturer_image'     => $query->row['manufacturer_image'],

 

и в контроллере будет уже $result['manufacturer_image']

  • +1 1

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


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

в getProduct добавить m.image as manufacturer_image

строчку типа 'manufacturer_image'     => $query->row['manufacturer_image'],

 

и в контроллере будет уже $result['manufacturer_image']

 

можете показать на примере что в какой файл (строку) добавить?  

 

не имею представления где искать getProduct

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


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

 

можете показать на примере что в какой файл (строку) добавить?  

 

не имею представления где искать getProduct

Это модель категории, папка catalog

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


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

не имею представления где искать getProduct

 

а как же вы тогда пытаетесь что-то делать вообще, это ж основной запрос опенкарта))

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


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

 

Только что, spectre сказал:

 

а как же вы тогда пытаетесь что-то делать вообще, это ж основной запрос опенкарта))

в папке public_html/catalog/model/catalog/category.php

 

поиском по тексту фразы "getProduct" в notepad ++ ничего не находит( поэтому и прошу подсказать в каком именно файле и строке

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


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

 

в папке public_html/catalog/model/catalog/category.php

 

поиском по тексту фразы "getProduct" в notepad ++ ничего не находит( поэтому и прошу подсказать в каком именно файле и строке

 

а с чего вы взяли что он в category.php? 

 

посмотрите в контроллере категории откуда берется $results

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


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

 

а с чего вы взяли что он в category.php? 

 

посмотрите в контроллере категории откуда берется $results

 $results = $this->model_catalog_product->getProducts($filter_data);

 

выходит что берется с public_html/catalog/controller/product.php

 

но в этом файле тоже нету "getProdut", поиском по тексту совпадений 0(

 

 

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

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


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

 тоже нету "getProdut",

 

такого нигде нету

 

и прочитайте еще раз строчку про results там такой тонкий намек где искать

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

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


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

В контроллер до $data['products'][] = array(
$manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($result['manufacturer_id']);

$logo_image = $this->model_tool_image->resize($manufacturer_info['image'], 25, 25);
после
'logo_image' => $logo_image,
В шаблон
img src="<?php echo $product['logo_image']; ?>"

  • +1 1

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


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

catalog/controller/product/categor.php

перед  

	$data['products'][] = array(

вставить

$query_manufacturer_img = $this->db->query("select image from " . DB_PREFIX . "manufacturer where manufacturer_id = '" .(int)$result['manufacturer_id'] . "'");
if($query_manufacturer_img->row){
	$manufacturer_img = $this->model_tool_image->resize($query_manufacturer_img->row['image'], 50,50);
}else{
	$manufacturer_img = $this->model_tool_image->resize('placeholder.png', 50,50);
}

после

$data['products'][] = array(

вставить

'manufacturer_img' => $manufacturer_img,

в шаблоне 

	<p>Производитель:  <img src="<?php echo $product['manufacturer_img']; ?>"></p>

 

  • +1 1

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


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

@tom , @fanatic спасибо за варианты, сейчас протестирую их

 

P.S. Очень рад что на форуме все еще остались люди готовые помочь без разведения флуда в теме..

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

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


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

$this->model_catalog_manufacturer->getManufacturer($result['manufacturer_id']);

вот это я протупил:cry:

 

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


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

сейчас протестирую 

а что их тестировать. оба рабочие.

только у @Tom по фен шую, в отличие от моего

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


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

@tom , @fanatic спасибо за варианты, сейчас протестирую их

 

P.S. Очень рад что на форуме все еще остались люди готовые помочь без разведения флуда в теме..

 

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

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

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


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

 

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


Времени учиться нету PHP.. Я простой верстальщик который работает с версткой и так получилось, что пришлось внедрить такую доработку с фото производителя самому, поэтому и обратился на форум где всегда нахожу готовые решения в формате что и где заменить. Так же уверен таким форматом решения будет пользоваться куча людей не знающих php и логику опенкарта.. 

 

Если бы я хотел научиться делать с нуля без готовых решений - я бы заказал платную консультацию на обучение) И прямо бы написал о желании научиться)

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

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


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

а что их тестировать. оба рабочие.

только у @Tom по фен шую, в отличие от моего

ваше решение работает, а решение от @Tom выдает 500 ошибку почему-то

 

проверяю синтаксис, вроде везде верный, точки с запятыми где надо стоят, причину понять не могу

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

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


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

Что имею сейчас:

 

$manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($result['manufacturer_id']);
$logo_image = $this->model_tool_image->resize($manufacturer_info['image'], 25, 25);
                $data['products'][] = array(
                    'product_id'  => $result['product_id'],
                    'thumb'       => $image,
                    'logo_image' => $logo_image,
                    'name'        => $result['name'],
                    'description' => $description,
                    'product_type'   => $result['sku'],
                    'sku'   => $result['sku'],
                    'price'       => $price,
                    'special'     => $special,
                    'tax'         => $tax,
                    'sticker'     => $stickers,
                    'benefits'    => $benefits,
                    'minimum'     => $result['minimum'] > 0 ? $result['minimum'] : 1,
                    'rating'      => $result['rating'],
                    'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url),
                    'cart'       => $cart
                );
            }

и  tpl

 <img src="<?php echo $product['logo_image']; ?>" alt="">

 

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


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

выдает ошибку потому что не загружена модель catalog/manufacturer

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


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

выдает ошибку потому что не загружена модель catalog/manufacturer

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

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


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

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

 

Ну это надо новую тему открыть чтоб решения не спутались

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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