Перейти к содержанию
qwadro

как запретить в горизонтальном меню подкатегории? opencart 2.3

Рекомендуемые сообщения

здравствуйте, добрые люди

как убрать выпадающие списки в меню горизонтальном (сейчас выпадают подкатегории)

13529278.png

т.е нужно оставить в меню только главные категории.

 

вот код файла header tpl

<!DOCTYPE html>
<!--[if IE]><![endif]-->
<!--[if IE 8 ]><html dir="<?php echo $direction; ?>" lang="<?php echo $lang; ?>" class="ie8"><![endif]-->
<!--[if IE 9 ]><html dir="<?php echo $direction; ?>" lang="<?php echo $lang; ?>" class="ie9"><![endif]-->
<!--[if (gt IE 9)|!(IE)]><!-->
<html dir="<?php echo $direction; ?>" lang="<?php echo $lang; ?>">
<!--<![endif]-->
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title><?php echo $title; if (isset($_GET['page'])) { echo " - ". ((int) $_GET['page'])." ".$text_page;} ?></title>
<base href="<?php echo $base; ?>" />
<?php if ($description) { ?>
<meta name="description" content="<?php echo $description; if (isset($_GET['page'])) { echo " - ". ((int) $_GET['page'])." ".$text_page;} ?>" />
<?php } ?>
<?php if ($keywords) { ?>
<meta name="keywords" content= "<?php echo $keywords; ?>" />
<?php } ?>
<meta property="og:title" content="<?php echo $title; if (isset($_GET['page'])) { echo " - ". ((int) $_GET['page'])." ".$text_page;} ?>" />
<meta property="og:type" content="website" />
<meta property="og:url" content="<?php echo $og_url; ?>" />
<?php if ($og_image) { ?>
<meta property="og:image" content="<?php echo $og_image; ?>" />
<?php } else { ?>
<meta property="og:image" content="<?php echo $logo; ?>" />
<?php } ?>
<meta property="og:site_name" content="<?php echo $name; ?>" />
<script src="catalog/view/javascript/jquery/jquery-2.1.1.min.js" type="text/javascript"></script>
<link href="catalog/view/javascript/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen" />
<script src="catalog/view/javascript/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
<link href="catalog/view/javascript/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css" />
<link href="//fonts.googleapis.com/css?family=Open+Sans:400,400i,300,700" rel="stylesheet" type="text/css" />
<link href="catalog/view/theme/next_default/stylesheet/stylesheet.css" rel="stylesheet">
<?php foreach ($styles as $style) { ?>
<link href="<?php echo $style['href']; ?>" type="text/css" rel="<?php echo $style['rel']; ?>" media="<?php echo $style['media']; ?>" />
<?php } ?>
<script src="catalog/view/javascript/next-default/common.js" type="text/javascript"></script>
<?php foreach ($links as $link) { ?>
<link href="<?php echo $link['href']; ?>" rel="<?php echo $link['rel']; ?>" />
<?php } ?>
<?php foreach ($scripts as $script) { ?>
<script src="<?php echo $script; ?>" type="text/javascript"></script>
<?php } ?>
<?php foreach ($analytics as $analytic) { ?>
<?php echo $analytic; ?>
<?php } ?>
</head>
<body class="<?php echo $class; ?>">
<nav id="top">
    <div class="container">
        <?php echo $currency; ?>
        <?php echo $language; ?>
        <div id="top-link" class="nav pull-left">
            <ul class="list-inline">
                <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"><?php echo $text_account; ?></span> <span class="caret"></span></a>
                    <ul class="dropdown-menu dropdown-menu-left">
                        <?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>
            </ul>
        </div>
        <div id="top-links" class="nav pull-right">
            <ul class="list-inline">
                <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>
                <li><a href="<?php echo $shopping_cart; ?>" title="<?php echo $text_shopping_cart; ?>"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $text_shopping_cart; ?></span></a></li>
                <li><a href="<?php echo $checkout; ?>" title="<?php echo $text_checkout; ?>"><i class="fa fa-share"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $text_checkout; ?></span></a></li>
            </ul>
        </div>
    </div>
