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

Боковое меню аккордеон


Recommended Posts

Добрый день.

В дефолтном OC 3  есть модуль категории, его можно поставить на разные страницы с левой например стороны.

Вот код меню

<div class="list-group">
  {% for category in categories %}
  {% if category.category_id == category_id %} 
  <a href="{{ category.href }}" class="list-group-item active">{{ category.name }}</a> 
  {% if category.children %}
  {% for child in category.children %}
  {% if child.category_id == child_id %}
  <a href="{{ child.href }}" class="list-group-item active">&nbsp;&nbsp;&nbsp;- {{ child.name }}</a> 
  {% else %} 
  <a href="{{ child.href }}" class="list-group-item">&nbsp;&nbsp;&nbsp;- {{ child.name }}</a>
  {% endif %}
  {% endfor %}
  {% endif %}
  {% else %} <a href="{{ category.href }}" class="list-group-item">{{ category.name }}</a>
  {% endif %}
  {% endfor %}
</div>

Мне бы хотелось сделать с него аккордеон bootstrap, нашел в интернете пример по bootstrap, но пока что не вставляю постоянно какой то косяк, может кто сможет помоч?
вот код аккордеона

<div id="accordion">
  <div class="card">
    <div class="card-header" id="headingOne">
      <h5 class="mb-0">
        <button class="btn btn-link" data-toggle="collapse" data-target="#collapseOne" aria-expanded="false" aria-controls="collapseOne">
Категория
        </button>
      </h5>
    </div>

    <div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#accordion">
      <div class="card-body">
текст
      </div>
    </div>
  </div>
  <div class="card">
    <div class="card-header" id="headingTwo">
      <h5 class="mb-0">
        <button class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
Категория
        </button>
      </h5>
    </div>
    <div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordion">
      <div class="card-body">
текст
      </div>
    </div>
  </div>
</div>

хотелось бы, что бы в категории, под категории были скрыты, активная категория подсвечена.

в под категории: активная категория подсвечена и раскрыта, и активная под категории подсвечена.

как то так, жирный  плюсик, кто поможет)

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


14 часов назад, legioner26 сказал:

Тип такого ?

Да, только легче, просто выдвижение верх низ, право лево не надо, само просто)
Не могу допедрить как правильно вставить, что бы все под категории выезжали. У меня только одна показана которая активная(

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


Только что, andreubekish сказал:

Да, только легче, просто выдвижение верх низ, право лево не надо, само просто)
Не могу допедрить как правильно вставить, что бы все под категории выезжали. У меня только одна показана которая активная(

Так тут 2 варианта. Вверх вниз тоже есть.

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

  • 2 months later...

Вопрос по этому же меню.... У меня сейчас его код выглядит следующим образом: 

 

{% for category in  categories.category %}
		{{ category.name }}
		{% if category.children %}
				{% for child in category.children %}
						{{ child.name }}
				{% endfor %}
		{% endif %}
{% endfor %}

Как бы сделать так, чтобы первый цикл перебирал не самый главный уровень категорий, а начинал перебирать подкатегории, которые входят в состав текущей категории?

Ну а второй цикл лез еще глубже....

 

Для углубления пробовал всякие комбинации типа  {% for child3 in child.children %} и  {% for child in child.children %} и что то не получается ((

Ну и не получается передать первому циклу переменную в виде текущей категории... 

 

 

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


Сделал таки до третьего уровня:

 

<ul class="list-group">
  {% for category in categories %}
    {% if category.category_id == category_id %}
      {% if category.children %}
        {% for child in category.children %}
          <a href="{{ child.href }}" class="list-group-item {% if child.category_id == child_id %}active{% endif %}">{{ child.name }}</a>
          {% if child.sister_id %}
            {% for sisters in child.sister_id %}
              <a href="{{ sisters.href }}" class="list-group-item child{% if sisters.category_id == sisters_id %} active{% endif %}">{{ sisters.name }}</a> 
            {% endfor %} 
          {% endif %}
        {% endfor %}
      {% endif %}
    {% endif %}
  {% endfor %}
</ul>

Но еще пришлось поправить контроллер /catalog/controller/extension/module/category.php и заменить его весь код на:

 

<?php
class ControllerExtensionModuleCategory extends Controller {
	public function index() {
		
		if (isset($this->request->get['path'])) {
			$parts = explode('_', (string)$this->request->get['path']);
		} else {
			$parts = array();
		}

		if (isset($parts[0])) {
			$data['category_id'] = $parts[0];
		} else {
			$data['category_id'] = 0;
		}

		if (isset($parts[1])) {
			$data['child_id'] = $parts[1];
		} else {
			$data['child_id'] = 0;
		}
		if (isset($parts[2])) {
			$data['sisters_id'] = $parts[2];
		} else {
			$data['sisters_id'] = 0;
		} 

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

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

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

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

		foreach ($categories as $category) {
			$total = $this->model_catalog_product->getTotalProducts(array('filter_category_id' => $category['category_id']));

			$children_data = array();
			
			$sister_data = array();

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

			foreach ($children as $child) {           
				$sister_data = array();
				$sisters = $this->model_catalog_threelevel->getChildCategories($child['category_id']);
				if($sisters) {
					foreach ($sisters as $sisterMember) {
						
						$sister_data[] = array( 
							'category_id' =>$sisterMember['category_id'],
							'name'        => $sisterMember['name'],
							'href'        => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']. '_' . $sisterMember['category_id'])   
							);                     
						
					}
					$children_data[] = array(
						'category_id' => $child['category_id'],
						'sister_id'   => $sister_data,
						'name'        => $child['name'],
						'href'        => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])   
						);   
				}
				else {                     
					$children_data[] = array(
						'category_id' => $child['category_id'],
						'sister_id'    =>'',
						'name'        => $child['name'],
						'href'        => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])   
						);   
				}
			}

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

		return $this->load->view('extension/module/category', $data);
	}
}

 

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


  • 8 months later...

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

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

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

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

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

Вхід

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

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

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

Important Information

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