Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Категории 3-го уровня


Recommended Posts

Поздравляю ! Скажите, пожалуйста, как вывести на главной странице в выпадающем меню категории 3-го уровня? Сейчас если нажать на основную категорию "отопление" выпадают категории второго уровня, например "радиаторы" а третий уровень - "стальные" показывается только если нажать на категорию второго уровня. Мне нужно чтобы категории третьего уровня сразу отображались если навести мышкой на категорию второго уровня.

Спасибо !

Надіслати
Поділитися на інших сайтах


9 hours ago, anboza said:

Поздравляю!

Измените событие с onclick на onmouseover

какое нафиг событие? стили надо прописать с приставкой :hover.

9 hours ago, sahman said:

как вывести на главной странице в выпадающем меню категории 3-го уровня?

откуда взялись категории 3его уровня. в опенкарте в меню только второго загружаются

Надіслати
Поділитися на інших сайтах


1 час назад, lexxkrt сказал:

какое нафиг событие? стили надо прописать с приставкой :hover.

откуда взялись категории 3его уровня. в опенкарте в меню только второго загружаются

Ну вот я и хочу чтоби третьго уровня загружалися в меню. Как єто сделать ?

Надіслати
Поділитися на інших сайтах


пример

контроллер catalog/common/menu.php

<?php
class ControllerCommonMenu extends Controller {
	public function index() {
		$this->load->language('common/menu');

		// Menu
		$this->load->model('catalog/category');

		$this->load->model('catalog/product');

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

    $categories = $this->model_catalog_category->getCategories(0);

    foreach ($categories as $category)
    {
        if ($category['top'])
        {
            // Level 2
            $children_data = array();

            $children = $this->model_catalog_category->getCategories($category['category_id']);

            foreach ($children as $child)
            {
                // Level 3
                $children_data1 = array();
                $children1      = $this->model_catalog_category->getCategories($child['category_id']);

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

                    $children_data1[] = array(
                        'name' => $child1['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'].'_'.$child1['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).')' : ''),
                    'children' => $children_data1,
                    'href'     => $this->url->link('product/category', 'path='.$category['category_id'].'_'.$child['category_id'])
                );
            }

            // Level 1
            $data['categories'][] = array(
                'name'     => $category['name'],
                'children' => $children_data,
                'column'   => $category['column'] ? $category['column'] : 1,
                'href'     => $this->url->link('product/category', 'path='.$category['category_id'])
            );
        }
    }

		return $this->load->view('common/menu', $data);
	}
}

menu.twig

