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

[Решено] Модуль категорий


Svarnoy85

Recommended Posts

Приветствую всех.

Разыскиваю модуль или упоминание вот о таком функционале:

 

Есть следующая иерархия категорий:

 

Тестовая категория раз

-Тесть1

  -- Субкатегория 1

     --- под-под категория 1

     --- под-под категория 2

     --- под-под категория 3

  -- Субкатегория 2

    --- под-под категория А

    --- под-под категория Б

    --- под-под категория С

-Тест2

  -- Субкатегория 3

  -- Субкатегория 4

Тестовая категория два

 - Тест31

     ---- Под-суб категория 1

 - Тест32

 - Тест33

 

Слева в категории выводиться модуль, который показывает субкатегории и под-под категории, только от этой категории.

При этом при "проходе" дальше по категориям показывает только под-под категории

Т.е. в Тест1 покажет Субкатегория 1-2 и под-под категории, при проходе в Субкатегория 1 покажет только под-под категории 1-2-3,

 

При этом в "Тестовая категория раз" покажет только Тест 1 и Тест 2 + Субкатегория 1-2-3-4

 

Если кто-то сталкивался с подобным функционалом, просьба поделиться ссылкой, заранее всем спасибо!

 

Возможно платное решение, но с ним пожалуйста пишите в ЛС, отвечу - всем !

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


у меня это в теме заложено. BigDesign - Digital - название темы, там "опции темы" "натстройки шапки" "главное меню" дальше просто категории создаются и указывается родительская.

Установлен так же модуль называется "Категории" хз за что он отвечает

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


ТС, вы описали стандартный функционал меню с единственной разницей - в стандартном не раскрываются под-подкатегории, но это можно дописать. Проще говоря, вам тупо надо раскрыть все под-подкатегории открытой категории, то есть, открыть меню на глубину не одной ссылки, а двух.

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


а я понял, что корневые категории ему не нужны в боковом модуле.

в этом случае уже не стандартный ))

Да, на это я не обратил внимания...

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


а я понял, что корневые категории ему не нужны в боковом модуле.

в этом случае уже не стандартный ))

да вы правы нужны только категории от родителя, может есть идеи как это реализовать ?

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


ТС, вы описали стандартный функционал меню с единственной разницей - в стандартном не раскрываются под-подкатегории, но это можно дописать. Проще говоря, вам тупо надо раскрыть все под-подкатегории открытой категории, то есть, открыть меню на глубину не одной ссылки, а двух.

интересует показ подкатегорий только от родителя

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


пробуй заменить catalog/controller/module/category.php прикрепленным файлом

Доброе утро к сожалению при замене файла ничего не происходит, вернее если включить подсчет кол-ва товаров, то получаем ошибку:

 

PHP Fatal error:  Call to undefined method ModelCatalogProduct::getTotalProductsID() in D:\OpenServer\domains\kingparket.loc\catalog\controller\module\category.php on line 39

 

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

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


Вот что у меня получилось правлю 39 строку на getTotalProducts(без ID) появляется сайт, но модуль категорий показывает все как стандартный кроме одного момента - количество товара видно только у подкатегории(у главных стоят только 0 )

И появляется след. ошибка:

Warning: Invalid argument supplied for foreach() in D:\OpenServer\domains\kingparket.loc\catalog\controller\module\category.php on line 40

Warning: Invalid argument supplied for foreach() in D:\OpenServer\domains\kingparket.loc\catalog\controller\module\category.php on line 59

Warning: Invalid argument supplied for foreach() in D:\OpenServer\domains\kingparket.loc\catalog\controller\module\category.php on line 40

Warning: Invalid argument supplied for foreach() in D:\OpenServer\domains\kingparket.loc\catalog\controller\module\category.php on line 40

Warning: Invalid argument supplied for foreach() in D:\OpenServer\domains\kingparket.loc\catalog\controller\module\category.php on line 40

Warning: Invalid argument supplied for foreach() in D:\OpenServer\domains\kingparket.loc\catalog\controller\module\category.php on line 40

Warning: Invalid argument supplied for foreach() in D:\OpenServer\domains\kingparket.loc\catalog\controller\module\category.php on line 40

Warning: Invalid argument supplied for foreach() in D:\OpenServer\domains\kingparket.loc\catalog\controller\module\category.php on line 40

Warning: Invalid argument supplied for foreach() in D:\OpenServer\domains\kingparket.loc\catalog\controller\module\category.php on line 40

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


Зашел в тупик перепробовал кучу модулей, самое "близкое как мне кажется"

http://take.ms/CbwLP --- вот скрин

я использовал заготовку одного модуля, расширил вложенность до 5 лвл