</nav>
<header>
    <div id="top2">
        <div class="container">
            <div class="row">
                <div class="col-sm-3">
                    <div id="logo">
                        <?php if ($logo) { ?>
                            <?php if ($home == $og_url) { ?>
                                <img src="<?php echo $logo; ?>" title="<?php echo $name; ?>" alt="<?php echo $name; ?>" class="img-responsive" />
                            <?php } else { ?>
                                <a href="<?php echo $home; ?>"><img src="<?php echo $logo; ?>" title="<?php echo $name; ?>" alt="<?php echo $name; ?>" class="img-responsive" /></a>
                            <?php } ?>
                        <?php } else { ?>
                            <!--h1><a href="<?php echo $home; ?>"><?php echo $name; ?></a></h1-->
                        <?php } ?>
                        <div class='data_name tagline'><span class="name tagline"><?php echo $comment; ?></span></div>
                    </div>
                </div>
                <div class="col-sm-3">
                    <div class='phone'><a href="tel:<?php echo $telephone; ?>"><i class="fa fa-phone"></i> <span class=""><?php echo $telephone; ?></span></a></div>
                    <div class='data_open'><i class="fa fa-clock-o" aria-hidden="true"></i> <span class=""><?php echo $open; ?></span></div>
                </div>
                <div id="md-size" class="col-sm-3"><?php echo $search; ?>
                </div>
                <div class="col-sm-3"><?php echo $cart; ?></div>
            </div>
        </div>
    </div>
</header>
<div class="fix-menu">
    <div id="top3">
        <?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"> 
              <li><a href="/">Главная</a></li> 
              <li><a href="/contacts.html">Контакты</a></li> 
              <li><a href="/delivery.html">Оплата и доставка</a></li> 
                <?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 } ?>
    </div>
</div>

чегось из него нада вычленить, чтобы в меню остались только ГЛАВНЫЕ категории.

 

в инетике нашел вот такое решение (наверное под более старые версии движка)

Скрытый текст

Итак задача. Необходимо иметь возможность в админке настраивать – выводить или не выводить подкатегории в выпадающем списке в верхнем меню.

Вообще в админке в редактировании категории во вкладке ДАННЫЕ есть такое поле “Столбцы:“. Там настраивается количество столбцов в выпадающем списке для пункта меню. Это поле мы и будем использовать, добавив в файл контроллера header.php небольшой хак. Смысл модификации в том, что если в поле ” Столбцы: ” ввести цифру ноль, то выпадающее меню вообще не будет выводиться.

Итак модифицируем файл catalog/controller/common/header.php

Практически в самом низу файла находим

 


$children = $this->model_catalog_category->getCategories($category['category_id']);
foreach ($children as $child) {
 $data = array(
  'filter_category_id'  => $child['category_id'],
  'filter_sub_category' => true
 );
 $product_total = $this->model_catalog_product->getTotalProducts($data);
 $children_data[] = array(
  'name'  => $child['name'] . ' (' . $product_total . ')',
  'href'  => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
 );	
}

И заменяем на

 


if($category['column']){
 $children = $this->model_catalog_category->getCategories($category['category_id']);
 foreach ($children as $child) {
  $data = array(
   'filter_category_id'  => $child['category_id'],
   'filter_sub_category' => true
  );
  $product_total = $this->model_catalog_product->getTotalProducts($data);
  $children_data[] = array(
   'name'  => $child['name'] . ' (' . $product_total . ')',
   'href'  => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
  );	
 }
}

Суть в том, что этот участок кода после модификации выполнится только в том случае, если в поле ” Столбцы: ” будет стоять число, отличное от нуля.

 

как тоже самое сотворить в версии движка 2.3

чтобы если введен НОЛЬ в СТОЛБЦАХ - не выпадают категории. а если введено отличное от нуля число - выпадают.

подскажите, будьте ласковы!

 

если так нельзя (ввел ноль и не выпадает подкатегория) - подскажите, чегось убрать, чтобы не выпадали подкатегории в горизонтальном меню

 

если убираю вот это:

<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>

то получается так: 

13534385.png

при этом главная категория НЕ КЛИКАБЕЛЬНА. нада чтоб кликнуть по ней можно было..

Изменено пользователем qwadro

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
<?php foreach ($categories as $category) { ?>
	<li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>
<?php } ?>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Из вот этого:

                <?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 } ?>

оставить вот это:

<?php foreach ($categories as $category) { ?>
	<li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>
<?php } ?>

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А снять у подкатегорий галочку "Показывать в главном меню" не работает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.