{% if categories %}
<div class="container">
  <nav id="menu" class="navbar">
    <div class="navbar-header"><span id="category" class="visible-xs">{{ 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">
        {% for category in categories %}
        {% if category.children %}
        <li class="dropdown"><a href="{{ category.href }}" class="dropdown-toggle" data-toggle="dropdown">{{ category.name }}</a>
          <div class="dropdown-menu">
            <div class="dropdown-inner"> {% for children in category.children|batch(category.children|length / category.column|round(1, 'ceil')) %}
              <ul class="list-unstyled">
                {% for child in children %}
                <li><a href="{{ child.href }}">{{ child.name }}</a></li>
                {% if child.children %}
                  {% for child3 in child.children %}
                  <li class="subcategory"><a href="{{ child3.href }}">{{ child3.name }}</a></li>
                  {% endfor %}
                {% endif %}
                {% endfor %}
              </ul>
              {% endfor %}</div>
            <a href="{{ category.href }}" class="see-all">{{ text_all }} {{ category.name }}</a> </div>
        </li>
        {% else %}
        <li><a href="{{ category.href }}">{{ category.name }}</a></li>
        {% endif %}
        {% endfor %}
      </ul>
    </div>
  </nav>
</div>
{% endif %}

можно вообще сделать рекурсией и тогда вообще не зависеть от вложенности категорий

Змінено користувачем lexxkrt
  • +1 1
Надіслати
Поділитися на інших сайтах


23 часа назад, lexxkrt сказал:

пример

контроллер catalog/common/menu.php


<?php
class ControllerCommonMenu extends Controller {
	public function index() {
		$this->load->language('common/menu');

		// Menu
		$this->load->model('catalog/category');

		$this->load->model('catalog/product');

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

    $categories = $this->model_catalog_category->getCategories(0);

    foreach ($categories as $category)
    {
        if ($category['top'])
        {
            // Level 2
            $children_data = array();

            $children = $this->model_catalog_category->getCategories($category['category_id']);

            foreach ($children as $child)
            {
                // Level 3
                $children_data1 = array();
                $children1      = $this->model_catalog_category->getCategories($child['category_id']);

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

                    $children_data1[] = array(
                        'name' => $child1['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'].'_'.$child1['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).')' : ''),
                    'children' => $children_data1,
                    'href'     => $this->url->link('product/category', 'path='.$category['category_id'].'_'.$child['category_id'])
                );
            }

            // Level 1
            $data['categories'][] = array(
                'name'     => $category['name'],
                'children' => $children_data,
                'column'   => $category['column'] ? $category['column'] : 1,
                'href'     => $this->url->link('product/category', 'path='.$category['category_id'])
            );
        }
    }

		return $this->load->view('common/menu', $data);
	}
}

menu.twig


{% if categories %}
<div class="container">
  <nav id="menu" class="navbar">
    <div class="navbar-header"><span id="category" class="visible-xs">{{ 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">
        {% for category in categories %}
        {% if category.children %}
        <li class="dropdown"><a href="{{ category.href }}" class="dropdown-toggle" data-toggle="dropdown">{{ category.name }}</a>
          <div class="dropdown-menu">
            <div class="dropdown-inner"> {% for children in category.children|batch(category.children|length / category.column|round(1, 'ceil')) %}
              <ul class="list-unstyled">
                {% for child in children %}
                <li><a href="{{ child.href }}">{{ child.name }}</a></li>
                {% if child.children %}
                  {% for child3 in child.children %}
                  <li class="subcategory"><a href="{{ child3.href }}">{{ child3.name }}</a></li>
                  {% endfor %}
                {% endif %}
                {% endfor %}
              </ul>
              {% endfor %}</div>
            <a href="{{ category.href }}" class="see-all">{{ text_all }} {{ category.name }}</a> </div>
        </li>
        {% else %}
        <li><a href="{{ category.href }}">{{ category.name }}</a></li>
        {% endif %}
        {% endfor %}
      </ul>
    </div>
  </nav>
</div>
{% endif %}

можно вообще сделать рекурсией и тогда вообще не зависеть от вложенности категорий

Спасибо Вам большое! Сделал - работает! Вы очень помогли! Еще прошу сказать где в коде можно изменить цвет текста которым показываются названия категорий

Надіслати
Поділитися на інших сайтах


5 минут назад, sahman сказал:

Спасибо Вам большое! Сделал - работает! Вы очень помогли! Еще прошу сказать где в коде можно изменить цвет текста которым показываются названия категорий

Для примера я хочу чтобы категории второго уровня были красным цветом а категории третьего уровня были написаны зеленым цветом

Надіслати
Поділитися на інших сайтах


10 minutes ago, sahman said:

Для примера я хочу чтобы категории второго уровня были красным цветом а категории третьего уровня были написаны зеленым цветом

в стилях в файле catalog/view/theme/ВашаТема/stylesheet/stylesheet.css

для второго уровня

#menu .dropdown-inner a

для 3 уровня, как в моем примере, добавить стиль

#menu .subcategory

Надіслати
Поділитися на інших сайтах


1 час назад, lexxkrt сказал:

в стилях в файле catalog/view/theme/ВашаТема/stylesheet/stylesheet.css

для второго уровня

#menu .dropdown-inner a

для 3 уровня, как в моем примере, добавить стиль

#menu .subcategory

}
#menu .dropdown-inner a {
    min-width: 160px;
    display: block;
    padding: 3px 20px;
    clear: both;
    line-height: 20px;
    color:#E65500;
    font-size: 12px;
}
#menu .subcategory {
    min-width: 160px;
    display: block;
    padding: 3px 20px;
    clear: both;
    line-height: 20px;
    color:#666;
    font-size: 12px;

}
#menu .dropdown-inner li a:hover {
    color: #FFFFFF;

 

Цвет второго уровня меняется. Но с ним меняется и цвет третьего уровня автоматически. Я добавил subcategory в код (зеленые строки) и цвет не меняется на третьем уровне. Что не так зделал?

Надіслати
Поділитися на інших сайтах


3 minutes ago, sahman said:

}
#menu .dropdown-inner a {
    min-width: 160px;
    display: block;
    padding: 3px 20px;
    clear: both;
    line-height: 20px;
    color:#E65500;
    font-size: 12px;
}
#menu .subcategory {
    min-width: 160px;
    display: block;
    padding: 3px 20px;
    clear: both;
    line-height: 20px;
    color:#666;
    font-size: 12px;

}
#menu .dropdown-inner li a:hover {
    color: #FFFFFF;

 

Цвет второго уровня меняется. Но с ним меняется и цвет третьего уровня автоматически. Я добавил subcategory в код (зеленые строки) и цвет не меняется на третьем уровне. Что не так зделал?

надо

#menu .subcategory a

Надіслати
Поділитися на інших сайтах


  • 1 year later...
В 10.12.2018 в 13:07, lexxkrt сказал:

пример