но вот как показать только последние две категории в списке :( ?

 

Может кто даст подсказку : ( ?

Готов подкинуть на пиво :-)  !!!

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


Возникла вот такая идея можно же вывести в категории суб-категории:

<?php if ($categories) { ?>

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


<?php } ?>

Возник такой вопрос, а как заставить подцепить значения суб-категорий тут ? Может кто-то поможет :) ?

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


Приветствую всех!

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

Поясню:

<?php if ($categories) { ?>
  <ul>
           <?php foreach ($categories as $category) { ?>
                <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>
           <?php } ?>
    </ul>
<?php } ?>  --- это выводит подкатегории, пытаюсь вывести еще и под-под категории,

т.е. в идеале должен получиться список :

<ul>
    <li>подкатегория</li>
    <li>подкатегория
        <ul>
            <li>под-под категория</li>
            <li>под-под категория</li>
        </ul>
    </li>
</ul>

 

Не очень понимаю как это можно реализовать???

Заранее всем спасибо за подсказки-наводки!!!

 

Готов рассмотреть помощь за вознаграждение :)

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


Тю, точно так же как и подкатегории выводятся. Просто добавить вложенность. Начинать нужно не с шаблона, а с контроллера модуля. Там всё понятно должно быть

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

Тю, точно так же как и подкатегории выводятся. Просто добавить вложенность. Начинать нужно не с шаблона, а с контроллера модуля. Там всё понятно должно быть

Вот что есть в контроллере:

 

$this->data['categories'] = array();

            $results = $this->model_catalog_category->getCategories($category_id);

            foreach ($results as $result) {

                

                $data = array(

                    'filter_category_id'  => $result['category_id'],

                    'filter_sub_category' => true

                );

                

                

                

                $product_total = $this->model_catalog_product->getTotalProducts($data);                

                

                $this->data['categories'][] = array(

                    'name'  => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),

                    'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url)

                    

                );

            }

 

не могу понять как здесь вложенность настроить:(, есть идеи :) ?

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


Все решено!!! Тему можно закрывать.

 

http://take.ms/Z8KlC --- вот скрин, что получается.

Реализовано через контроллер категории, кому интересно вот код:

	$this->data['categories'] = array();

			$results = $this->model_catalog_category->getCategories($category_id);

			foreach ($results as $result) {
				$data = array(
					'filter_category_id'  => $result['category_id'],
					'filter_sub_category' => true
				);
				$children_data = array();
				$children = $this->model_catalog_category->getCategories($result['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'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
						'href'  => $this->url->link('product/category', 'path=' . $result['category_id'] . '_' . $child['category_id'])
					);						
				}
				

				$product_total = $this->model_catalog_product->getTotalProducts($data);				

				$this->data['categories'][] = array(
					'name'  => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
					'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url),
					'children' => $children_data
				);
			}
Надіслати
Поділитися на інших сайтах


Все решено!!! Тему можно закрывать.

 

http://take.ms/Z8KlC --- вот скрин, что получается.

Реализовано через контроллер категории, кому интересно вот код:

$this->data['categories'] = array();
 
			$results = $this->model_catalog_category->getCategories($category_id);
 
			foreach ($results as $result) {
				$data = array(
					'filter_category_id'  => $result['category_id'],
					'filter_sub_category' => true
				);
				$children_data = array();
				$children = $this->model_catalog_category->getCategories($result['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'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
						'href'  => $this->url->link('product/category', 'path=' . $result['category_id'] . '_' . $child['category_id'])
					);						
				}
				
 
				$product_total = $this->model_catalog_product->getTotalProducts($data);				
 
				$this->data['categories'][] = array(
					'name'  => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''),
					'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url),
					'children' => $children_data
				);
			}
Надіслати
Поділитися на інших сайтах


Подождите закрывать)

Есть еще вопрос: как выводить это в нужном месте шаблона, каким кодом?

можно в шаблоне категории при помощи такого кода:

  <?php if ($categories) { ?>
  <h2><?php echo $text_refine; ?></h2>
  <div class="category-list">
   

    <ul>
      <?php foreach ($categories as $category) { ?>
      <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
		<?if($category['children']) {?>
			<ul>
				<?foreach($category['children'] as $children) {?>
					<li><a href="<?php echo $children['href'];?>"><?php echo $children['name'];?></a></li>
				<?}?>
			</ul>
		<? }?>
	  </li>
      <?php } ?>
    </ul>
 
  
  </div>
  <?php } ?>
Надіслати
Поділитися на інших сайтах


Так ведь этот код выводит все категории.

А нужно вывести только подкатегории активной категории.

Приведенный код выводит только подкатегории данной категории, правки вносятся в контроллер и в шаблон вывода

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


  • 4 weeks later...

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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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