Question

Hy guys, im preaty new to opencart and i need ur help. I managed to add the logo of the manufacturer on the product page,but know i want to display the logo of the manufacturer in the featured products. I managed to add the name of the manufacturer, but dont know how to get the img link of it :(. Im using OC 1.5.5.1

this is my code for featured.php:

<?php
class ControllerModuleFeatured extends Controller {
    //alex start
    protected function index($setting) {
        $this->language->load('module/featured'); 

        $this->data['heading_title'] = $this->language->get('heading_title');

        $this->data['button_cart'] = $this->language->get('button_cart');

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

        $this->load->model('tool/image');

        $this->data['products'] = array();

        $products = explode(',', $this->config->get('featured_product'));       

        if (empty($setting['limit'])) {
            $setting['limit'] = 5;
        }

        $products = array_slice($products, 0, (int)$setting['limit']);

        foreach ($products as $product_id) {
            $product_info = $this->model_catalog_product->getProduct($product_id);

            if ($product_info) {
                if ($product_info['image']) {
                    $image = $this->model_tool_image->resize($product_info['image'], $setting['image_width'], $setting['image_height']);
                } else {
                    $image = false;
                }

                if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
                    $price = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
                } else {
                    $price = false;
                }

                if ((float)$product_info['special']) {
                    $special = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));
                } else {
                    $special = false;
                }

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

                $this->data['products'][] = array(
                    'product_id'      => $product_info['product_id'],
                    'thumb'           => $image,
                    'name'            => $product_info['name'],
                    'manufacturer'    => $product_info['manufacturer'],              
                    'manufacturer_id' => $product_info['manufacturer_id'],
                    //'manufacturer_img'=> $product_info['manufacturer_img'],
                    'manufacturers'   => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $product_info['manufacturer_id']),
                    'price'           => $price,
                    'special'         => $special,
                    'rating'          => $rating,
                    'reviews'         => sprintf($this->language->get('text_reviews'), (int)$product_info['reviews']),
                    'href'            => $this->url->link('product/product', 'product_id=' . $product_info['product_id'])
                );
            }
        }


        if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/featured.tpl')) {
            $this->template = $this->config->get('config_template') . '/template/module/featured.tpl';
        } else {
            $this->template = 'default/template/module/featured.tpl';
        }

        $this->render();
    }
}
?>
Was it helpful?

Solution

You must modify the model file of product at catalog/model/product.php by adding m.image AS manufacturer_img, to the existing select query of getProduct function. See snippet below:

......................

$query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, `m.image AS manufacturer_img,` (SELECT price ...

................

then add 'manufacturer_img' => $query->row['manufacturer_img'], to the return array:

.......................

'manufacturer_id'  => $query->row['manufacturer_id'],
'manufacturer_img'  => $query->row['manufacturer_img'],
'manufacturer'     => $query->row['manufacturer'],

......................

Finally on the featured module catalog/controller/module/featured.php as you've did, you can add this snippet code to get manufacturer related data of the product:

............................

'manufacturer'    => $product_info['manufacturer'], 
'manufacturer_id' => $product_info['manufacturer_id'],
'manufacturer_img'=> $product_info['manufacturer_img'],
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top