Всем привет, сегодня мы с вами начнём улучшать верхнюю панель нашего интернет магазина созданного на CMS OpenCart 4.0.2.3. Сегодня я хочу вывести к номеру телефона выпадающий список с дополнительными телефонами, почтой, адресом магазина, часами работы и иконками соц. сетей.
1. Откроем файл: ../public_html/***/view/template/setting/setting.twig и после этих строк:
<div class="row mb-3">
<label for="input-comment" class="col-sm-2 col-form-label">{{ entry_comment }}</label>
<div class="col-sm-10">
<textarea name="config_comment" rows="5" placeholder="{{ entry_comment }}" id="input-comment" class="form-control">{{ config_comment }}</textarea>
<div class="form-text">{{ help_comment }}</div>
</div>
</div>
вставим эти:
<fieldset>
<legend>{{ text_headinfo }}</legend>
<div class="row mb-3">
<label for="input-headphone1" class="col-sm-2 col-form-label">{{ entry_headphone1 }}</label>
<div class="col-sm-10">
<input type="text" name="config_headphone1" value="{{ config_headphone1 }}" placeholder="{{ entry_headphone1 }}" id="input-telephone" class="form-control"/>
</div>
</div>
<div class="row mb-3">
<label for="input-headphone2" class="col-sm-2 col-form-label">{{ entry_headphone2 }}</label>
<div class="col-sm-10">
<input type="text" name="config_headphone2" value="{{ config_headphone2 }}" placeholder="{{ entry_headphone2 }}" id="input-telephone" class="form-control"/>
</div>
</div>
<div class="row mb-3">
<label for="input-headmail" class="col-sm-2 col-form-label">{{ entry_headmail }}</label>
<div class="col-sm-10">
<input type="text" name="config_headmail" value="{{ config_headmail }}" placeholder="{{ entry_headmail }}" id="input-email" class="form-control"/>
</div>
</div>
<div class="row mb-3">
<label for="input-headaddress" class="col-sm-2 col-form-label">{{ entry_headaddress }}</label>
<div class="col-sm-10">
<input type="text" name="config_headaddress" value="{{ config_headaddress }}" placeholder="{{ entry_headaddress }}" id="input-address" class="form-control"/>
</div>
</div>
<div class="row mb-3">
<label for="input-headworktime" class="col-sm-2 col-form-label">{{ entry_headworktime }}</label>
<div class="col-sm-10">
<input type="text" name="config_headworktime" value="{{ config_headworktime }}" placeholder="{{ entry_headworktime }}" id="input-open" class="form-control"/>
</div>
</div>
<div class="row mb-3">
<label for="input-headsocial" class="col-sm-2 col-form-label">{{ entry_headsocial }}</label>
<div class="col-sm-10">
<textarea name="config_headsocial" rows="5" placeholder="{{ entry_headsocial }}" id="input-comment" class="form-control">{{ config_headsocial }}</textarea>
</div>
</div>
</fieldset>
2. Откроем файл: ../public_html/***/controller/setting/setting.php и после этой строки:
$data['config_image'] = $this->config->get('config_image');
вставим эти:
// Headpanel info
$data['config_headinfo'] = $this->config->get('config_headinfo');
$data['config_headphone1'] = $this->config->get('config_headphone1');
$data['config_headphone2'] = $this->config->get('config_headphone2');
$data['config_headmail'] = $this->config->get('config_headmail');
$data['config_headaddress'] = $this->config->get('config_headaddress');
$data['config_headworktime'] = $this->config->get('config_headworktime');
$data['config_headsocial'] = $this->config->get('config_headsocial');
3. Откроем файл ../public_html/***/language/ru-ru/setting/setting.php и после этой строки:
$_['entry_comment'] = 'Дополнительная информация';
вставим эти:
$_['entry_headphone1'] = '1 Телефон'; $_['entry_headphone2'] = '2 Телефон'; $_['entry_headmail'] = 'Почта'; $_['entry_headaddress'] = 'Адрес'; $_['entry_headworktime'] = 'Время работы'; $_['entry_headsocial'] = 'Соц. сети';
а перед этой строкой:
$_['text_image_size'] = 'Размер изображений';
вставим эту:
$_['text_headinfo'] = 'Информация в выпадающем списке';
4. Откроем файл ../public_html/***/language/en-gb/setting/setting.php и после этой строки:
$_['entry_comment'] = 'Comment';
вставим эти:
$_['entry_headphone1'] = '1 Phone'; $_['entry_headphone2'] = '2 Phone'; $_['entry_headmail'] = 'E-mail'; $_['entry_headaddress'] = 'Address'; $_['entry_headworktime'] = 'Work Times'; $_['entry_headsocial'] = 'Social';
а перед этой строкой:
$_['text_image_size'] = 'Image Sizes';
вставим эту:
$_['text_headinfo'] = 'Information in the drop-down list';
5. Открываем админку и переходим: Система > Настройки > Редактировать > Магазин и видим внизу новый блок:
Заполняем нужные вам строки (чтобы меня не забросали спамом свои данные вставляю картинкой):
и нажимаем кнопку Сохранить.
6. Откроем файл ../public_html/catalog/view/template/common/header.twig и после этой строки:
<div class="nav float-start">
вставим эти:
<div class="dropdown">
<a href="{{ contact }}" class="dropdown-toggle" data-bs-toggle="dropdown"><i class="fa-solid fa-phone"></i> <span class="d-none d-md-inline">{{ telephone }}</span> <i class="fa-solid fa-caret-down"></i></a>
<ul class="dropdown-menu dropdown-menu-right headmenu">
<li>{{ headphone1 }}</li>
<li>{{ headphone2 }}</li>
<li>{{ headmail }}</li>
<li>{{ headaddress }}</li>
<li>{{ headworktime }}</li>
<li>{{ headsocial }}</li>
</ul>
</div>
и удалим эту строку:
<li class="list-inline-item"><a href="{{ contact }}"><i class="fa-solid fa-phone"></i></a> <span class="d-none d-md-inline">{{ telephone }}</span></li>
9. Откроем файл: ../public_html/catalog/controller/common/header.php и после этой строки:
$data['telephone'] = $this->config->get('config_telephone');
вставим эти:
$data['headphone1'] = html_entity_decode($this->config->get('config_headphone1'), ENT_QUOTES, 'UTF-8');
$data['headphone2'] = html_entity_decode($this->config->get('config_headphone2'), ENT_QUOTES, 'UTF-8');
$data['headmail'] = html_entity_decode($this->config->get('config_headmail'), ENT_QUOTES, 'UTF-8');
$data['headaddress'] = html_entity_decode($this->config->get('config_headaddress'), ENT_QUOTES, 'UTF-8');
$data['headworktime'] = html_entity_decode($this->config->get('config_headworktime'), ENT_QUOTES, 'UTF-8');
$data['headsocial'] = html_entity_decode($this->config->get('config_headsocial'), ENT_QUOTES, 'UTF-8');
P.S. — я специально преобразовываю все эти строки в html код (благодаря этому мы можем вставлять иконки, картинки и ссылки).
Чистим в админке все кеши, переходим на витрину нашего магазина и смотрим что у нас получилось:
Сильно не ужасаемся, сейчас перейдём к оформлению.
10. Открываем файл: ../public_html/catalog/view/stylesheet/stylesheet.css и в конец файла вставляем эти строки:
/* headpanel dropdown */
.headmenu {
min-width: 220px;
padding: 10px 15px;
}
.headmenu li+li {
padding: 15px 0 0 0;
}
.headmenu i {
color: #2196F3;
padding-right: 5px;
}
.headmenu .small {
font-size: 12px;
color: #90A4AE;
}
Чистим все кеши и смотрим результат:
Конечно оформление так себе, требуется доработка, но всё равно лучше чем было. 🙂
P.S. — В следующих статьях мы вновь вернёмся к верхней панели (и к шапке сайта — сейчас она мне не слишком симпатична) и улучшим оформление выпадающего списка.
Демонстрационный сайт: demo.moushe.ru (демо сайт обновляется вместе с выходом новых статей).
На этом всё, надеюсь статья была вам полезна.




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