Переделываем верхнее меню opencart

Т.к. мы уже переделали opencart под быстрое оформление заказа, теперь нужно убрать из верхнего меню лишние элементы, вроде закладок и личного кабинета. А так же добавить немного нужных ништяков.

Открываем файл: /catalog/view/theme/default/template/common/header.tpl

Удаляем строчки:

    <?php echo $currency; ?>
    <?php echo $language; ?>

В российских реалиях выбор языка и валюты не нужен. Далее т.к. у нас аккаунты не предусмотрены удаляем всё что с ним связано:

        <li class="dropdown"><a href="<?php echo $account; ?>" title="<?php echo $text_account; ?>" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-user"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $text_account; ?></span> <span class="caret"></span></a>
          <ul class="dropdown-menu dropdown-menu-right">
            <?php if ($logged) { ?>
            <li><a href="<?php echo $account; ?>"><?php echo $text_account; ?></a></li>
            <li><a href="<?php echo $order; ?>"><?php echo $text_order; ?></a></li>
            <li><a href="<?php echo $transaction; ?>"><?php echo $text_transaction; ?></a></li>
            <li><a href="<?php echo $download; ?>"><?php echo $text_download; ?></a></li>
            <li><a href="<?php echo $logout; ?>"><?php echo $text_logout; ?></a></li>
            <?php } else { ?>
            <li><a href="<?php echo $register; ?>"><?php echo $text_register; ?></a></li>
            <li><a href="<?php echo $login; ?>"><?php echo $text_login; ?></a></li>
            <?php } ?>
          </ul>
        </li>
        <li><a href="<?php echo $wishlist; ?>" id="wishlist-total" title="<?php echo $text_wishlist; ?>"><i class="fa fa-heart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $text_wishlist; ?></span></a></li>

Следующая задача более интересная, нужно добавить статьи в шапку opencart, но при этом что бы оно не дублировало аналогичное меню в футере. Находим строчку:

<div id="top-links" class="nav pull-right">

И перед ней вставляем:

    <div id="top-left-links" class="nav pull-left">
      <ul class="list-inline">
      <?php if ($informations) { ?>
          <?php foreach ($informations as $information) { ?>
          <li><a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a></li>
          <?php } ?>
      <?php } ?>
      </ul>
    </div>

Но теперь хедеру непонятно откуда взять массив $informations. Что бы объяснить ему, открываем файл: /catalog/controller/common/header.php в котором где-нибуть в районе 39-40 строчки вставляем следующее:

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

		$data['informations'] = array();

		foreach ($this->model_catalog_information->getInformations() as $result) {
			if (!$result['bottom']) {
				$data['informations'][] = array(
					'title' => $result['title'],
					'href'  => $this->url->link('information/information', 'information_id=' . $result['information_id'])
				);
			}
		}

В этом кусочке кода мы подгрузили все статьи в которых НЕ стоит галочка "Отображить снизу".

Теперь что бы статья попала в верхнее меню opencart, достаточно эту галочку не ставить.

Результат нашей работы:

topmenu

Пример можно посмотреть на http://opencart.allwebstuff.info



Письмо о заказе Opencart

В opencart по умолчанию не предусмотрена отправка телефона и адреса клиента при оформлении заказа. Почему так сделано- загадка. Чтобы не залазить каждый раз в админку, абсолютно все клиенты просят добавить как минимум телефон в письмо о заказе. Opencart отправляет его из файла order.php, находящегося в /catalog/model/checkout, находим код

css анимация на сайте

В настоящее время с помощью css анимации можно сделать практически всё что угодно. Gif и javascript анимация постепенно уходят на второй план. Преимущество css анимации


(9) Комментариев

Наталья - 23.03.2015 23:35:04
- 0    + 0
Здравствуйте! Подскажите пожалуйста, как сделать тоже самое только для opencart 1.5.5.1 ? Имею ввиду статьи в шапке. Переименовала дивы, классы, так как там по другому они называются, но что-то все равно не получается ((
Илья - 25.03.2015 02:30:53
- 0    + 0
Для opencart версии 1.5.х нужно так же в контроллере /catalog/controller/common/header.php добавить выборку массива из меню информации:


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

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

foreach ($this->model_catalog_information->getInformations() as $result) {
if (!$result['bottom']) {
$this->data['informations'][] = array(
'title' => $result['title'],
'href' => $this->url->link('information/information', 'information_id=' . $result['information_id'])
);
}
}


А вот с выводом всего этого в шапку уж немного интересней. Структуру, расположение и стили нужно будет сделать полностью самим. Вот пример как выведено меню в свежем проекте:





Этот блок вставлен в шаблоне /catalog/view/theme/default/template/common/header.tpl между тегами

и




Стили для него:


#toptopmenu
{
background:url('/image/sys/menuback1.png') repeat-x left center;
padding:0px;
margin:0px;
border-bottom:1px solid #d6edd9;
}
#toptopmenu > ul
{
padding:0;
margin:0 auto;
list-style-type:none;
width:1100px;
display:block;
font-size:0px;
background:url('/image/sys/menuback2.png') repeat-x left center;
}
#toptopmenu > ul > li
{
padding:0;
margin:0;
display:inline-block;
height:49px;
}
#toptopmenu > ul > li > a
{
padding:0px 15px;
margin:0;
position:relative;
top:-20px;
display:inline-block;
color:#fff;
text-decoration:none;
font-size:16px;
font-family:arial;
font-weight: bold;
}
#toptopmenu > ul > li:hover
{
background:#f4f4f4;
}
#toptopmenu > ul > li:hover > a
{
color:#5d9a63;
}


Как это выглядит на живом сайте можно посмотреть тут.

К сожалению, единого рецепта по стилизации дать не могу, т.к. каждый сайт индивидуален.
Николай - 13.12.2015 17:03:41
- 0    + 0
Спасибо!
В целом дошёл сам. Вот это кусочек правда оказался именно тем что хотелось
if (!$result['bottom']) {

!)
Вадим - 30.12.2017 21:44:56
- 0    + 0
Здравствуйте. Добавил ссылки в верхнее меню. Они съехали вверх.
Илья - 07.01.2018 05:22:47
- 0    + 0
Могу лишь предположить, что что-то не так со стилями.
Сергей - 04.02.2018 05:29:38
- 0    + 0
Добрый день. Вы не могли бы помочь с небольшим редактированием сайта на Opencart 2.3 за оплату? Если возможно, ответьте на почту.
Илья - 17.02.2018 19:58:15
- 0    + 0
Привет. Нет, не смогу, простите. На самом деле, я уже много лет не работаю на пхп)
Сева - 06.06.2019 18:07:21
- 0    + 0
Version 2.3.0.2 (rs.6) выдал ошибку Undefined variable: informations , 3 строчка после div id <?php if ($informations) { ?>
Ilya - 07.06.2019 06:51:19
- 0    + 0
Привет. Там чуть ниже есть ещё 1 блок кода, который эту переменную и создаст.