voron121

[Решено] Проблема с выводом категорий в шаблоне

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

voron121    0

Доброго времени суток уважаемые форумчане. Появилась у меня трабла с , казалось бы, стандартной задачей в opencart - вывод категорий. Используется платный шаблон (переделываю за предыдущим разработчиком его косяки) . После переноса сайта на другой хостинг перестали выводиться категории в шапке сайта. Делаю var_dump в руфвукюезд - пишет NULL . В то же время делаю var_dump в контроллере - выводит массив с данными. Шаблон в контролере видится и подключается. Где ошибка - не могу понять . Возможно кто подскажет. Вот код вьюхи с категориями 

<?php if ($categories) { ?>
<div id="menu">
  <ul>
    <?php foreach ($categories as $category) { ?>
    <li><?php if ($category['active']) { ?>
	<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']) { ?>
      <div>
        <?php for ($i = 0; $i < count($category['children']);) { ?>
        <ul>
          <?php $j = $i + ceil(count($category['children']) / $category['column']); ?>
          <?php for (; $i < $j; $i++) { ?>
          <?php if (isset($category['children'][$i])) { ?>
          <li><a href="<?php echo $category['children'][$i]['href']; ?>"><?php echo $category['children'][$i]['name']; ?></a></li>
          <?php } ?>
          <?php } ?>
        </ul>
        <?php } ?>
      </div>
      <?php } ?>
    </li>
    <?php } ?>
  </ul>
</div>
<?php } ?>
<div id="menu">

Вот это в контроллере 

 

// Menu
		if (isset($this->request->get['path'])) {
			$parts = explode('_', (string)$this->request->get['path']);
		} else {
			$parts = array();
		}

		$this->load->model('catalog/category');
		
		$this->load->model('catalog/product');
		
		$this->load->model('tool/image');
		
		$this->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) {
					
					if($child['image']) {
						$cat_image = $this->model_tool_image->resize($child['image'],30,30);
					}else{
						$cat_image = $this->model_tool_image->resize('no_image_white.jpg',1,1);
					}
					
					//Будем вычислять кол-во товаров в категориях только если это кол-во надо показывать
					if ($this->config->get('config_product_count')) {
						$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') ? ' <span class="kolvo">' . $product_total . '</span>' : ''),
						'thumb' => $cat_image,
						'href'  => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])	
					);						
				}
				
				// Level 1
				$this->data['categories'][] = array(
					'name'     => $category['name'],
					'children' => $children_data,
					'active'   => in_array($category['category_id'], $parts),
					'column'   => $category['column'] ? $category['column'] : 1,
					'href'     => $this->url->link('product/category', 'path=' . $category['category_id'])
				);
			}
		}
		
		$this->children = array(
			'module/language',
			'module/currency',
			'module/cart'
		);

/*****************************************/
		$this->load->model('catalog/information');
		$this->data['top_info'] = array();

		foreach ($this->model_catalog_information->getInformations() as $result) {
			if ($result['top']) {
				$this->data['top_info'][] = array(
					'title' => $result['title'],
					'href'  => $this->url->link('information/information', 'information_id=' . $result['information_id'])
				);
			}
    	}
/****************************************/
				
		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/common/header.tpl')) {
			$this->template = $this->config->get('config_template') . '/template/common/header.tpl';
		} else {
			$this->template = 'ava/template/common/header.tpl';
		}
		
    	$this->render();
	} 	
}
?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
voron121    0

проблема решена - все было в модуле supermenu 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.

  • Похожий контент

    • От victormickhan
      Здравствуйте. Нужна помощь - не могу вывести категории(нужны свойства типа $categories["href"]) в файле шаблона $home.tpl.
      Попытки объявления переменной в контроллере файла home.tpl на подобии файлов контроллера header.tpl или category.tpl не увенчались успехом.
      Поммогите пожалуйста.
      Спасибо!!!
    • От deezler
      Привет. Хочу вывести все категории товара на странице этого товара. Не нашел полного решения под Opencart 2 ни в рунете, ни буржунете.
      Проверил решение для Opencart 1.5. По описанию — именно то, что надо, но не работает на 2.2, к сожалению.
      Получилось вывести название категорий без ссылок по инструкции. Но ссылку вывести никак не получается.
      Еще получилось вывести название категории и ссылку по инструкции отсюда. Но таким методом, как я понял, можно вывести только на одну категорию, как в хлебных крошках.
      Помогите, пожалуйста, сделать вывод ссылок на соответствующие категории.
    • От Igorewa
      Доброго времени суток уважаемы форумчане.Случилась дикая напасть.... В категории товаров выводятся товары в одном ряду 3, в следующем 1, ссылка на сайт Как сделать что бы их было 3 в каждом ряду.
      В интернете нашел, что нужно править common.js, но как править не пойму... С помощью перемен и подбора результату то же 0
      if (cols1 == 2) {
      $('#content .product-layout:nth-child(2n+2)').after('<div class="clearfix visible-md visible-sm"></div>');
      } else if (cols1 == 1) {
      $('#content .product-layout:nth-child(3n+3)').after('<div class="clearfix visible-lg"></div>');
      } else {
      $('#content .product-layout:nth-child(4n+4)').after('<div class="clearfix"></div>');
      }
      if (cols == 2) {
      $('#content .product-layout').attr('class', 'product-layout product-grid col-lg-6 col-md-6 col-sm-12 col-xs-12');
      } else if (cols == 1) {
      $('#content .product-layout').attr('class', 'product-layout product-grid col-lg-4 col-md-4 col-sm-6 col-xs-12');
      } else {
      $('#content .product-layout').attr('class', 'product-layout product-grid col-lg-3 col-md-3 col-sm-6 col-xs-12');
      }
      Подскажите кто знает что надо сделать что бы товар не скучал 1 в строке...
    • От dmonco
      Пытаюсь доработать модуль вывода категорий на главной странице.
      С первым решением помогли. Теперь выводятся не только категории, но и подкатегории. Проблема в том, что в некоторых категориях больше 20 подкатегорий, и естественно вид сего этого не очень.
      Поэтому хочу ограничить вывод подкатегорий к примеру до 10.
      Думаю, надо использовать array_slice а куда его и как вместить хрен его знает. Знания на этом заканчиваются.
      Буду рад за помощь.
      Пример вывода категорий и подкатегорий сейчас:

      Вот сам файл
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу