1: <?php
2: namespace Opencart\Catalog\Controller\Common;
3: /**
4: * Class Header
5: *
6: * @package Opencart\Catalog\Controller\Common
7: */
8: class Header extends \Opencart\System\Engine\Controller {
9: /**
10: * @return string
11: */
12: public function index(): string {
13: // Analytics
14: $data['analytics'] = [];
15:
16: if (!$this->config->get('config_cookie_id') || (isset($this->request->cookie['policy']) && $this->request->cookie['policy'])) {
17: $this->load->model('setting/extension');
18:
19: $analytics = $this->model_setting_extension->getExtensionsByType('analytics');
20:
21: foreach ($analytics as $analytic) {
22: if ($this->config->get('analytics_' . $analytic['code'] . '_status')) {
23: $data['analytics'][] = $this->load->controller('extension/' . $analytic['extension'] . '/analytics/' . $analytic['code'], $this->config->get('analytics_' . $analytic['code'] . '_status'));
24: }
25: }
26: }
27:
28: $data['lang'] = $this->language->get('code');
29: $data['direction'] = $this->language->get('direction');
30:
31: $data['title'] = $this->document->getTitle();
32: $data['base'] = $this->config->get('config_url');
33: $data['description'] = $this->document->getDescription();
34: $data['keywords'] = $this->document->getKeywords();
35:
36: // Hard coding css so they can be replaced via the event's system.
37: $data['bootstrap'] = 'catalog/view/stylesheet/bootstrap.css';
38: $data['icons'] = 'catalog/view/stylesheet/fonts/fontawesome/css/all.min.css';
39: $data['stylesheet'] = 'catalog/view/stylesheet/stylesheet.css';
40:
41: // Hard coding scripts so they can be replaced via the event's system.
42: $data['jquery'] = 'catalog/view/javascript/jquery/jquery-3.7.1.min.js';
43:
44: $data['links'] = $this->document->getLinks();
45: $data['styles'] = $this->document->getStyles();
46: $data['scripts'] = $this->document->getScripts('header');
47:
48: $data['name'] = $this->config->get('config_name');
49:
50: if (is_file(DIR_IMAGE . $this->config->get('config_logo'))) {
51: $data['logo'] = $this->config->get('config_url') . 'image/' . $this->config->get('config_logo');
52: } else {
53: $data['logo'] = '';
54: }
55:
56: $this->load->language('common/header');
57:
58: // Wishlist
59: if ($this->customer->isLogged()) {
60: $this->load->model('account/wishlist');
61:
62: $data['text_wishlist'] = sprintf($this->language->get('text_wishlist'), $this->model_account_wishlist->getTotalWishlist($this->customer->getId()));
63: } else {
64: $data['text_wishlist'] = sprintf($this->language->get('text_wishlist'), (isset($this->session->data['wishlist']) ? count($this->session->data['wishlist']) : 0));
65: }
66:
67: $data['home'] = $this->url->link('common/home', 'language=' . $this->config->get('config_language'));
68: $data['wishlist'] = $this->url->link('account/wishlist', 'language=' . $this->config->get('config_language') . (isset($this->session->data['customer_token']) ? '&customer_token=' . $this->session->data['customer_token'] : ''));
69: $data['logged'] = $this->customer->isLogged();
70:
71: if (!$this->customer->isLogged()) {
72: $data['register'] = $this->url->link('account/register', 'language=' . $this->config->get('config_language'));
73: $data['login'] = $this->url->link('account/login', 'language=' . $this->config->get('config_language'));
74: } else {
75: $data['account'] = $this->url->link('account/account', 'language=' . $this->config->get('config_language') . '&customer_token=' . $this->session->data['customer_token']);
76: $data['order'] = $this->url->link('account/order', 'language=' . $this->config->get('config_language') . '&customer_token=' . $this->session->data['customer_token']);
77: $data['transaction'] = $this->url->link('account/transaction', 'language=' . $this->config->get('config_language') . '&customer_token=' . $this->session->data['customer_token']);
78: $data['download'] = $this->url->link('account/download', 'language=' . $this->config->get('config_language') . '&customer_token=' . $this->session->data['customer_token']);
79: $data['logout'] = $this->url->link('account/logout', 'language=' . $this->config->get('config_language'));
80: }
81:
82: $data['shopping_cart'] = $this->url->link('checkout/cart', 'language=' . $this->config->get('config_language'));
83: $data['checkout'] = $this->url->link('checkout/checkout', 'language=' . $this->config->get('config_language'));
84: $data['contact'] = $this->url->link('information/contact', 'language=' . $this->config->get('config_language'));
85: $data['telephone'] = $this->config->get('config_telephone');
86:
87: $data['language'] = $this->load->controller('common/language');
88: $data['currency'] = $this->load->controller('common/currency');
89: $data['search'] = $this->load->controller('common/search');
90: $data['cart'] = $this->load->controller('common/cart');
91: $data['menu'] = $this->load->controller('common/menu');
92:
93: return $this->load->view('common/header', $data);
94: }
95: }
96: