Как скрыть подкатегории....

Тема в разделе "OpenCart", создана пользователем alex86, 8 янв 2016.

  1. alex86

    alex86

    Регистрация:
    16 сен 2013
    Сообщения:
    2
    Симпатии:
    0
    Добрый вечер!
    Подскажите как сделать чтобы при выборе категории в боковом меню , под категории не раскрывались.
    Да и если много под категорий , не красиво когда это все разворачивается.

    Вот здесь можно посмотреть : http://opencart.my2you.ru/magazinchik2/

    открываешь категорию
    Аксессуары

    и вываливаются вниз три под категории :
    - Большой сет (6)
    - Маленький сет (6)

    - Средний сет (0)


    можно как нибудь скрыть под категории ,они все равно по центру выводятся.

    Спасибо.
     
  2. MGT1

    MGT1

    Регистрация:
    5 янв 2013
    Сообщения:
    900
    Симпатии:
    218
    Какой модуль стоит на левое меню? "Акардеон"?
    Есть 2 варианта - заменить обычным, или с этого выбрать код.
     
  3. alex86

    alex86

    Регистрация:
    16 сен 2013
    Сообщения:
    2
    Симпатии:
    0
    Не не акардеон, похож на обычный с 2-х уровневым меню.
    Вот код из шаблона :
    \upload\catalog\view\theme\мой шаблон\template\product\category.tpl


    Код:
    <?php echo $header; ?>
    <div class="container">
      <ul class="breadcrumb">
        <?php foreach ($breadcrumbs as $breadcrumb) { ?>
        <li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li>
        <?php } ?>
      </ul>
      <div class="row"><?php echo $column_left; ?>
        <?php if ($column_left && $column_right) { ?>
        <?php $class = 'col-sm-6'; ?>
        <?php } elseif ($column_left || $column_right) { ?>
        <?php $class = 'col-sm-9'; ?>
        <?php } else { ?>
        <?php $class = 'col-sm-12'; ?>
        <?php } ?>
        <div id="content" class="<?php echo $class; ?>"><?php echo $content_top; ?>
          <h2 class="text-center"><?php echo $heading_title; ?></h2>
    
          <?php if ($categories) { ?>
        
         <div class="block-1 col-sm-12">
          <h3><?php echo $text_refine; ?></h3>
          <div class="row">
            <div class="col-sm-12">
              <div class="row">
              <ul class="list-ca">
                <?php foreach ($categories as $category) { ?>
                <div class="col-sm-4 col-xs-6">
                <li class=""><a href="<?php echo $category['href']; ?>">
                <img src="<?php echo $category['thumb']; ?>" alt="<?php echo $category['name']; ?>" title="<?php echo $category['name']; ?>" class="img-responsive" />
                <span><?php echo $category['name']; ?></span>
                </a></li>
                </div>
                <?php } ?>
              </ul>
              </div>
            </div>
          </div>
        </div>    
        
          <?php } ?>
          <?php if ($products) { ?>
        
          <p class="text-right"><a href="<?php echo $compare; ?>" id="compare-total"><?php echo $text_compare; ?></a></p>
          <div class="row">
    
          <div class="col-sm-12">
            <div class="fill">
          
            <div class="col-md-3">
              <div class="btn-group hidden-xs">
                <button type="button" id="list-view" class="btn btn-default" data-toggle="tooltip" title="<?php echo $button_list; ?>"><i class="fa fa-th-list"></i></button>
                <button type="button" id="grid-view" class="btn btn-default" data-toggle="tooltip" title="<?php echo $button_grid; ?>"><i class="fa fa-th"></i></button>
              </div>
            </div>
            <div class="col-md-2 text-right">
              <label class="control-label" for="input-sort"><?php echo $text_sort; ?></label>
            </div>
            <div class="col-md-3 text-right">
              <select id="input-sort" class="form-control" onchange="location = this.value;">
                <?php foreach ($sorts as $sorts) { ?>
                <?php if ($sorts['value'] == $sort . '-' . $order) { ?>
                <option value="<?php echo $sorts['href']; ?>" selected="selected"><?php echo $sorts['text']; ?></option>
                <?php } else { ?>
                <option value="<?php echo $sorts['href']; ?>"><?php echo $sorts['text']; ?></option>
                <?php } ?>
                <?php } ?>
              </select>
            </div>
            <div class="col-md-2 text-right">
              <label class="control-label" for="input-limit"><?php echo $text_limit; ?></label>
            </div>
            <div class="col-md-2 text-right">
              <select id="input-limit" class="form-control" onchange="location = this.value;">
                <?php foreach ($limits as $limits) { ?>
                <?php if ($limits['value'] == $limit) { ?>
                <option value="<?php echo $limits['href']; ?>" selected="selected"><?php echo $limits['text']; ?></option>
                <?php } else { ?>
                <option value="<?php echo $limits['href']; ?>"><?php echo $limits['text']; ?></option>
                <?php } ?>
                <?php } ?>
              </select>
            </div>
          
            </div>
            </div>
    
          </div>
          <br />
          <div class="row">
            <?php foreach ($products as $product) { ?>
            <div class="product-layout product-list col-xs-12">
              <div class="product-thumb">
                <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div>
                <div>
                  <div class="caption">
                    <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4>
                    <p><?php echo $product['description']; ?></p>
                    <?php if ($product['rating']) { ?>
                    <div class="rating">
                      <?php for ($i = 1; $i <= 5; $i++) { ?>
                      <?php if ($product['rating'] < $i) { ?>
                      <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-2x"></i></span>
                      <?php } else { ?>
                      <span class="fa fa-stack"><i class="fa fa-star fa-stack-2x"></i><i class="fa fa-star-o fa-stack-2x"></i></span>
                      <?php } ?>
                      <?php } ?>
                    </div>
                    <?php } ?>
                    <?php if ($product['price']) { ?>
                    <p class="price">
                      <?php if (!$product['special']) { ?>
                      <?php echo $product['price']; ?>
                      <?php } else { ?>
                      <span class="price-new"><?php echo $product['special']; ?></span> <span class="price-old"><?php echo $product['price']; ?></span>
                      <?php } ?>
                      <?php if ($product['tax']) { ?>
                      <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span>
                      <?php } ?>
                    </p>
                    <?php } ?>
                  </div>
                  <div class="button-group">
                    <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>
                    <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button>
                    <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button>
                  </div>
                </div>
              </div>
            </div>
            <?php } ?>
          </div>
          <div class="row">
            <div class="col-sm-6 text-left"><?php echo $pagination; ?></div>
            <div class="col-sm-6 text-right"><?php echo $results; ?></div>
          </div>
        
          <?php if ($description) { ?>
          <br>
          <div class="row">
            <div class="col-sm-12">
            <div class="block">
            <?php if ($thumb) { ?>
            <div class="col-sm-2"><img src="<?php echo $thumb; ?>" alt="<?php echo $heading_title; ?>" title="<?php echo $heading_title; ?>" class="img-thumbnail" /></div>
            <?php } ?>
            <?php if ($description && $thumb) { ?>
            <div class="col-sm-10"><?php echo $description; ?></div>
            <?php } else { ?>
            <div class="col-sm-12"><?php echo $description; ?></div>
            <?php } ?>
            </div>
            </div>
          </div>
          <?php } ?>
        
        
          <?php } ?>
          <?php if (!$categories && !$products) { ?>
          <p><?php echo $text_empty; ?></p>
          <div class="buttons">
            <div class="pull-right"><a href="<?php echo $continue; ?>" class="btn btn-primary"><?php echo $button_continue; ?></a></div>
          </div>
          <?php } ?>
          <?php echo $content_bottom; ?></div>
        <?php echo $column_right; ?></div>
    </div>
    <?php echo $footer; ?>
    
     
  4. 039rus

    039rus

    Регистрация:
    1 дек 2013
    Сообщения:
    20
    Симпатии:
    1
    Почему некрасиво. .нормально выводятся. А так самое простое в админке отключите лишние подкатегории и не будут мешаться
     
  5. GERA-oneteam

    GERA-oneteam

    Регистрация:
    6 янв 2016
    Сообщения:
    25
    Симпатии:
    18
    В админке можно отключить только родительные категории а подкатегории присвоенные родителю все равно будут отображается ...
     
  6. 039rus

    039rus

    Регистрация:
    1 дек 2013
    Сообщения:
    20
    Симпатии:
    1
    Странно... у вас какая версия?? я с своей 1.5.. и 2... могу выключать любую категорию и подкатегорию и она скрывается от пользователя
     
  7. sonicking

    sonicking

    Регистрация:
    26 май 2013
    Сообщения:
    436
    Симпатии:
    114
    если вы выключите категорию, то доступа к ней не будет у пользователя не с боку ни по центру - разве нет?
     
  8. GERA-oneteam

    GERA-oneteam

    Регистрация:
    6 янв 2016
    Сообщения:
    25
    Симпатии:
    18
    Смотрите:
    -- Категория 1
    ----подкатегория 1
    -- Категория 2
    Если у нас категория 1 установленна для вывода в главном меню (тойсть стоит галочка) тогда все подкатегории автоматически будут вней отображается в главном меню, и вних уже не надо отмечать галочку отображения в главном меню, следовательно в настройках одной из подкатегории есть возможность ВКЛ и ВЫКЛ, но если подкатегорию выключить, она вполность выключается на всех страницах. А старттоперу нужно выключение выпадания подкатегорий из основной категории ....

    PS... Не знаю про какие вы версии свои говорите, но в моей oc 2 по дефолту только такие возможности
     
  9. 039rus

    039rus

    Регистрация:
    1 дек 2013
    Сообщения:
    20
    Симпатии:
    1
    Да парни все верно, мое предложение актуально только если в горизонтальном меню статичные ссылки и нет выпадающих меню
     
  10. sitecreator

    sitecreator

    Регистрация:
    1 фев 2013
    Сообщения:
    291
    Симпатии:
    65
    Есть хороший модуль типа Аккордион. Он бесплатный. Позволяет за счет настроек делать по умолчанию при клике на ссылку (родительскую категорию) переход без последующего раскрытия и показа дочерних категорий. Раскрыть/закрыть можно за счет того же JavaScript, например, при наведении. навели - раскрылось. просто кликнули - переход без раскрытия.

    Называется "Vertical Accordion Category Menu". Удивительное дело, но через поиск на родном сайте opencart не находится сразу.
    сам файл называется Vertical-Accordion-Category-Menu-fixed.zip Хотел прикрепить, но не вижу такой кнопки.
    --- Добавлено, 18 янв 2016 ---
    http://www.opencarto.com/market-places/vertical-accordion-category-menu.html

    нашел ссылочку!
     
    odinochka нравится это.
  11. odinochka

    odinochka

    Регистрация:
    13 янв 2016
    Сообщения:
    3
    Симпатии:
    0
    Можно скрыть за счет CSS.

    div.list-group > div > div {
    display: none;}

    И все ссылки второго уровня не будут видны. в вашем меню слева.

    а можно, действительно, как выше посоветовали, установить модуль с гибкими настройками. Ну это если в настройках сильны.
     
  12. Ristretto

    Ristretto

    Регистрация:
    18 янв 2016
    Сообщения:
    2
    Симпатии:
    0
    не проще ли все спрятать под спойлер? и не изобретать второй велосипед. Можно в css прописать настройки для данной страницы или всего шаблона
     
  13. odinochka

    odinochka

    Регистрация:
    13 янв 2016
    Сообщения:
    3
    Симпатии:
    0
    Можно как я советовал скрыть через CSS и добавить немного jQuery. Т. е. всего навсего добавить на события типа клик или наведение вот такую штуку:

    slideToggle()

    только CSS нужно несколько изменить.
    div.list-group > div.activ + div {display: none;}

    JQuery:

    $('div.list-group > div.activ + div').slideToggle() ;


    И по хорошему рядышком кнопочку сделать открыть/свернуть и на нее повесить обработчик. А можно просто по наведению мышки раскрывать.

    код не полный. но основная идея понятна, думаю.
     
  14. 111A

    111A

    Регистрация:
    23 авг 2017
    Сообщения:
    1
    Симпатии:
    0


    Добрый день! Искал решение на этот же вопрос и решил его:
    В моем шаблоне отключение вывода подкатегорий в боковом меню, делается след. образом: В файле tm_category catalog\view\theme\ваша_тема\template\module

    Комментируем след. часть кода:

    <!--<script>
    jQuery(document).ready(function(){
    jQuery('.box-category .menu').find('li>ul').before('<i class="fa fa-angle-down"></i>');

    jQuery(this).find('a.active').parent('li').find('> ul').slideToggle();
    jQuery(this).find('li li a.active').parent('li').parent('ul').slideToggle();
    jQuery(this).find('li li li a.active').parent('li').parent('ul').parent('li').parent('ul').slideToggle();

    jQuery('.box-category .menu li i').on("click", function(){
    if (jQuery(this).hasClass('fa-angle-up')) { jQuery(this).removeClass('fa-angle-up').addClass('fa-angle-down').parent('li').find('> ul').slideToggle(); }
    else {
    jQuery(this).addClass('fa-angle-up').removeClass('fa-angle-down').parent('li').find('> ul').slideToggle();
    }
    });
    });
    </script>-->
     
  15. Master2KAZ

    Master2KAZ

    Регистрация:
    25 окт 2014
    Сообщения:
    183
    Симпатии:
    72
    В файле catalog\controller\extension\module\category.php закомментировать 37-49 строки:
    PHP:
    /*if ($category['category_id'] == $data['category_id']) {
                    $children = $this->model_catalog_category->getCategories($category['category_id']);

                    foreach($children as $child) {
                        $filter_data = array('filter_category_id' => $child['category_id'], 'filter_sub_category' => true);

                        $children_data[] = array(
                            'category_id' => $child['category_id'],
                            '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'])
                        );
                    }
                }*/