Jump to content
Sign in to follow this  
Student777

Как отобразить категории 3го уровня на странице категорий 2го уровня Opencart 2.3

Recommended Posts

Здравствуйте, подскажите пожалуйста кто знает - как вывести категории третьего уровня на странице с категорией 2го уровня, структура каталога интересует по аналогии с сайтом Леруа Мерлен leroymerlin.ru  - подскажите какие внести изменения в categry.tpl?

sdg34634.PNG

Edited by Student777

Share this post


Link to post
Share on other sites

Правок в category.tpl не достаточно,  посмотрите примерно как это реализовано в стандартном меню,  а именно controller header.php и header.tpl

Share this post


Link to post
Share on other sites
32 минуты назад, Student777 сказал:

А чуть подробнее не подскажите как это сделать? Во вложении эти файлы

такие правки это не 5 минут делов, а несколько часов, соответственно стоят денег. если вы сами в php нечего не понимаете, то проще купите многоуровневое меню и не партись

Share this post


Link to post
Share on other sites

Спасибо, многоуровневое меню планирую купить вот это - MegaMenu Pro подойдет? Но еще хотел вывести данные помимо меню на странице с описанием категорий, там в цикле выводятся дочерние категории, а как туда прицепить следующий уровень, вот как это сделать кто подскажет похоже на то как на сайте Леруа? Не хотелось бы делать статично на html, но наверно придется.

Edited by Student777

Share this post


Link to post
Share on other sites

Доработайте модуль категорий. Там сделано для 2 уровня, так же сделать для 3

Share this post


Link to post
Share on other sites

Похоже вопрос вообще не про меню, а по поводу штатного функционала...

 

image.thumb.png.4a3037f686bfea0531e9bd0d0569a6ef.png

 

Тут надо смотреть

catalog/controller/product/category.php

catalog/view/theme/ТВОЯ_ТЕМА/template/product/category.tpl

и если есть

system/storage/modification/catalog/controller/product/category.php

system/storage/modification/catalog/view/theme/ТВОЯ_ТЕМА/template/product/category.tpl

Share this post


Link to post
Share on other sites

Да, не тот файл category.php смотрел - брал из module, спасибо

Edited by Student777

Share this post


Link to post
Share on other sites

Вот кусочек кода, с моей добавкой из sitemap.php, может кто подскажет как его доделать чтобы выводил развернутый список категорий и вложенных подкатегороий или скажите сколько будет стоить

Ниже отрывок кода из файла category.php из МОЯ_ТЕМА/template/product/category.tpl

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

foreach ($results as $result) {
	$filter_data = array(
		'filter_category_id'  => $result['category_id'],
		'filter_sub_category' => true
	);
	$data['categories'][] = array(
		'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),					
		'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url)
	);


	////////////////////////////////////Начало кода взятього из sitemap.php//////////////////////////////////////////
	$data['categories'] = array();

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

	foreach ($categories_1 as $category_1) {
		$level_2_data = array();

		$categories_2 = $this->model_catalog_category->getCategories($category_1['category_id']);

		foreach ($categories_2 as $category_2) {
			$level_3_data = array();

			$categories_3 = $this->model_catalog_category->getCategories($category_2['category_id']);

			foreach ($categories_3 as $category_3) {
				$level_3_data[] = array(
					'name' => $category_3['name'],
					'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $category_1['category_id'] . '_' . $category_2['category_id'] . '_' . $category_3['category_id'])
				);
			}

			$level_2_data[] = array(
				'name'     => $category_2['name'],
				'children' => $level_3_data,
				'href'     => $this->url->link('product/category', 'path='. $this->request->get['path'] . '_' . $category_1['category_id'] . '_' . $category_2['category_id'])
			);
		}

		$data['categories'][] = array(
			'name'     => $category_1['name'],
			'children' => $level_2_data,
			'href'     => $this->url->link('product/category', 'path=' . $category_1['category_id'])
		);
	}
		
	///////////////////////////////////////////////Конец кода взятього из sitemap.php///////////////////////////////////////////////

}

Ниже отрывок кода из category.tpl с вставкой кода из sitemap.tpl, выводящего категории


    <?php if ($categories) { ?>
    <h3><?php echo $text_refine; ?></h3>
    <?php if (count($categories) <= 5) { ?>
    <div class="row">
      <div class="col-sm-3">
        <ul>
          <?php foreach ($categories as $category) { ?>
          <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>
          <?php } ?>
        </ul>
      </div>
    </div>
    <?php } else { ?>
    <div class="row">
      <?php foreach (array_chunk($categories, ceil(count($categories) / 4)) as $categories) { ?>
      <div class="col-sm-3">
       <!-- <ul>-->	
        <!--  <?php foreach ($categories as $category) { ?>-->	
         <!-- <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li>-->	
	

		<!-- /////////////////////////////////Код ниже добавил я///////////////////////////////////////////////-->		
		 <ul>
		   <?php foreach ($categories as $category_1) { ?>
			<li><a href="<?php echo $category_1['href']; ?>"><?php echo $category_1['name']; ?></a>
			  <?php if ($category_1['children']) { ?>
			  <ul>
				<?php foreach ($category_1['children'] as $category_2) { ?>
				<li><a href="<?php echo $category_2['href']; ?>"><?php echo $category_2['name']; ?></a>
				  <?php if ($category_2['children']) { ?>
				  <ul>
					<?php foreach ($category_2['children'] as $category_3) { ?>
					<li><a href="<?php echo $category_3['href']; ?>"><?php echo $category_3['name']; ?></a></li>
					<?php } ?>
				  </ul>
				  <?php } ?>
				</li>
				<?php } ?>
			  </ul>
			  <?php } ?>
			</li>
		   <?php } ?>
		  </ul> 
		<!-- /////////////////////////////////Конец моего кода///////////////////////////////////////////////-->
       	<!--   <?php } ?>-->
      	<!--  </ul>

      </div>
      <?php } ?>
    </div>	

 

Share this post


Link to post
Share on other sites

Извините, ошибся - первый отрывок кода выше из /controller/product/category.php , а не из  МОЯ_ТЕМА/template/product/category.tpl

 

Так как сделан код выше - кроме нужных категорий выводятся и другие ссылки - из верхнего меню и из футера, подскажите как их убрать?

Edited by Student777

Share this post


Link to post
Share on other sites
В 08.05.2019 в 15:56, Student777 сказал:

Вопрос снят, спасибо.

Подскажи как решил

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  

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