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

Вывод категорий третьего уровня в горизонтальном меню.


newjey

Recommended Posts

по ангиологии как и у оп 1,5+ посмотрите на форуме где-то было решение 

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

по ангиологии как и у оп 1,5+ посмотрите на форуме где-то было решение 

По аналогии сделал, но не получается, не выводятся. Вот и спрашиваю, может есть отличия в переменных?

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


По аналогии сделал, но не получается, не выводятся. Вот и спрашиваю, может есть отличия в переменных?

Показывайте что делали  (и не забивайте добавлять код в код)

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

находим: в /catalog/controller/common/header.php

$children_data[] = array(
						'name'  => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
						'href'  => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])	
					);
}

И заменяем на:

//3 level
 
					//*** Получаем список подкгатегорий для каждой категории второго уровня
								$subchildren = $this->model_catalog_category->getCategories($child['category_id']);
 
								    //*** Обнуляем массив для каждого набора подкатегорий вторго уровня
									$subchildren_data = array(); 
 
										//*** Получаем список подкгатегорий для каждой категории второго уровня
										foreach ($subchildren as $subchild) {
												//Будем вычислять кол-во товаров в категориях только если это кол-во надо показывать
												if ($this->config->get('config_product_count')) {
													$data = array(
														'filter_category_id'  => $subchild['category_id'],
														'filter_sub_category' => true
													);
 
													$product_total = $this->model_catalog_product->getTotalProducts($data);
												}
 
												//*** Получаем список подкгатегорий для каждой категории второго уровня формируем массив со списками подкатегорий второго уровня
 
												$subchildren_data[] = array(
													'name'  => $subchild['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
													'href'  => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']. '_' . $subchild['category_id'])	
 
												);						
											}								
 
					$children_data[] = array(
						'name'  => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
						'href'  => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']),
						//*** Добавляем к каждой категории первого уровня массив с подкатегориями второго уровня						
						'subchildren' => $subchildren_data,
 
					);						
 
				}
 
					//3 level

Далее находим: в /catalog/view/theme/default/template/common/header.tpl

<li><a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a></li>

и заменяем на:

<li><a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a>
           <?php if($category['children'][$i]['subchildren']) { ?>
                     <?php foreach ($category['children'][$i]['subchildren'] as $child) { ?>
                      <li><a href="<?php echo $child['href']; ?>"> - <?php echo $child['name']; ?></a></li>
                      <?php } ?>
                  <?php } ?>
                </li>

Так же > заменил на >

Вот так вот делал.

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


Вот так это должно быть контроллер 

// 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) {
     $filter_data = array(
       'filter_category_id'  => $child['category_id'],
       'filter_sub_category' => true
     );

   //level 3
   $subchildren_data = array();
   $subchildren = $this->model_catalog_category->getCategories($child['category_id']);

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

   $subchildren_data[] = array(
     'name'  => $subchild['name'] . ($this->config->get('config_product_count') ? ' <span class="menu_summ">' . $this->model_catalog_product->getTotalProducts($filter_data) . '</span>' : ''),
     'href'  => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']. '_' . $subchild['category_id']),
   );
}
 				
  $children_data[] = array(
    'name'        => $child['name'] . ($this->config->get('config_product_count') ? ' <span class="menu_summ">' . $this->model_catalog_product->getTotalProducts($filter_data) . '</span>' : ''),
    'href'        => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']),
    'subchildren' => $subchildren_data
    );
}
 				 
 // 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'])
  );
 }
}

 выводит 3ю категорию (tpl)

 <?php if($child['subchildren']) { ?>
  
    <ul class="list-unstyled">
     <?php foreach ($child['subchildren'] as $subchild) { ?>  
       <li><a class="pull-left" href="<?php echo $subchild['href']; ?>"><?php echo $subchild['name']; ?></a></li>
     <?php } ?> 
    </ul>

 <?php } ?>

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

Подскажите ещё как правильно в tpl вывести, а то как-то коряво получается Подкатегории с одной стороны а 3уровень с другой стороны.

Вот код меню

<div class="collapse navbar-collapse navbar-ex1-collapse">
      <ul class="nav navbar-nav">
        <?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><hr>
</div>
<?php } ?>

куда правильно вставить 

<?php if($child['subchildren']) { ?>
  
    <ul class="list-unstyled">
     <?php foreach ($child['subchildren'] as $subchild) { ?>  
       <li><a class="pull-left" href="<?php echo $subchild['href']; ?>"><?php echo $subchild['name']; ?></a></li>
     <?php } ?> 
    </ul>
 
 <?php } ?>

что бы 3ий уровень категорий шли под подкатегориями?

Спасибо.

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


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

<ul>

<li>

...... вот сюда

</li>

</ul>

</li>

<?php } ?>

</ul>

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

Вставил но получается как-то криво(

 

Это вот так выглядят категории 3го уровня

1.png

 

И так же стали выглядеть категории второго уровня(

 

2.png

 

Это неправильно код вставил или надо править стилями теперь?

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


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

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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