Jump to content
Sign in to follow this  
AlexSend

Не могу получить category_id в модуле категорий

Recommended Posts

Всем доброго времени суток. Вторую неделю пытаюсь сделать вывод всех категорий из магазина. По умолчанию выводиться только 1 и второй уровень. За основу я взял модуль из опенкарта 1.5 (достался бекап от клиента) где был модуль на 4 уровня . Я его подключил по аналогии стандартного модуля category.php Опенкарат 2. С большими усилиями я вывел 3 уровня (4 так и  не вывелся) НО дело не в этом. Я не могу получить текущий ИД категории. Ниже я приложил кусок кода. Аналогичный код на стандартном модуле работает, я постарался максимально подобно сделать и свой, но напомню что он с модуля Опенкарта 1.5. Большое спасибо.

 

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['child_id2'] = $parts[2];
		} else {
			$data['child_id2'] = 0;
		}		
		
		if (isset($parts[3])) {
			$data['child_id3'] = $parts[3];
		} else {
			$data['child_id3'] = 0;
		}

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

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

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

		$categories = $this->model_catalog_category->getCategories(0);
		
		// 1
		foreach ($categories as $category) {
			$total = $this->model_catalog_product->getTotalProducts(array('filter_category_id' => $category['category_id']));
			$children_data = array();
			$children = $this->model_catalog_category->getCategories($category['category_id']);
			
		// 2
			foreach ($children as $child) {
				$children2_data = array();
				$children2 = $this->model_catalog_category->getCategories($child['category_id']);
		// 3	
				foreach ($children2 as $child2) {				
					$children3_data = array();
					$children3 = $this->model_catalog_category->getCategories($child2['category_id']);
		// 4
						foreach ($children3 as $child3) {
							$data3 = array(
								'filter_category_id'  => $child3['category_id'],
								'filter_sub_category' => true
							);				
							
							$product_total3 = $this->model_catalog_product->getTotalProducts($data3);

							$children3_data[] = array(
								'category_id' => $child3['category_id'],
								'name'        => $child3['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total3 . ')' : ''),
								'href'        => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']. '_' . $child2['category_id']. '_' . $child3['category_id'])	
							);		
						}
		
					$data2 = array(
						'filter_category_id'  => $child2['category_id'],
						'filter_sub_category' => true
					);				
					
					$product_total2 = $this->model_catalog_product->getTotalProducts($data2);

					$children2_data[] = array(
						'category_id' => $child2['category_id'],
						'name'        => $child2['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total2 . ')' : ''),
						'children3'    => $children3_data,
						'href'        => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']. '_' . $child2['category_id'])	
					);		
			}
			
				$data = array(
					'filter_category_id'  => $child['category_id'],
					'filter_sub_category' => true
				);

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

				$total += $product_total;

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

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


9d0f8-clip-70kb.png?nocache=1гории

Share this post


Link to post
Share on other sites

Ваши текущие категории

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['child_id2'] = $parts[2];
} else {
	$data['child_id2'] = 0;
}

по примеру второго уровня категории

<?php if ($child['category_id'] == $child_id) { ?>

 

Share this post


Link to post
Share on other sites

Вот как выводиться у меня, и этот код выдает ошибку, то есть этих переменных нету в шаблоне, хотя в масиве они есть:
 

<ul class="box-category">
      <?php foreach ($categories as $category) { ?>
      <li>
        <?php if ($category['category_id'] == $category_id) { ?>
        <a href="<?php echo $category['href']; ?>" class="active"><?php echo $category['name']; ?></a>
        <?php } else { ?>
        <a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
        <?php } ?>
        <?php if (($category['children']) && ($category['category_id'] == $category_id)) { ?>
        <ul>
          <?php foreach ($category['children'] as $child) { ?>
          <li>
            <?php if ($child['category_id'] == $child_id) { ?>
            <a href="<?php echo $child['href']; ?>" class="active"><?php echo $child['name']; ?></a>
            <?php } else { ?>
            <a href="<?php echo $child['href']; ?>"><?php echo $child['name']; ?></a>
            <?php } ?>
			
			        <?php if (($child['children2']) &&  ($category['category_id'] == $category_id)) { ?>
						<ul>
						  <?php foreach ($child['children2'] as $child2) { ?>
						  <li>
							<?php if ($child2['category_id'] == $child_id2) { ?>
							<a href="<?php echo $child2['href']; ?>" class="active"> - <?php echo $child2['name']; ?></a>
							<?php } else { ?>
							<a href="<?php echo $child2['href']; ?>"> - <?php echo $child2['name']; ?></a>
							<?php } ?>
		
								<?php if (($child2['children3']) &&  ($category['category_id'] == $category_id)) { ?>
								
														
									<ul>
									  <?php foreach ($child2['children3'] as $child3) { ?>
									  <li>
										<?php if ($child3['category_id'] == $child_id3) { ?>
										<a href="<?php echo $child3['href']; ?>" class="active"> - <?php echo $child3['name']; ?></a>
										<?php } else { ?>
										<a href="<?php echo $child3['href']; ?>"> - <?php echo $child3['name']; ?></a>
										<?php } ?>
									  </li>
									  <?php } ?>
									</ul>
								 <?php } ?>
							
							
						  </li>
						  <?php } ?>
						</ul>
					 <?php } ?>
			
			
          </li>
          <?php } ?>
        </ul>
        <?php } ?>
      </li>
      <?php } ?>
    </ul>

5f84c-clip-199kb.png?nocache=1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By legioner26
      Разработан многофункциональный модификатор меню категорий товаров, который позволяет прям из админ панели решать массу задач без участия программиста. Очень простая и легкая установка.
      Так же внедрена мобильная версия модуля.
      Модификатор создан для изменения и добавления функционала в стандартный модуль категорий всех версий веток ОС начиная от 2.0 и заканчивая 3.0
      Обновление модификатора до версии ОС 3.0
      ПРИМЕЧАНИЕ !!!
      Для корректной установки и работы модификатора настоятельно рекомендую проверить были ли изменены файлы стандартного модуля категорий, 
      либо удостовериться что нет сторонних модификаторов которые бы меняли функционал.
      В случае если файлы изменены, можете добавить к ним префикс к примеру (category_1.tpl) и залить файлы из коробки ОС. 
       
      РЕКОМЕНДУЕМЫЕ МОДУЛИ
       
      Смс авторизация и регистрация 
      Конструктор форм обратной связи
      Модуль Зумма
      Модуль подарков
      СЕО генератор мета тегов
       
       
      Установка:
      1. Папку Admin закинуть на хостинг в корень сайта 
      2. Устанавливаете модификатор согласно вашей версии ОС через "Установка расширений", далее в модификаторах чистим кешь и обновляем.
      ИНСТРУКЦИЯ во вложении
      DEMO Логин: demo Пароль: demo
      https://siacosmetics.ru/lico1/dlya-lica/krem-dlya-lica  - С вертикальным выпадом
      http://mvc-cart.ru/index.php?route=product/category&path=20 - С горизонтальным выпадом
       
    • By legioner26
      699.00 руб
      Скачать/Купить дополнение


      Многофункциональный модуль меню Категорий
      Разработан многофункциональный модификатор меню категорий товаров, который позволяет прям из админ панели решать массу задач без участия программиста. Очень простая и легкая установка.
      Так же внедрена мобильная версия модуля.
      Модификатор создан для изменения и добавления функционала в стандартный модуль категорий всех версий веток ОС начиная от 2.0 и заканчивая 3.0
      Обновление модификатора до версии ОС 3.0
      ПРИМЕЧАНИЕ !!!
      Для корректной установки и работы модификатора настоятельно рекомендую проверить были ли изменены файлы стандартного модуля категорий, 
      либо удостовериться что нет сторонних модификаторов которые бы меняли функционал.
      В случае если файлы изменены, можете добавить к ним префикс к примеру (category_1.tpl) и залить файлы из коробки ОС. 
       
      РЕКОМЕНДУЕМЫЕ МОДУЛИ
       
      Смс авторизация и регистрация 
      Конструктор форм обратной связи
      Модуль Зумма
      Модуль подарков
      СЕО генератор мета тегов
       
       
      Установка:
      1. Папку Admin закинуть на хостинг в корень сайта 
      2. Устанавливаете модификатор согласно вашей версии ОС через "Установка расширений", далее в модификаторах чистим кешь и обновляем.
      ИНСТРУКЦИЯ во вложении
      DEMO Логин: demo Пароль: demo
      https://siacosmetics.ru/lico1/dlya-lica/krem-dlya-lica  - С вертикальным выпадом
      http://mvc-cart.ru/index.php?route=product/category&path=20 - С горизонтальным выпадом
       
      Добавил legioner26 Добавлено 12.02.2018 Категория Меню, дизайн, внешний вид Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х Обращение к серверу разработчика Нет Старая цена 950  
    • By Romaleg
      Всем привет, стоит opencart 2.3 проблема в том, что подкатегории, которые выводятся дефолтным модулем категорий, не сортируются согласно указанным порядком сортировки. Так и должно быть или что-то работает некорректно? Сами категории сортируются нормально, подкатегории, которые выводятся в шапке тоже выводятся нормально, проблема только с модулем, так и должно быть и как решить эту проблему?

    • By foruss
      300.00 руб
      Скачать/Купить дополнение


      Модуль категорий до 4 уровня вложенности
      Описание:
      Данный модуль позволяет показывать до 4-х уровней вложенности. Работают активные меню, хлебные крошки, а так же подсчет товаров.
      Версии на которых тестировалось:
      Opencart 1.5.3.1;Opencart 1.5.4.1;
      На остальных версиях пока не проверял.

      Для установки достаточно загрузить в корень все из папки Upload.
      Если у вас альтернативный от стандартного шаблон:
      Из архива по пути catalog>view>theme>default>template>module>И сюда запишите файл на сервере
      catalog>view>theme>ВАШ ШАБЛОН>template>module>

      По умолчанию в файле отключен подсчет принудительно. Чтобы его включить, откройте файл catalog>controller>module>category.php
      и на 6 строчке замените значение false на true.
      Готов внести любые изменения в данный модуль на функционал
      Добавил foruss Добавлено 18.02.2013 Категория Модули  
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.