Всем привет, сегодня мы с вами поработаем над шапкой (верхней частью) нашего интернет магазина, созданного на CMS OpenCart 4, мы поработаем над личным кабинетом, корзиной, закладками и сравнением товаров.
1. Откроем файл ../public_html/catalog/view/template/common/header.twig и вместо этих строк:
<header>
<div class="container">
<div class="row">
<div class="col-md-3 col-lg-4">
<div id="logo">
{% if logo %}
<a href="{{ home }}"><img src="{{ logo }}" title="{{ name }}" alt="{{ name }}" class="img-fluid"/></a>
{% else %}
<h1><a href="{{ home }}">{{ name }}</a></h1>
{% endif %}
</div>
</div>
<div class="col-md-5">{{ search }}</div>
<div id="header-cart" class="col-md-4 col-lg-3 mb-2">{{ cart }}</div>
</div>
</div>
</header>
вставляем эти:
<header>
<div class="container">
<div class="row">
<div class="col-md-3">
<div id="logo">
{% if logo %}
<a href="{{ home }}"><img src="{{ logo }}" title="{{ name }}" alt="{{ name }}" class="img-fluid"/></a>
{% else %}
<h1><a href="{{ home }}">{{ name }}</a></h1>
{% endif %}
</div>
</div>
<div class="col-md-6">{{ search }}</div>
<div class="col-md-3">
<div class="dropdown">
<a href="{{ account }}" class="dropdown-toggle" data-bs-toggle="dropdown"><i class="fa-solid fa-user"></i> <span class="d-none d-md-inline">{{ text_account }}</span> <i class="fa-solid fa-caret-down"></i></a>
<ul class="dropdown-menu dropdown-menu-right">
{% if not logged %}
<li><a href="{{ register }}" class="dropdown-item">{{ text_register }}</a></li>
<li><a href="{{ login }}" class="dropdown-item">{{ text_login }}</a></li>
{% else %}
<li><a href="{{ account }}" class="dropdown-item">{{ text_account }}</a></li>
<li><a href="{{ order }}" class="dropdown-item">{{ text_order }}</a></li>
<li><a href="{{ transaction }}" class="dropdown-item">{{ text_transaction }}</a></li>
<li><a href="{{ download }}" class="dropdown-item">{{ text_download }}</a></li>
<li><a href="{{ logout }}" class="dropdown-item">{{ text_logout }}</a></li>
{% endif %}
</ul>
</div>
<a href="{{ compare }}" id="compare-total" title="{{ text_compare }}"><i class="fa-solid fa-arrow-right-arrow-left"></i> <span class="d-none d-md-inline">{{ text_compare }}</span></a>
<a href="{{ wishlist }}" id="wishlist-total" title="{{ text_wishlist }}"><i class="fa-solid fa-heart"></i> <span class="d-none d-md-inline">{{ text_wishlist }}</span></a>
<div id="header-cart">{{ cart }}</div>
</div>
</div>
</div>
</header>
и удалим эти строки:
<ul class="list-inline">
<li class="list-inline-item">
<div class="dropdown">
<a href="{{ account }}" class="dropdown-toggle" data-bs-toggle="dropdown"><i class="fa-solid fa-user"></i> <span class="d-none d-md-inline">{{ text_account }}</span> <i class="fa-solid fa-caret-down"></i></a>
<ul class="dropdown-menu dropdown-menu-right">
{% if not logged %}
<li><a href="{{ register }}" class="dropdown-item">{{ text_register }}</a></li>
<li><a href="{{ login }}" class="dropdown-item">{{ text_login }}</a></li>
{% else %}
<li><a href="{{ account }}" class="dropdown-item">{{ text_account }}</a></li>
<li><a href="{{ order }}" class="dropdown-item">{{ text_order }}</a></li>
<li><a href="{{ transaction }}" class="dropdown-item">{{ text_transaction }}</a></li>
<li><a href="{{ download }}" class="dropdown-item">{{ text_download }}</a></li>
<li><a href="{{ logout }}" class="dropdown-item">{{ text_logout }}</a></li>
{% endif %}
</ul>
</div>
</li>
<li class="list-inline-item"><a href="{{ wishlist }}" id="wishlist-total" title="{{ text_wishlist }}"><i class="fa-solid fa-heart"></i> <span class="d-none d-md-inline">{{ text_wishlist }}</span></a></li>
<li class="list-inline-item"><a href="{{ shopping_cart }}" title="{{ text_shopping_cart }}"><i class="fa-solid fa-cart-shopping"></i> <span class="d-none d-md-inline">{{ text_shopping_cart }}</span></a></li>
<li class="list-inline-item"><a href="{{ checkout }}" title="{{ text_checkout }}"><i class="fa-solid fa-share"></i> <span class="d-none d-md-inline">{{ text_checkout }}</span></a></li>
</ul>
2. Откроем файл ../public_html/catalog/controller/common/header.php и после этих строк:
// Wishlist
if ($this->customer->isLogged()) {
$this->load->model('account/wishlist');
$data['text_wishlist'] = sprintf($this->language->get('text_wishlist'), $this->model_account_wishlist->getTotalWishlist());
} else {
$data['text_wishlist'] = sprintf($this->language->get('text_wishlist'), (isset($this->session->data['wishlist']) ? count($this->session->data['wishlist']) : 0));
}
вставим эти:
// Compare
$data['text_compare'] = sprintf($this->language->get('text_compare'), (isset($this->session->data['compare']) ? count($this->session->data['compare']) : 0));
а после этой строки:
$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'] : ''));
вставим эту:
$data['compare'] = $this->url->link('product/compare', 'language=' . $this->config->get('config_language') . (isset($this->session->data['customer_token']) ? '&customer_token=' . $this->session->data['customer_token'] : ''));
3. Откроем файл ../public_html/catalog/language/ru-ru/common/header.php и после этой строки:
$_['text_wishlist'] = 'Закладки (%s)';
вставим эту:
$_['text_compare'] = 'Сравнение (%s)';
4. Откроем файл ../public_html/catalog/language/en-gb/common/header.php и после этой строки:
$_['text_wishlist'] = 'Wish List (%s)';
вставим эту:
$_['text_compare'] = 'Compare (%s)';
5. Откроем файл: ../public_html/catalog/view/template/product/category.twig и удалим эти строки:
<div class="col-lg-3">
<div class="mb-3">
<a href="{{ compare }}" id="compare-total" class="btn btn-primary d-block"><i class="fa-solid fa-arrow-right-arrow-left"></i> <span class="d-none d-xl-inline">{{ text_compare }}</span></a>
</div>
</div>
а вместо этой строки:
<div class="col-lg-1 d-none d-lg-block">
вставим эту:
<div class="col-lg-4 d-none d-lg-block">
вместо этой строки:
<div class="col-lg-4 offset-lg-1 col-6">
вставим эту:
<div class="col-lg-4 col-6">
а вместо этой строки:
<div class="col-lg-3 col-6">
вставим эту:
<div class="col-lg-4 col-6">
Смотрим результат:
Отлично, всё что нужно вывели, теперь необходимо доработать.
6. Откроем файл ../public_html/catalog/language/ru-ru/common/header.php и вместо этих строк:
$_['text_wishlist'] = 'Закладки (%s)'; $_['text_compare'] = 'Сравнение (%s)'; $_['text_shopping_cart'] = 'Корзина'; $_['text_account'] = 'Личный кабинет';
вставим эти:
$_['text_wishlist'] = '%s'; $_['text_wishlistlabel'] = 'Закладки'; $_['text_compare'] = '%s'; $_['text_comparelabel'] = 'Сравнение'; $_['text_shopping_cart'] = 'Корзина'; $_['text_account'] = 'Вход';
7. Откроем файл ../public_html/catalog/language/ru-ru/common/cart.php и вместо этой строки:
$_['text_items'] = 'Товаров %s (%s)';
вставим эти:
$_['text_items'] = '%s'; $_['text_cartlabel'] = 'Корзина';
8. Откроем файл ../public_html/catalog/language/en-gb/common/header.php и вместо этих строк:
$_['text_wishlist'] = 'Wish List (%s)'; $_['text_compare'] = 'Compare (%s)'; $_['text_shopping_cart'] = 'Shopping Cart'; $_['text_account'] = 'My Account';
вставим эти:
$_['text_wishlist'] = '%s'; $_['text_wishlistlabel'] = 'Wish List'; $_['text_compare'] = '%s'; $_['text_comparelabel'] = 'Compare'; $_['text_shopping_cart'] = 'Shopping Cart'; $_['text_account'] = 'Account';
9. Откроем файл ../public_html/catalog/language/en-gb/common/cart.php и вместо этой строки:
$_['text_items'] = '%s item(s) - %s';
вставим эти:
$_['text_items'] = '%s'; $_['text_cartlabel'] = 'Cart';
10. Открываем файл ../public_html/catalog/view/template/common/header.twig и вместо этих строк:
<div class="col-md-3">
<div class="dropdown">
<a href="{{ account }}" class="dropdown-toggle" data-bs-toggle="dropdown"><i class="fa-solid fa-user"></i> <span class="d-none d-md-inline">{{ text_account }}</span> <i class="fa-solid fa-caret-down"></i></a>
<ul class="dropdown-menu dropdown-menu-right">
{% if not logged %}
<li><a href="{{ register }}" class="dropdown-item">{{ text_register }}</a></li>
<li><a href="{{ login }}" class="dropdown-item">{{ text_login }}</a></li>
{% else %}
<li><a href="{{ account }}" class="dropdown-item">{{ text_account }}</a></li>
<li><a href="{{ order }}" class="dropdown-item">{{ text_order }}</a></li>
<li><a href="{{ transaction }}" class="dropdown-item">{{ text_transaction }}</a></li>
<li><a href="{{ download }}" class="dropdown-item">{{ text_download }}</a></li>
<li><a href="{{ logout }}" class="dropdown-item">{{ text_logout }}</a></li>
{% endif %}
</ul>
</div>
<a href="{{ compare }}" id="compare-total" title="{{ text_compare }}"><i class="fa-solid fa-arrow-right-arrow-left"></i> <span class="d-none d-md-inline">{{ text_compare }}</span></a>
<a href="{{ wishlist }}" id="wishlist-total" title="{{ text_wishlist }}"><i class="fa-solid fa-heart"></i> <span class="d-none d-md-inline">{{ text_wishlist }}</span></a>
<div id="header-cart">{{ cart }}</div>
</div>
вставим эти:
<div class="col-md-3">
<div class="row my-block">
<div class="dropdown col-sm-3">
<a href="{{ account }}" class="dropdown-toggle" data-bs-toggle="dropdown"><div class="headicons"><i class="fa-solid fa-user"></i></div> <span class="d-none d-md-inline">{{ text_account }}</span> <i class="fa-solid fa-caret-down"></i></a>
<ul class="dropdown-menu dropdown-menu-right">
{% if not logged %}
<li><a href="{{ register }}" class="dropdown-item">{{ text_register }}</a></li>
<li><a href="{{ login }}" class="dropdown-item">{{ text_login }}</a></li>
{% else %}
<li><a href="{{ account }}" class="dropdown-item">{{ text_account }}</a></li>
<li><a href="{{ order }}" class="dropdown-item">{{ text_order }}</a></li>
<li><a href="{{ transaction }}" class="dropdown-item">{{ text_transaction }}</a></li>
<li><a href="{{ download }}" class="dropdown-item">{{ text_download }}</a></li>
<li><a href="{{ logout }}" class="dropdown-item">{{ text_logout }}</a></li>
{% endif %}
</ul>
</div>
<div class="col-sm-3">
<a href="{{ compare }}" id="compare-total" title="{{ text_comparelabel }}"><div class="headicons"><i class="fa-solid fa-arrow-right-arrow-left"></i><span class="counter">{{ text_compare }}</span></div> <span class="d-none d-md-inline">{{ text_comparelabel }}</span></a>
</div>
<div class="col-sm-3">
<a href="{{ wishlist }}" id="wishlist-total" title="{{ text_wishlistlabel }}"><div class="headicons"><i class="fa-solid fa-heart"></i><span class="counter">{{ text_wishlist }}</span></div> <span class="d-none d-md-inline">{{ text_wishlistlabel }}</span></a>
</div>
<div class="col-sm-3" id="header-cart">{{ cart }}</div>
</div>
</div>
Смотрим результат:
Неплохо, уже что-то вырисовывается. 🙂
Демонстрационный сайт: demo.moushe.ru (демо сайт обновляется вместе с выходом новых статей).
На сегодня всё, продолжим в следующих статьях.


Нажимая эту кнопку я соглашаюсь с условиями политики конфиденциальности.