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

Вертикальное меню категорий (аккордеон)


Recommended Posts

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

<?php
class ControllerExtensionModuleCategory extends Controller {
	        
        public function index() {
          $this->load->language('extension/module/category');
      
          $data['heading_title'] = $this->language->get('heading_title');
      
          if (isset($this->request->get['path'])) {
            $parts = explode('_', (string)$this->request->get['path']);
          } else {
            $parts = array();
          }
          
          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['child2_id'] = $parts[2];
          } else {
            $data['child2_id'] = 0;
          }
      
          $this->load->model('catalog/category');
      
          $this->load->model('catalog/product');
      
          $result_all_categories = $this->cache->get('octemplates.module_category.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . $this->config->get('config_customer_group_id'));
          
          if (!$result_all_categories) {
            $categories = $this->model_catalog_category->getCategories(0);  
            
            foreach ($categories as $category) {
              $children_data = array();
              $children = $this->model_catalog_category->getCategories($category['category_id']);
              
              foreach ($children as $child) {
                $children_data_level2 = array();
                $children_level2 = $this->model_catalog_category->getCategories($child['category_id']);       
                
                foreach ($children_level2 as $child_level2) {
                  $data_level2 = array(
                    'filter_category_id'  => $child_level2['category_id'],
                    'filter_sub_category' => true
                  );

                  $children_data_level2[] = array(
                    'category_id' => $child_level2['category_id'],
                    'name'  =>  $child_level2['name'],
                    'href'  => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'] . '_' . $child_level2['category_id']),
                    'id' => $category['category_id']. '_' . $child['category_id']. '_' . $child_level2['category_id']
                  );
                }

                $children_data[] = array(
                  'category_id' => $child['category_id'],
                  'name'        => $child['name'],
                  'children2'    => $children_data_level2,
                  'href'        => $this->url->link('product/category', 'path=' . $child['category_id']) 
                );    
              }
        
              $result_all_categories[] = array(
                'category_id' => $category['category_id'],
                'name'        => $category['name'],
                'children'    => $children_data,        
                'href'        => $this->url->link('product/category', 'path=' . $category['category_id'])
              );  
            }
      
            $this->cache->set('octemplates.module_category.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . $this->config->get('config_customer_group_id'), $result_all_categories);
          }

          $data['categories'] = $result_all_categories;

          return $this->load->view('extension/module/category', $data);
        }

        public function old_index() {
		$this->load->language('extension/module/category');

		$data['heading_title'] = $this->language->get('heading_title');

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

		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;
    }

    // $data['opendop'] = 0;
    // if($data['parent'] != '0'){
    //   $opendop = $data['parent'];
    //   $data['opendop'] = $opendop;
    // }

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

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

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

		$categories = $this->model_catalog_category->getCategories(0);

		foreach ($categories as $category) {
			$children_data = array();

			if ($category['category_id'] == $data['category_id']) {
				$children = $this->model_catalog_category->getCategories($category['category_id']);

				foreach($children as $child) {
					$filter_data = array('filter_category_id' => $child['category_id'], 'filter_sub_category' => true);

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

			$filter_data = array(
				'filter_category_id'  => $category['category_id'],
				'filter_sub_category' => true
			);

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

		return $this->load->view('extension/module/category', $data);
	}
}

этот файл я взял /www/happyhome.ru/system/storage/modification/catalog/controller/extension/module

Змінено користувачем userAT
Надіслати
Поділитися на інших сайтах


Ну так значит сам файл лежит в 

26 минут назад, userAT сказал:

catalog/controller/extension/module

И называется category.php

А если он есть в Кеше модификатора, значит его ещё и модифицировали с помощу ocmod.

А верстка находится в catalog\view\theme\имя_вашего_шаблона\template\extension/module/category.tpl

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

33 минуты назад, Serg9988 сказал:

Ну так значит сам файл лежит в 

И называется category.php

А если он есть в Кеше модификатора, значит его ещё и модифицировали с помощу ocmod.

А верстка находится в catalog\view\theme\имя_вашего_шаблона\template\extension/module/category.tpl

 

согласен, только по пути который вы указали, ничего в нем не работает, я урезал url адреса по модулям, везде все хорошо, а с этим меню удалось это сделать только в кэше, пока как-то так

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


11 минут назад, userAT сказал:

 

согласен, только по пути который вы указали, ничего в нем не работает, я урезал url адреса по модулям, везде все хорошо, а с этим меню удалось это сделать только в кэше, пока как-то так

После внесения изменений обновите кеш модификаторов.

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

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

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

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

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

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

Вхід

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

Вхід зараз

×
×
  • Створити...

Important Information

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