контроллер catalog/common/menu.php


<?php
class ControllerCommonMenu extends Controller {
	public function index() {
		$this->load->language('common/menu');

		// Menu
		$this->load->model('catalog/category');

		$this->load->model('catalog/product');

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

    $categories = $this->model_catalog_category->getCategories(0);

    foreach ($categories as $category)
    {
        if ($category['top'])
        {
            // Level 2
            $children_data = array();

            $children = $this->model_catalog_category->getCategories($category['category_id']);

            foreach ($children as $child)
            {
                // Level 3
                $children_data1 = array();
                $children1      = $this->model_catalog_category->getCategories($child['category_id']);

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

                    $children_data1[] = array(
                        'name' => $child1['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'].'_'.$child1['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).')' : ''),
                    'children' => $children_data1,
                    'href'     => $this->url->link('product/category', 'path='.$category['category_id'].'_'.$child['category_id'])
                );
            }

            // Level 1
            $data['categories'][] = array(
                'name'     => $category['name'],
                'children' => $children_data,
                'column'   => $category['column'] ? $category['column'] : 1,
                'href'     => $this->url->link('product/category', 'path='.$category['category_id'])
            );
        }
    }

		return $this->load->view('common/menu', $data);
	}
}

menu.twig


{% if categories %}
<div class="container">
  <nav id="menu" class="navbar">
    <div class="navbar-header"><span id="category" class="visible-xs">{{ 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">
        {% for category in categories %}
        {% if category.children %}
        <li class="dropdown"><a href="{{ category.href }}" class="dropdown-toggle" data-toggle="dropdown">{{ category.name }}</a>
          <div class="dropdown-menu">
            <div class="dropdown-inner"> {% for children in category.children|batch(category.children|length / category.column|round(1, 'ceil')) %}
              <ul class="list-unstyled">
                {% for child in children %}
                <li><a href="{{ child.href }}">{{ child.name }}</a></li>
                {% if child.children %}
                  {% for child3 in child.children %}
                  <li class="subcategory"><a href="{{ child3.href }}">{{ child3.name }}</a></li>
                  {% endfor %}
                {% endif %}
                {% endfor %}
              </ul>
              {% endfor %}</div>
            <a href="{{ category.href }}" class="see-all">{{ text_all }} {{ category.name }}</a> </div>
        </li>
        {% else %}
        <li><a href="{{ category.href }}">{{ category.name }}</a></li>
        {% endif %}
        {% endfor %}
      </ul>
    </div>
  </nav>
</div>
{% endif %}

можно вообще сделать рекурсией и тогда вообще не зависеть от вложенности категорий

Подскажи пожалуйста поставил на 3.0 а он не отображает третий уровень, ошибок нет но и не отображает, 

Надіслати
Поділитися на інших сайтах


  • 2 years later...

Третьего уровня не будет

Я еще попробую этот момент , но кажется вместо 

{% for child3 in child.children %}
                  <li class="subcategory"><a href="{{ child3.href }}">{{ child3.name }}</a></li>
                  {% endfor %}

должно быть

{% for child1 in child.children %}
                  <li class="subcategory"><a href="{{ child1.href }}">{{ child1.name }}</a></li>
                  {% endfor %}
Змінено користувачем victlion
Надіслати
Поділитися на інших сайтах


15.02.2020 в 12:07, loromir1 сказал:

Подскажи пожалуйста поставил на 3.0 а он не отображает третий уровень, ошибок нет но и не отображает, 

 

30.04.2022 в 22:14, victlion сказал:

Третьего уровня не будет

Я еще попробую этот момент , но кажется вместо 

{% for child3 in child.children %}
                  <li class="subcategory"><a href="{{ child3.href }}">{{ child3.name }}</a></li>
                  {% endfor %}

должно быть

{% for child1 in child.children %}
                  <li class="subcategory"><a href="{{ child1.href }}">{{ child1.name }}</a></li>
                  {% endfor %}

                {% for child in category.children %}
                <li><a href="{{ child.href }}">{{ child.name }}</a></li>
                {% if child.children %}
                  {% for child3 in child.children %}
                  <li class="subcategory"><a href="{{ child3.href }}">{{ child3.name }}</a></li>
                  {% endfor %}
                {% endif %}
                {% endfor %}

Надіслати
Поділитися на інших сайтах

01.05.2022 в 00:06, buslikdrev сказал:

 

                {% for child in category.children %}
                <li><a href="{{ child.href }}">{{ child.name }}</a></li>
                {% if child.children %}
                  {% for child3 in child.children %}
                  <li class="subcategory"><a href="{{ child3.href }}">{{ child3.name }}</a></li>
                  {% endfor %}
                {% endif %}
                {% endfor %}

Вы правы , спасибо , все работает .

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.