Категории 3 уровня в горизонтальном меню.

Тема в разделе "Общие вопросы", создана пользователем Сергей2015, 23 апр 2015.

  1. Сергей2015

    Сергей2015 Новичок

    Сообщения:
    10
    Симпатии:
    0
    Добрый день! У меня Opencart Version 2.0.0.1b Подскажите пожалуйста, в главном меню категории отображаются только до второго уровня, можно ли сделать чтобы и подкатегории отображались в главном меню? Очень нужно!
     
  2. Ravilr

    Ravilr Специалист

    Сообщения:
    3.158
    Симпатии:
    874
  3. Сергей2015

    Сергей2015 Новичок

    Сообщения:
    10
    Симпатии:
    0
    Не работает модуль с последней ссылки, сайт вообще не отображается!!!
     
  4. Ravilr

    Ravilr Специалист

    Сообщения:
    3.158
    Симпатии:
    874
    nthlevel-2.0.1.0-2.0.1.1 OCMOD VERSION

    Работает как надо, проверено лично!!!!
     
  5. Сергей2015

    Сергей2015 Новичок

    Сообщения:
    10
    Симпатии:
    0
    я его скачал, там два файла. вошел в админку в установку расширений и нажал установить, строка пробежала зеленая, внизу не появились файлы в окне записанные файлы и кнопка продолжить не сфокусировалась, далее вошел в модули - модификаторы, там оно отобразилось, далее в этом окне вошел в лог и стер его, далее пытаюсь зайти уже на сам сайт и вместо сайта вообще ничего (пустой белый экран).
     
  6. Ravilr

    Ravilr Специалист

    Сообщения:
    3.158
    Симпатии:
    874
     
  7. Сергей2015

    Сергей2015 Новичок

    Сообщения:
    10
    Симпатии:
    0
    Да, да именно я его и скачал там с подписью OCMOD, может с установкой у меня что то не так, я ее описал выше.
     
  8. Ravilr

    Ravilr Специалист

    Сообщения:
    3.158
    Симпатии:
    874
    У вас версии разные!!! Возможно глюки в движке модификатора итд итп и пр....
     
  9. Сергей2015

    Сергей2015 Новичок

    Сообщения:
    10
    Симпатии:
    0
    У Нас версии разные? Ну хорошо, вот такую тему я нашел Только у меня tpl отличается строчкой, тут такая а у меня вот:
    Код:
    </header>
    <?php if ($categories) { ?>
    <div class="container">
      <nav id="menu" class="navbar">
        <div class="navbar-header"><span id="category" class="visible-xs"><?php echo $text_category; ?></span>
          <button type="button" class="btn btn-navbar navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse"><i class="fa fa-bars"></i></button>
        </div>
        <div class="collapse navbar-collapse navbar-ex1-collapse">
          <ul class="nav navbar-nav">
            <?php foreach ($categories as $category) { ?>
            <?php if ($category['children']) { ?>
            <li class="dropdown"><a href="<?php echo $category['href']; ?>" class="dropdown-toggle" data-toggle="dropdown"><?php echo $category['name']; ?></a>
              <div class="dropdown-menu">
                <div class="dropdown-inner">
                  <?php foreach (array_chunk($category['children'], ceil(count($category['children']) / $category['column'])) as $children) { ?>
                  <ul class="list-unstyled">
                    <?php foreach ($children as $child) { ?>
                    <li><a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a></li>
                    <?php } ?>
                  </ul>
                  <?php } ?>
                </div>
                <a href="<?php echo $category['href']; ?>" class="see-all"><?php echo $text_all; ?> <?php echo $category['name']; ?></a> </div>
            </li>
            <?php } else { ?>
            <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>
            <?php } ?>
            <?php } ?>
          </ul>
        </div>
      </nav>
    </div>
    <?php } ?>
    
     
    Последнее редактирование модератором: 24 апр 2015
  10. Ravilr

    Ravilr Специалист

    Сообщения:
    3.158
    Симпатии:
    874
    Не надо тут приводить ссылки на стороннюю сборку с кодом от версии 1.5. Да и пользуйтесь тегами code для оформления кода.
    Откройте окмод и сделай все вручную... В документации на данном сайте описан каждый тег окмода.

    Я может и напишу подобную инструкцию, но все будет проверятся только на 2.0.1 и выше
     
  11. Сергей2015

    Сергей2015 Новичок

    Сообщения:
    10
    Симпатии:
    0
    Напишите пожалуйста!!! Просто очень нужно!!! Заранее Благодарен!
     
  12. lavlan

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

    Сообщения:
    89
    Симпатии:
    20
    чем больше вложенностей в меню, тем больше вероятность, что человек быстро уйдет с Вашего сайта
    З.Ы. это только мое мнение...
     
    Последнее редактирование: 8 июн 2017
    Div2303 и Ален нравится это.
  13. Ravilr

    Ravilr Специалист

    Сообщения:
    3.158
    Симпатии:
    874
    так вот

    в \catalog\controller\common\header.php

    меняем это
    PHP:
                    foreach ($children as $child) {
                        
    $filter_data = array(
                            
    'filter_category_id'  => $child['category_id'],
                            
    'filter_sub_category' => true
                        
    );

                        
    $children_data[] = array(
                            
    'name'  => $child['name'] . ($this->config->get('config_product_count') ? ' (' $this->model_catalog_product->getTotalProducts($filter_data) . ')' ''),
                            
    'href'  => $this->url->link('product/category''path=' $category['category_id'] . '_' $child['category_id'])
                        );
                    }
    на это
    PHP:
                    foreach ($children as $child) {
                        
    $children_data2 = array();  
                        
    $children2 $this->model_catalog_category->getCategories($child['category_id']);  
                  
                        foreach (
    $children2 as $child2) {
                            
    $children_data2[] = array(
                            
    'name'  => $child2['name'] . ($this->config->get('config_product_count') ? ' (' $this->model_catalog_product->getTotalProducts($filter_data) . ')' ''),
                            
    'href'  => $this->url->link('product/category''path=' $child['category_id'] . '_' $child2['category_id']),
                            );
                        }
                      
                        
    $filter_data = array(
                            
    'filter_category_id'  => $child['category_id'],
                            
    'filter_sub_category' => true
                        
    );

                        
    $children_data[] = array(
                            
    'name'  => $child['name'] . ($this->config->get('config_product_count') ? ' (' $this->model_catalog_product->getTotalProducts($filter_data) . ')' ''),
                            
    'href'  => $this->url->link('product/category''path=' $category['category_id'] . '_' $child['category_id']),
                            
    'children' => $children_data2,
                        );
                    }

    в шаблоне header.tpl
    это
    Код:
                    <?php foreach ($children as $child) { ?>
                    <li><a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a></li>
                    <?php } ?>
    на это
    Код:
                    <?php foreach ($children as $child) { ?>
                    <li><a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a>
                        <?php     if ($child['children']) {?>
                             <div class="child"><ul class="list-unstyled">
                             <?php foreach ($child['children'] as $child) { ?>
                                <li><a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a></li>
                            <?php } ?>
                            </ul></div>
                        <?php } ?>
                    </li>
                    <?php } ?>

    а в файл стилей stylesheet.css добавим
    Код:
    .child {display:none;}
    #menu .dropdown-inner ul > li:hover .child {display:block;background: #fff;border: 1px solid #ddd;left: 100%;position: absolute;top: 0;z-index: 9;}
    nav#menu.navbar ul li div.dropdown-menu div ul li {position:relative;}
     
    kerogazzz, RoS, Madmike и 3 другим нравится это.
  14. Сергей2015

    Сергей2015 Новичок

    Сообщения:
    10
    Симпатии:
    0
    СПС!!! Смотрите личку!
     
  15. iskander_n

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

    Сообщения:
    62
    Симпатии:
    1
    Я выполнил все действия и у меня начала вылазить вот такая ошибка
    Notice: Undefined variable: filter_data in /usr/home/arsenal-kuz/public_html/catalog/controller/common/header.php on line 110Notice: Undefined variable: filter_data in /usr/home/arsenal-kuz/public_html/catalog/controller/common/header.php on line 110Notice: Undefined variable: filter_data in /usr/home/arsenal-kuz/public_html/catalog/controller/common/header.php on line 110Notice: Undefined variable: filter_data in /usr/home/arsenal-kuz/public_html/catalog/controller/common/header.php on line 110
     
  16. iskander_n

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

    Сообщения:
    62
    Симпатии:
    1
    что я сделал не так?
     
  17. Ravilr

    Ravilr Специалист

    Сообщения:
    3.158
    Симпатии:
    874
    что то сделали не так.
    1. Инструкция работает только на не измененном контроллере
    2. filter_data не объявили видимо. Тут по ошибке ничего не скажешь. Верните обратно новый контроллер и проделайте аккуратно и внимательно все действия указанные выше. Ну и если что инструкция для 2.0
     
  18. aksoff

    aksoff Новичок

    Сообщения:
    2
    Симпатии:
    1
    Данный код исправляет ошибку с переменной filter_data и неправильное отображение количества товара в подкатегории (header.php):
    PHP:
    foreach ($children as $child) {
                        
    $filter_data = array();
                        
    $filter_data2 = array();
                        
    $children_data2 = array(); 
                        
    $children2 $this->model_catalog_category->getCategories($child['category_id']); 
                 
                        foreach (
    $children2 as $child2) {
                            
    $filter_data2 = array(
                                
    'filter_category_id'  => $child2['category_id'],
                                
    'filter_sub_category' => true
                            
    );
                            
    $children_data2[] = array(
                            
    'name'  => $child2['name'] . ($this->config->get('config_product_count') ? ' (' $this->model_catalog_product->getTotalProducts($filter_data2) . ')' ''),
                            
    'href'  => $this->url->link('product/category''path=' $child['category_id'] . '_' $child2['category_id']),
                            );
                        }
                     
                        
    $filter_data = array(
                            
    'filter_category_id'  => $child['category_id'],
                            
    'filter_sub_category' => true
                        
    );

                        
    $children_data[] = array(
                            
    'name'  => $child['name'] . ($this->config->get('config_product_count') ? ' (' $this->model_catalog_product->getTotalProducts($filter_data) . ')' ''),
                            
    'href'  => $this->url->link('product/category''path=' $category['category_id'] . '_' $child['category_id']),
                            
    'children' => $children_data2,
                        );
                    }
     
    Ален нравится это.
  19. RoS

    RoS Специалист

    Сообщения:
    226
    Симпатии:
    218
    При переходе не учитывается родительская категория.
    Вот маленькая поправка. В foreach ($children2 as $child2) {
    Найти:
    PHP:
    'href'  => $this->url->link('product/category''path=' $child['category_id'] . '_' $child2['category_id']),
    Заменить на:
    PHP:
     'href'  => $this->url->link('product/category''path=' $category['category_id'] . '_' $child['category_id'] . '_' $child2['category_id']),
     
    my2you нравится это.
  20. SergeyRV

    SergeyRV Новичок

    Сообщения:
    7
    Симпатии:
    0
    Всем спасибо за тему.