Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

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


AlexSend
 Поделиться

Рекомендованные сообщения

Всем доброго времени суток. Вторую неделю пытаюсь сделать вывод всех категорий из магазина. По умолчанию выводиться только 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гории

Ссылка на комментарий
Поделиться на других сайтах


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

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) { ?>

 

Ссылка на комментарий
Поделиться на других сайтах


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

<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

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.