Добрый вечер! Подскажите как сделать чтобы при выборе категории в боковом меню , под категории не раскрывались. Да и если много под категорий , не красиво когда это все разворачивается. Вот здесь можно посмотреть : http://opencart.my2you.ru/magazinchik2/ открываешь категорию Аксессуары и вываливаются вниз три под категории : - Большой сет (6) - Маленький сет (6) - Средний сет (0) можно как нибудь скрыть под категории ,они все равно по центру выводятся. Спасибо.
Какой модуль стоит на левое меню? "Акардеон"? Есть 2 варианта - заменить обычным, или с этого выбрать код.
Не не акардеон, похож на обычный с 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; ?>
Почему некрасиво. .нормально выводятся. А так самое простое в админке отключите лишние подкатегории и не будут мешаться
В админке можно отключить только родительные категории а подкатегории присвоенные родителю все равно будут отображается ...
Странно... у вас какая версия?? я с своей 1.5.. и 2... могу выключать любую категорию и подкатегорию и она скрывается от пользователя
если вы выключите категорию, то доступа к ней не будет у пользователя не с боку ни по центру - разве нет?
Смотрите: -- Категория 1 ----подкатегория 1 -- Категория 2 Если у нас категория 1 установленна для вывода в главном меню (тойсть стоит галочка) тогда все подкатегории автоматически будут вней отображается в главном меню, и вних уже не надо отмечать галочку отображения в главном меню, следовательно в настройках одной из подкатегории есть возможность ВКЛ и ВЫКЛ, но если подкатегорию выключить, она вполность выключается на всех страницах. А старттоперу нужно выключение выпадания подкатегорий из основной категории .... PS... Не знаю про какие вы версии свои говорите, но в моей oc 2 по дефолту только такие возможности
Да парни все верно, мое предложение актуально только если в горизонтальном меню статичные ссылки и нет выпадающих меню
Есть хороший модуль типа Аккордион. Он бесплатный. Позволяет за счет настроек делать по умолчанию при клике на ссылку (родительскую категорию) переход без последующего раскрытия и показа дочерних категорий. Раскрыть/закрыть можно за счет того же 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 нашел ссылочку!
Можно скрыть за счет CSS. div.list-group > div > div { display: none;} И все ссылки второго уровня не будут видны. в вашем меню слева. а можно, действительно, как выше посоветовали, установить модуль с гибкими настройками. Ну это если в настройках сильны.
не проще ли все спрятать под спойлер? и не изобретать второй велосипед. Можно в css прописать настройки для данной страницы или всего шаблона
Можно как я советовал скрыть через CSS и добавить немного jQuery. Т. е. всего навсего добавить на события типа клик или наведение вот такую штуку: slideToggle() только CSS нужно несколько изменить. div.list-group > div.activ + div {display: none;} JQuery: $('div.list-group > div.activ + div').slideToggle() ; И по хорошему рядышком кнопочку сделать открыть/свернуть и на нее повесить обработчик. А можно просто по наведению мышки раскрывать. код не полный. но основная идея понятна, думаю.
Добрый день! Искал решение на этот же вопрос и решил его: В моем шаблоне отключение вывода подкатегорий в боковом меню, делается след. образом: В файле 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>-->
В файле 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']) ); } }*/