Дополнительное меню в шапке

Тема в разделе "Дизайн, оформление и шаблоны", создана пользователем wig, 23 авг 2015.

  1. wig

    wig Пользователь

    Сообщения:
    31
    Симпатии:
    1
    Добрый день!
    Подскажите пожалуйста или направьте, в поиске не нашёл, как новичку добавить в шапку шаблона сайта выше блока меню категорий текстовые ссылки доставка - контакты - о нас... В футере это выполнено вертикально. Мне нужно вверху и горизонтально. Может расширение какое есть? код ручками боюсь править. Опенкарт последний 2.0.3.1
     
  2. Romans

    Romans Administrator Команда форума

    Сообщения:
    1.453
    Симпатии:
    787
    Покажите скрин, куда выше хотите добавить.
    Модулей обычно таких мало или почти нет, т.к правится вручную в файле header.tpl
     
  3. wig

    wig Пользователь

    Сообщения:
    31
    Симпатии:
    1
    Вот так хочу выполнить, чтобы клиенту нагляднее была информация о доставке, оплате и контактах
    [​IMG]
     
    Последнее редактирование: 6 янв 2016
  4. RoS

    RoS Специалист

    Сообщения:
    227
    Симпатии:
    221
    Вот расширенное изменение.
    В итоге Вы получите вывод статей, которые можно включат/выключать только для верхней части.

    В БД, делаете бэкап базы!!!!

    После чего выполняете запрос! (если у Вас суффикс базы другой то измените в запросе "oc_" )
    Код:
    ALTER TABLE oc_information ADD COLUMN top INT(1) NOT NULL DEFAULT '0' AFTER bottom

    1. Для Админки:


    admin/controller/catalog/information.php

    находим и после этой строки
    PHP:
    $data['entry_bottom'] = $this->language->get('entry_bottom');
    добавляем
    PHP:
    $data['entry_top'] = $this->language->get('entry_top');
    находим
    PHP:
    $data['help_bottom'] = $this->language->get('help_bottom');
    добавляем ниже
    PHP:
    $data['help_top'] = $this->language->get('help_top');
    находим
    PHP:
    if (isset($this->request->post['bottom'])) {
                
    $data['bottom'] = $this->request->post['bottom'];
            } elseif (!empty(
    $information_info)) {
                
    $data['bottom'] = $information_info['bottom'];
            } else {
                
    $data['bottom'] = 0;
            }
    ниже добавляем:
    PHP:
    if (isset($this->request->post['top'])) {
                
    $data['top'] = $this->request->post['top'];
            } elseif (!empty(
    $information_info)) {
                
    $data['top'] = $information_info['top'];
            } else {
                
    $data['top'] = 0;
            }

    admin/language/russian/catalog/information.php

    находим
    PHP:
    $_['entry_bottom']           = 'Отображить снизу';
    добавляем ниже
    PHP:
    $_['entry_top']           = 'Отображать сверху';
    $_['help_top']  = 'Показывать в верхней части сайта (хеадер, шапка)';

    admin/model/catalog/information.php

    находим
    PHP:
    $this->db->query("INSERT INTO " DB_PREFIX "information SET sort_order = '" . (int)$data['sort_order'] . "', bottom = '" . (isset($data['bottom']) ? (int)$data['bottom'] : 0) . "', status = '" . (int)$data['status'] . "'");
    заменяем на:
    PHP:
    $this->db->query("INSERT INTO " DB_PREFIX "information SET sort_order = '" . (int)$data['sort_order'] . "', bottom = '" . (isset($data['bottom']) ? (int)$data['bottom'] : 0) . "', top = '" . (isset($data['top']) ? (int)$data['top'] : 0) . "', status = '" . (int)$data['status'] . "'");
    находим:
    PHP:
    $this->db->query("UPDATE " DB_PREFIX "information SET sort_order = '" . (int)$data['sort_order'] . "', bottom = '" . (isset($data['bottom']) ? (int)$data['bottom'] : 0) . "', status = '" . (int)$data['status'] . "' WHERE information_id = '" . (int)$information_id "'");
    заменяем на:
    PHP:
    $this->db->query("UPDATE " DB_PREFIX "information SET sort_order = '" . (int)$data['sort_order'] . "', bottom = '" . (isset($data['bottom']) ? (int)$data['bottom'] : 0) . "', top = '" . (isset($data['top']) ? (int)$data['top'] : 0) . "', status = '" . (int)$data['status'] . "' WHERE information_id = '" . (int)$information_id "'");

    admin/view/template/catalog/information_form.tpl

    находим
    PHP:
    <div class="form-group">
                    <label class="col-sm-2 control-label" for="input-bottom"><span data-toggle="tooltip" title="<?php echo $help_bottom?>"><?php echo $entry_bottom?></span></label>
                    <div class="col-sm-10">
                      <div class="checkbox">
                        <label>
                          <?php if ($bottom) { ?>
                          <input type="checkbox" name="bottom" value="1" checked="checked" id="input-bottom" />
                          <?php } else { ?>
                          <input type="checkbox" name="bottom" value="1" id="input-bottom" />
                          <?php ?>
                          &nbsp; </label>
                      </div>
                    </div>
                  </div>
    и добавляем выше:
    PHP:
    <div class="form-group">
                    <label class="col-sm-2 control-label" for="input-top"><span data-toggle="tooltip" title="<?php echo $help_top?>"><?php echo $entry_top?></span></label>
                    <div class="col-sm-10">
                      <div class="checkbox">
                        <label>
                          <?php if ($top) { ?>
                          <input type="checkbox" name="top" value="1" checked="checked" id="input-top" />
                          <?php } else { ?>
                          <input type="checkbox" name="top" value="1" id="input-top" />
                          <?php ?>
                          &nbsp; </label>
                      </div>
                    </div>
                  </div>

    2. Вывод на сайте:

    catalog/controller/common/header.php

    Перед
    PHP:
    // Menu
            
    $this->load->model('catalog/category');
    Добавляем
    PHP:
    $this->load->model('catalog/information');

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

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

    catalog/view/theme/ВАША_ТЕМА/template/common/header.tpl


    В вашем случае!
    Находите:
    PHP:
    <div class="col-sm-3"><?php echo $cart?></div>
        </div>
    и добавляете ниже:
    PHP:
    <div class="row">
                <div class="col-sm-12">
                    <?php foreach ($informations as $information) { ?>
                        <a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a>
                    <?php ?>
                </div>
            </div>
    После изменений нужно обновить кеш модификатора!!!!!!!!!!!!!!!!!!!

    Безымянный2.jpg Безымянный1.jpg
     
    Последнее редактирование: 2 янв 2016
    Xio, gobifffvl, vintoss и 10 другим нравится это.
  5. Slait

    Slait Эксперт

    Сообщения:
    503
    Симпатии:
    456
    Классное решение. Молодец :)
     
  6. wig

    wig Пользователь

    Сообщения:
    31
    Симпатии:
    1
    Спасибо! Обязательно попробую этот метод. если есть возможность могли бы сделать скрин, что получится в итоге этих изменений на главной сайта?
     
  7. RoS

    RoS Специалист

    Сообщения:
    227
    Симпатии:
    221
    Прикрепил изображение и подкорректировал код для admin/language/russian/catalog/information.php забыл дописать одну строчку.
     
  8. wig

    wig Пользователь

    Сообщения:
    31
    Симпатии:
    1
    Спасибо за Ваш труд, наверняка многим пригодится это решение! У меня вопрос, наверх получается перенеслись ссылки "о нас" и "доставка", контакты из службы поддержки переносить таким же методом? Чтобы было в строчку например: о нас-доставка-контакты
     
  9. RoS

    RoS Специалист

    Сообщения:
    227
    Симпатии:
    221
    Пожалуйста!
    Переносятся те статьи которые вы отметите галочками в админке.
    У меня на примере в админке стоят галочки показывать сверху и внизу статьям "О нас" и "Доставка", а "Политика Безопасности" и "Условия соглашения" только внизу.

    Чтоб перенести контакты вам стоит всего лишь сделать вот эти действия:

    В catalog/controller/common/header.php

    После строки
    PHP:
    $data['text_all'] = $this->language->get('text_all');
    Добавить:
    PHP:
    $data['text_contact'] = $this->language->get('text_contact');
    После этой
    PHP:
    $data['telephone'] = $this->config->get('config_telephone');
    Добавить
    PHP:
    $data['contact'] = $this->url->link('information/contact');

    catalog/language/russian/common/header.php

    После
    PHP:
    $_['text_all']           = 'Смотреть Все';
    Добавить
    PHP:
    $_['text_contact']      = 'Контакты';

    catalog/view/theme/ВАША_ТЕМА/template/common/header.tpl

    И потом добавить в этот блок
    PHP:
    <div class="row">
                <div class="col-sm-12">
                    <?php foreach ($informations as $information) { ?>
                        <a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a>
                    <?php ?>
                </div>
            </div>
    вот эту строчку
    PHP:
    <a href="<?php echo $contact?>"><?php echo $text_contact?></a>
    Чтоб получилось так
    PHP:
    <div class="row">
                <div class="col-sm-12">
                    <?php foreach ($informations as $information) { ?>
                        <a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a>
                    <?php ?>
                    <a href="<?php echo $contact?>"><?php echo $text_contact?></a>
                </div>
            </div>
    Потом можете с помощью css оформить внешний вид.
     
    vintoss и wig нравится это.
  10. wig

    wig Пользователь

    Сообщения:
    31
    Симпатии:
    1
    Ещё раз спасибо! Если можно вопрос не по теме, но хочется спросить именно у Вас Ros так как Ваша компетентность в вопросах опенкарта неоспорима и заслуживает уважения. Посоветуйте модуль доставки, желательно без оплатный, так как не выделен моим руководством бюджет на модули, чтобы его можно было универсально настроить под любого курьера. Нужна Укрпочта, новая почта и интайм (Украина). Необязательно чтобы там были интегрированы отделения и адреса с калькуляторами. Достаточно чтобы администратор знал что клиент выбрал определённого курьера. А у клиента в оформлении заказа была возможность выбрать курьера одного или второго или третьего
     
  11. Ravilr

    Ravilr Специалист

    Сообщения:
    3.981
    Симпатии:
    1.087
    1 вопрос 1 тема! Без исключений!!!
     
  12. wig

    wig Пользователь

    Сообщения:
    31
    Симпатии:
    1
    Добрый день! Сегодня пытаюсь сделать по Вашему пути изменения в файлах. Но пока не совсем получилось. Выскочили ошибки catalog/controller/common/header.php on line 93
    Скажите Вы имели ввиду Вывод на сайте по пути catalog/controller/common/header.php???
    Вы случайно пропустили common?
    Всё сделал как Вы показали, но почему в статьях сохраняю отображать сверху, а оно не отображается и не сохраняйтся эта настроойка..наверно проблема в ошибке.
    Что я не так мог сделать в catalog/controller/common/header.php??
    Нужно было добавить код

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

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

            foreach (
    $this->model_catalog_information->getInformations() as $result) {
                if (
    $result['top']) {
                    
    $data['informations'][] = array(
                        
    'title' => $result['title'],
                        
    'href'  => $this->url->link('information/information''information_id=' $result['information_id'])
                    );
                }
            } 
    строчкой выше от
    PHP:
    // Menu
            
    $this->load->model('catalog/category'); 
    ???

     
  13. RoS

    RoS Специалист

    Сообщения:
    227
    Симпатии:
    221
    Да, случайно пропустил common, спасибо, подправил. Вы изменения сделали в базе данных? В админке есть ошибки или только на сайте?
     
    Последнее редактирование: 29 авг 2015
  14. wig

    wig Пользователь

    Сообщения:
    31
    Симпатии:
    1
    Нет изменнений в базе не делал, подсткажите пожалуйста подробнее в каком файле и что отредактировать?
    Ошибки отражаются на сайте и выскакивает ошибка в админке, когда нажимаешь отредактировать статью, ошибка такая:
    admin/controller/catalog/information.php on line 406
     
  15. RoS

    RoS Специалист

    Сообщения:
    227
    Симпатии:
    221
    Зайдите в вашу базу и выполните запрос:
     

    Вложения:

    wig нравится это.
  16. wig

    wig Пользователь

    Сообщения:
    31
    Симпатии:
    1
    Теперь ошибки исчезли после запроса! Спасибо большое! Статьи отразились вверху. А для чего этот запрос в БД проясните на будущее?..
    Один момент у Вас на скриншоте статьи вверху справа под корзиной, а у меня вверху слева под логотипом. Хочу чтобы тоже были справа под корзиной как у Вас
     
  17. RoS

    RoS Специалист

    Сообщения:
    227
    Симпатии:
    221
    В БД заносится число: 0 = не показывать, 1 = показывать. Потом в контролере проверяется это условие. (аналогично работает галочка "Показывать внизу:")
    Чтоб перенести ссылки вправо можно добавить класс "text-right" этому диву <div class="col-sm-12">

    PHP:
    <div class="row">
                <div class="col-sm-12 text-right">
                    <?php foreach ($informations as $information) { ?>
                        <a href="<?php echo $information['href']; ?>"><?php echo $information['title']; ?></a>
                    <?php ?>
                </div>
            </div>
    А дальше в css можете изменять цвет, размер и т.п.
     
    zvo и wig нравится это.
  18. wig

    wig Пользователь

    Сообщения:
    31
    Симпатии:
    1
    Спасибо Вам большое за консультации!
    У меня 2 вопроса:
    1) Где редактировать по какому пути и в каком файле чтобы статьи вверху сместились вправо?
    2) Где находится файл css по какому пути? чтобы немного увеличить шрифт и изменить цвет шрифта?
     
  19. RoS

    RoS Специалист

    Сообщения:
    227
    Симпатии:
    221
    1. catalog/view/theme/ВАША_ТЕМА/template/common/header.tpl - в тот фрагмент кода который вы вставляли. Можно добавить еще id="menu-info" (или свой id)
    Чтоб получилось так:
    HTML:
    <div class="col-sm-12 text-right" id="menu-info">
    2. catalog/view/theme/ВАША_ТЕМА/stylesheet/stylesheet.css - тут добавляете #menu-info a{ВАШИ СТИЛИ ДЛЯ ССЫЛКИ}
     
    zvo и wig нравится это.
  20. wig

    wig Пользователь

    Сообщения:
    31
    Симпатии:
    1
    Ещё один нюансик если можно!
    немного статьи получились скученно, можно ли между словами сделать небольшой отступ, хотя бы 2 пробела
    Вот скрин
    [​IMG]