load->controller('product/related'); * * @package Opencart\Catalog\Controller\Product */ class Related extends \Opencart\System\Engine\Controller { /** * Index * * @return ?\Opencart\System\Engine\Action */ public function index(): string { $this->load->language('product/related'); if (isset($this->request->get['product_id'])) { $product_id = (int)$this->request->get['product_id']; } else { $product_id = 0; } $data['products'] = []; $results = $this->model_catalog_product->getRelated($product_id); foreach ($results as $result) { $description = trim(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8'))); if (oc_strlen($description) > $this->config->get('config_product_description_length')) { $description = oc_substr($description, 0, $this->config->get('config_product_description_length')) . '..'; } if ($result['image'] && is_file(DIR_IMAGE . html_entity_decode($result['image'], ENT_QUOTES, 'UTF-8'))) { $image = $result['image']; } else { $image = 'placeholder.png'; } if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax')), $this->session->data['currency']); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price'], $this->session->data['currency']); } else { $tax = false; } $product_data = [ 'thumb' => $this->model_tool_image->resize($image, $this->config->get('config_image_related_width'), $this->config->get('config_image_related_height')), 'description' => $description, 'price' => $price, 'special' => $special, 'tax' => $tax, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'href' => $this->url->link('product/product', 'language=' . $this->config->get('config_language') . '&product_id=' . $result['product_id']) ] + $result; $data['products'][] = $this->load->controller('product/thumb', $product_data); } return $this->load->view('product/related', $data); } }