Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

Помогите переписать модуль


Recommended Posts

Как вывести подкатегории 3го уровня в osstore 2.3?

На сайте установлен модуль для вывода категорий "Категории_KSL". Помогите, пожалуйста, его переписать, чтобы можно было выводить категории 3го уровня.

 

Спойлер

 

Контроллер:


<?php
class ControllerExtensionModuleCategoryKsl extends Controller {
	public function index() {
			//Определяем текущую категорию (path из GET запроса)
		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($data['child_id']) $data['category_id'] = null;
		$this->load->model('catalog/category');
		$this->load->model('catalog/product');
		$data['categories'] = array();
		$categories = $this->model_catalog_category->getCategories(0);
		//Загружаем модель которая работает с таблицей настроек модулей (oc_setting)
		$this->load->model('setting/setting');
		//Получаем значение - показывать ли изображения
		$category_images = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_images'];
		//Получаем значение - размеры изображений
		$category_images_height = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_img_height'];
		$category_images_weight = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_img_weight'];
		//Для дочерних категорий
		$category_children = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_children'];
		$category_child_images = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_child_images'];
		$category_child_images_height = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_child_img_height'];
		$category_child_images_weight = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_child_img_weight'];
		//Массив категорий, которые не нужно выводить
		if(isset($this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_checkbox'])){
			$categoryKsl_checkbox = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_checkbox'];
		} else $categoryKsl_checkbox = null;
		foreach ($categories as $category) {
			//Пропускаем, если в настройках указано отключить данную категорию
			if (isset($categoryKsl_checkbox[$category['category_id']])) {
				continue;				
			}
			$children_data = array();
			if ($category_children) {
				$children = $this->model_catalog_category->getCategories($category['category_id']);
				foreach($children as $child) {
					//Пропускаем, если в настройках указано отключить данную категорию
					if (isset($categoryKsl_checkbox[$child['category_id']])) {
						continue;				
					}
			
					$filter_data = array('filter_category_id' => $child['category_id'], 'filter_sub_category' => true);
					//Работа с изображениями			
					if ($category_child_images && is_file(DIR_IMAGE . $child['image'])) {
						$this->load->model('tool/image');
						//метод создает изображения указанного размера
						$image = $this->model_tool_image->resize($child['image'], $category_child_images_weight, $category_child_images_height);
					} else {
						$image = '';
					}
			
					$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']),
						'image' => $image,
					);
				}
			}
			
			$filter_data = array(
				'filter_category_id'  => $category['category_id'],
				'filter_sub_category' => true
			);
			//Работа с изображениями			
			if ($category_images && is_file(DIR_IMAGE . $category['image'])) {
				$this->load->model('tool/image');
				//метод создает изображения указанного размера
				$image = $this->model_tool_image->resize($category['image'], $category_images_weight, $category_images_height);
			} else {
				$image = '';
			}
			$data['is_home'] = !isset($this->request->get['route']) || ($this->request->get['route'] == 'common/home');
			$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']),
				'image' => $image,
			);
		}	
		//Добавляем свои стили
		
		return $this->load->view('extension/module/categoryKsl', $data);
	}
}


 

Спойлер

 

Шаблон:


<div class="list-group">
    <?php foreach ($categories as $category) { ?>
        <?php if ($category['category_id'] == $category_id) { ?>
            <div class="list-group-item active current">
                <div class="list-group-item-block">
                    <a href="" data-href="<?=$category['href']?>">
                        <img src="<?=$category['image']?>" class="img-responsive" />
                        <span class="img-cat-name cat-name"><?=$category['name']?></span>
                    </a>
                </div>
                <div class="list-group-item-child left">
                    <div class="list-group-arrow-back">
                        <i class="fa fa-long-arrow-left" aria-hidden="true"></i>
                        <span><?=$category['name']?></span>
                    </div>
                    <?php if ($category['children']) { ?>
                        <?php foreach ($category['children'] as $child) { ?>                        
                            <?php if ($child['category_id'] == $child_id) { ?>
                                <a href="<?=$child['href']?>" class="current">
                                    <img src="<?=$child['image']?>" class="img-responsive" />
                                    <span><?=$child['name']?></span>
                                </a>
                            <?php } else { ?>
                                <a href="<?=$child['href']?>">
                                    <img src="<?=$child['image']?>" class="img-responsive" />
                                    <span><?=$child['name']?></span>
                                </a>
                            <?php } ?>                               
                        <?php } ?>
                    <?php } else { ?>
                    <?php } ?>
                    <div class="categories-left-close-btn">
                        <div class="categories-left-close-btn-wrapper"></div>
                    </div>
                </div>
            </div>
        <?php } else { ?>
                <div class="list-group-item">
                    <div class="list-group-item-block">
                        <a href="" data-href="<?=$category['href'] ?>">
                            <img src="<?=$category['image']?>" class="img-responsive" />
                            <span class="img-cat-name cat-name"><?=$category['name']?></span>
                        </a>
                    </div>
                    <div class="list-group-item-child left">
                        <div class="list-group-arrow-back">
                            <i class="fa fa-long-arrow-left" aria-hidden="true"></i>
                            <a href="<?=$category['href'] ?>" class="parent-cat-name">
                                <span><?=$category['name']?></span>
                                <span class="parent-cat-name-description">Перейти в категорию</span>
                            </a>
                        </div>
                        <?php if ($category['children']) { ?>
                            <?php foreach ($category['children'] as $child) { ?>                        
                                <?php if ($child['category_id'] == $child_id) { ?>
                                    <a href="<?=$child['href']?>" class="current">
                                        <img src="<?=$child['image']?>" class="img-responsive" />
                                        <span><?=$child['name']?></span>
                                    </a>
                                <?php } else { ?>
                                    <a href="<?=$child['href']?>">
                                        <img src="<?=$child['image']?>" class="img-responsive" />
                                        <span><?=$child['name']?></span>
                                    </a>
                                <?php } ?>                               
                            <?php } ?>
                        <?php } else { ?>
                        <?php } ?>
                        <div class="categories-left-close-btn">
                            <div class="categories-left-close-btn-wrapper"></div>
                        </div>
                    </div>
                </div>
        <?php } ?>
    <?php }  ?>
</div>


 

 

Edited by DenKuzmin
Link to post
Share on other sites

Попробовал переписать так:

Контроллер:

Спойлер


<?php
class ControllerExtensionModuleCategoryKsl extends Controller {
	public function index() {
	
		//Определяем текущую категорию (path из GET запроса)
		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($data['child_id']) $data['category_id'] = null;

		if (isset($parts[2])) {
			$data['childc_id'] = $parts[2]; //дочерняя дочерней
		} else {
			$data['childc_id'] = 0;
		}

		if($data['childc_id']) $data['category_id'] = null;

		$this->load->model('catalog/category');
		$this->load->model('catalog/product');
		$data['categories'] = array();
		$categories = $this->model_catalog_category->getCategories(0);

		//Загружаем модель которая работает с таблицей настроек модулей (oc_setting)
		$this->load->model('setting/setting');

		//Получаем значение - показывать ли изображения
		$category_images = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_images'];
		//Получаем значение - размеры изображений
		$category_images_height = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_img_height'];
		$category_images_weight = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_img_weight'];

		//Для дочерних категорий
		$category_children = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_children'];
		$category_child_images = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_child_images'];
		$category_child_images_height = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_child_img_height'];
		$category_child_images_weight = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_child_img_weight'];

		//Для дочерних дочерних категорий
		$category_childrenc = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_children'];
		$category_childc_images = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_child_images'];
		$category_childc_images_height = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_child_img_height'];
		$category_childc_images_weight = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_child_img_weight'];


		//Массив категорий, которые не нужно выводить
		if(isset($this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_checkbox'])){
			$categoryKsl_checkbox = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_checkbox'];
		} else $categoryKsl_checkbox = null;

		foreach ($categories as $category) {

			//Пропускаем, если в настройках указано отключить данную категорию
			if (isset($categoryKsl_checkbox[$category['category_id']])) {
				continue;				
			}
			$children_data = array();

			if ($category_children) {

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

				foreach($children as $child) {
					//Пропускаем, если в настройках указано отключить данную категорию
					if (isset($categoryKsl_checkbox[$child['category_id']])) {
						continue;				
					}
			
					$filter_data = array('filter_category_id' => $child['category_id'], 'filter_sub_category' => true);

					//Работа с изображениями			
					if ($category_child_images && is_file(DIR_IMAGE . $child['image'])) {
						$this->load->model('tool/image');
						//метод создает изображения указанного размера
						$image = $this->model_tool_image->resize($child['image'], $category_child_images_weight, $category_child_images_height);
					} else {
						$image = '';
					}
			
					$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']),
						'image' => $image,
					);
				}
			}
			

      $childrenc_data = array();

			if ($category_childrenc) {

				$childrenc = $this->model_catalog_category->getCategories($category['category_id']);

				foreach($childrenc as $childc) {
					//Пропускаем, если в настройках указано отключить данную категорию
					if (isset($categoryKsl_checkbox[$childc['category_id']])) {
						continue;				
					}
			
					$filter_data = array('filter_category_id' => $child['category_id'], 'filter_sub_category' => true);

					//Работа с изображениями			
					if ($category_childc_images && is_file(DIR_IMAGE . $childc['image'])) {
						$this->load->model('tool/image');
						//метод создает изображения указанного размера
						$image = $this->model_tool_image->resize($childc['image'], $category_childc_images_weight, $category_childc_images_height);
					} else {
						$image = '';
					}
			
					$childrenc_data[] = array(
						'category_id' => $childc['category_id'],
						'name' => $childc['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''),
						'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $childc['category_id']),
						'image' => $image,
					);
				}
			}
			
			
			
			
			$filter_data = array(
				'filter_category_id'  => $category['category_id'],
				'filter_sub_category' => true
			);

			//Работа с изображениями			
			if ($category_images && is_file(DIR_IMAGE . $category['image'])) {
				$this->load->model('tool/image');
				//метод создает изображения указанного размера
				$image = $this->model_tool_image->resize($category['image'], $category_images_weight, $category_images_height);
			} else {
				$image = '';
			}
			$data['is_home'] = !isset($this->request->get['route']) || ($this->request->get['route'] == 'common/home');
			$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,
				'childrenc'    => $childrenc_data,
				'href'        => $this->url->link('product/category', 'path=' . $category['category_id']),
				'image' => $image,
			);
		}	
		//Добавляем свои стили
		
		return $this->load->view('extension/module/categoryKsl', $data);
	}
}

 

 

Шаблон:

Спойлер


<div class="list-group">
    <?php foreach ($categories as $category) { ?>
        <?php if ($category['category_id'] == $category_id) { ?>
            <div class="list-group-item active current">
                <div class="list-group-item-block">
                    <a href="" data-href="<?=$category['href']?>">
                        <img src="<?=$category['image']?>" class="img-responsive" />
                        <span class="img-cat-name cat-name"><?=$category['name']?></span>
                    </a>
                </div>
                <div class="list-group-item-child left">
                    <div class="list-group-arrow-back">
                        <i class="fa fa-long-arrow-left" aria-hidden="true"></i>
                        <span><?=$category['name']?></span>
                    </div>
                    <?php if ($category['children']) { ?>
                        <?php foreach ($category['children'] as $child) { ?>                        
                            <?php if ($child['category_id'] == $child_id) { ?>
                                <a href="<?=$child['href']?>" class="current">
                                    <img src="<?=$child['image']?>" class="img-responsive" />
                                    <span><?=$child['name']?></span>
                                    
<?php if ($category['childrenc']) { ?>
  <?php foreach ($category['childrenc'] as $childc) { ?>
    <?php if ($childc['category_id'] == $childc_id) { ?>
      <span><?=$childc['name']?></span>
    <?php } else { ?>
      <span><?=$childc['name']?></span>
    <?php } ?>
  <?php } ?>
<?php } ?>
                                    
                                    
                                </a>
                            <?php } else { ?>
                                <a href="<?=$child['href']?>">
                                    <img src="<?=$child['image']?>" class="img-responsive" />
                                    <span><?=$child['name']?></span>
                                    
                                    <?php if ($category['childrenc']) { ?>

  <?php foreach ($category['childrenc'] as $childc) { ?>
    <?php if ($childc['category_id'] == $childc_id) { ?>
      <span><?=$childc['name']?></span>
    <?php } else { ?>
      <span><?=$childc['name']?></span>
    <?php } ?>
  <?php } ?>
<?php } ?>
                                    
                                    
                                </a>
                            <?php } ?>                               
                        <?php } ?>
                    <?php } else { ?>
                    <?php } ?>
                    <div class="categories-left-close-btn">
                        <div class="categories-left-close-btn-wrapper"></div>
                    </div>
                </div>
            </div>
        <?php } else { ?>
                <div class="list-group-item">
                    <div class="list-group-item-block">
                        <a href="" data-href="<?=$category['href'] ?>">
                            <img src="<?=$category['image']?>" class="img-responsive" />
                            <span class="img-cat-name cat-name"><?=$category['name']?></span>
                        </a>
                    </div>
                    <div class="list-group-item-child left">
                        <div class="list-group-arrow-back">
                            <i class="fa fa-long-arrow-left" aria-hidden="true"></i>
                            <a href="<?=$category['href'] ?>" class="parent-cat-name">
                                <span><?=$category['name']?></span>
                                <span class="parent-cat-name-description">Перейти в категорию</span>
                            </a>
                        </div>
                        <?php if ($category['children']) { ?>
                            <?php foreach ($category['children'] as $child) { ?>                        
                                <?php if ($child['category_id'] == $child_id) { ?>
                                    <a href="<?=$child['href']?>" class="current">
                                        <img src="<?=$child['image']?>" class="img-responsive" />
                                        <span><?=$child['name']?></span>
                                        
                                        
<?php if ($category['childrenc']) { ?>
  <?php foreach ($category['childrenc'] as $childc) { ?>
    <?php if ($childc['category_id'] == $childc_id) { ?>
      <span><?=$childc['name']?></span>
    <?php } else { ?>
      <span><?=$childc['name']?></span>
    <?php } ?>
  <?php } ?>
<?php } ?>
                                        
                                        
                                        
                                        
                                    </a>
                                <?php } else { ?>
                                    <a href="<?=$child['href']?>">
                                        <img src="<?=$child['image']?>" class="img-responsive" />
                                        <span><?=$child['name']?></span>
                                        
                                        
                                        
<?php if ($category['childrenc']) { ?>
  <?php foreach ($category['childrenc'] as $childc) { ?>
    <?php if ($childc['category_id'] == $childc_id) { ?>
      <span><?=$childc['name']?></span>
    <?php } else { ?>
      <span><?=$childc['name']?></span>
    <?php } ?>
  <?php } ?>
<?php } ?>
                                        
                                        
                                        
                                        
                                    </a>
                                <?php } ?>                               
                            <?php } ?>
                        <?php } else { ?>
                        <?php } ?>
                        <div class="categories-left-close-btn">
                            <div class="categories-left-close-btn-wrapper"></div>
                        </div>
                    </div>
                </div>
        <?php } ?>
    <?php }  ?>
</div>

 

 

Нужный результат не получил.

Выводит такое:

 

 

Спойлер

Screenshot_20211018-160950~2.png

 

Edited by DenKuzmin
Link to post
Share on other sites

31 минуту назад, DenKuzmin сказал:

Попробовал переписать так:

  Показать контент

Screenshot_20211018-160950~2.png

 

 

Посмотрите как вот тут например, адаптируйте 

 

https://www.opencart.com/index.php?route=marketplace/extension/info&member_token=q2pGcDBETAHxVregCQDQLtBm5cwSt20F&extension_id=30089&filter_license=0&filter_download_id=47

Link to post
Share on other sites

Переделал вот так. Ошибок нет и категории 3го уровня не выводит.

 

Контроллер:

Спойлер

<?php
class ControllerExtensionModuleCategoryKsl extends Controller {
	public function index() {
	
		//Определяем текущую категорию (path из GET запроса)
		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[1])) {
			$data['child_2_id'] = $parts[1]; //дочерняя
		} else {
			$data['child_2_id'] = 0;
		}

		if($data['child_id']) $data['category_id'] = null;
		if($data['child_2_id']) $data['category_id'] = null;

		$this->load->model('catalog/category');
		$this->load->model('catalog/product');
		$data['categories'] = array();
		$categories = $this->model_catalog_category->getCategories(0);

		//Загружаем модель которая работает с таблицей настроек модулей (oc_setting)
		$this->load->model('setting/setting');

		//Получаем значение - показывать ли изображения
		$category_images = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_images'];
		//Получаем значение - размеры изображений
		$category_images_height = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_img_height'];
		$category_images_weight = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_img_weight'];

		//Для дочерних категорий
		$category_children = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_children'];
		$category_child_images = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_child_images'];
		$category_child_images_height = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_child_img_height'];
		$category_child_images_weight = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_child_img_weight'];

		//Массив категорий, которые не нужно выводить
		if(isset($this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_checkbox'])){
			$categoryKsl_checkbox = $this->model_setting_setting->getSetting('categoryKsl')['categoryKsl_checkbox'];
		} else $categoryKsl_checkbox = null;

		foreach ($categories as $category) {
			//Пропускаем, если в настройках указано отключить данную категорию
        $children_data = array();
				$children = $this->model_catalog_category->getCategories($category['category_id']);
				
				
				foreach($children as $child) {
          $children_data_2 = array();
					$children_2 = $this->model_catalog_category->getCategories($child['category_id']);
					
			     $filter_data = array('filter_category_id' => $child['category_id'], 'filter_sub_category' => true);

					
				}


			if (isset($categoryKsl_checkbox[$category['category_id']])) {
				continue;				
			}
			
			$children_data = array();
			if ($category_children) {
				$children = $this->model_catalog_category->getCategories($category['category_id']);

				foreach($children as $child) {
				  
          $children_data_2 = array();
					$children_2 = $this->model_catalog_category->getCategories($child['category_id']);
				  
					//Пропускаем, если в настройках указано отключить данную категорию
					if (isset($categoryKsl_checkbox[$child['category_id']])) {
						continue;				
					}
			
					$filter_data = array('filter_category_id' => $child['category_id'], 'filter_sub_category' => true);

					//Работа с изображениями			
					if ($category_child_images && is_file(DIR_IMAGE . $child['image'])) {
						$this->load->model('tool/image');
						//метод создает изображения указанного размера
						$image = $this->model_tool_image->resize($child['image'], $category_child_images_weight, $category_child_images_height);
					} else {
						$image = '';
					}
			
					$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']),
						'children_2'  => $children_data_2,
						'image' => $image,
					);
					
				}
			}
			
			$filter_data = array(
				'filter_category_id'  => $category['category_id'],
				'filter_sub_category' => true
			);

			//Работа с изображениями			
			if ($category_images && is_file(DIR_IMAGE . $category['image'])) {
				$this->load->model('tool/image');
				//метод создает изображения указанного размера
				$image = $this->model_tool_image->resize($category['image'], $category_images_weight, $category_images_height);
			} else {
				$image = '';
			}
			$data['is_home'] = !isset($this->request->get['route']) || ($this->request->get['route'] == 'common/home');
			
			$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']),
				'image' => $image,
			);
		}	
		//Добавляем свои стили
	
	
	
			foreach ($categories as $category) {
				

				foreach($children as $child) {
				
					$children_data_2 = array();
					$children_2 = $this->model_catalog_category->getCategories($child['category_id']);
					
					$filter_data = array('filter_category_id' => $child['category_id'], 'filter_sub_category' => true);
					
					//Sub-Category - 1st Level
					$children_data[] = array(
						'category_id' => $child['category_id'],
						'name' => $child['name'],
						'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']),
						'children_2'  => $children_data_2
					);
				}
			//}

			$filter_data = array(
				'filter_category_id'  => $category['category_id'],
				'filter_sub_category' => true
			);
			
			//Main Category - 0th Level
			$data['categories'][] = array(
				'category_id' => $category['category_id'],
				'name'        => $category['name'],
				'children'    => $children_data,
				'href'        => $this->url->link('product/category', 'path=' . $category['category_id'])
			);
		}
	
	
	
	
	
	
		return $this->load->view('extension/module/categoryKsl', $data);
	}
}

 

 

Шаблон (tpl):

Спойлер

<div class="list-group">

    <?php foreach ($categories as $category) { ?>

        <?php if ($category['category_id'] == $category_id) { ?>
            <div class="list-group-item active current">
                <div class="list-group-item-block">
                    <a href="" data-href="<?=$category['href']?>">
                        <img src="<?=$category['image']?>" class="img-responsive" />
                        <span class="img-cat-name cat-name"><?=$category['name']?></span>
                    </a>
                </div>
                <div class="list-group-item-child left">
                    <div class="list-group-arrow-back">
                        <i class="fa fa-long-arrow-left" aria-hidden="true"></i>
                        <span><?=$category['name']?></span>
                    </div>
                    <?php if ($category['children']) { ?>
                        <?php foreach ($category['children'] as $child) { ?>                        
                            <?php if ($child['category_id'] == $child_id) { ?>
                                <a href="<?=$child['href']?>" class="current">
                                    <img src="<?=$child['image']?>" class="img-responsive" />
                                    <span><?=$child['name']?></span>


<?php if ($child['children_2']) { ?>   
  <?php foreach ($child['children_2'] as $child_2) { ?>
    <span>Подкатегория</span>
  <?php } ?>
<?php } ?>              
                                    
                                </a>
                            <?php } else { ?>
                                <a href="<?=$child['href']?>">
                                    <img src="<?=$child['image']?>" class="img-responsive" />
                                    <span><?=$child['name']?></span>
                                    

<?php if ($child['children_2']) { ?>   
  <?php foreach ($child['children_2'] as $child_2) { ?>
    <span>Подкатегория</span>
  <?php } ?>
<?php } ?>    
                                    
                                </a>
                            <?php } ?>                               
                        <?php } ?>
                    <?php } else { ?>
                    <?php } ?>
                    <div class="categories-left-close-btn">
                        <div class="categories-left-close-btn-wrapper"></div>
                    </div>
                </div>
            </div>
        <?php } else { ?>
                <div class="list-group-item">
                    <div class="list-group-item-block">
                        <a href="" data-href="<?=$category['href'] ?>">
                            <img src="<?=$category['image']?>" class="img-responsive" />
                            <span class="img-cat-name cat-name"><?=$category['name']?></span>
                        </a>
                    </div>
                    <div class="list-group-item-child left">
                        <div class="list-group-arrow-back">
                            <i class="fa fa-long-arrow-left" aria-hidden="true"></i>
                            <a href="<?=$category['href'] ?>" class="parent-cat-name">
                                <span><?=$category['name']?></span>
                                <span class="parent-cat-name-description">Перейти в категорию</span>
                            </a>
                        </div>
                        <?php if ($category['children']) { ?>
                            <?php foreach ($category['children'] as $child) { ?>                        
                                <?php if ($child['category_id'] == $child_id) { ?>
                                    <a href="<?=$child['href']?>" class="current">
                                        <img src="<?=$child['image']?>" class="img-responsive" />
                                        <span><?=$child['name']?></span>
                                        
                                        
<?php if ($child['children_2']) { ?>   
  <?php foreach ($child['children_2'] as $child_2) { ?>
    <span>Подкатегория</span>
  <?php } ?>
<?php } ?>        
                                        
                                        
                                        
                                    </a>
                                <?php } else { ?>
                                    <a href="<?=$child['href']?>">
                                        <img src="<?=$child['image']?>" class="img-responsive" />
                                        <span><?=$child['name']?></span>
                                        
                                        
                                        
<?php if ($child['children_2']) { ?>   
  <?php foreach ($child['children_2'] as $child_2) { ?>
    <span>Подкатегория</span>
  <?php } ?>
<?php } ?>        
                                        
                                        
                                        
                                    </a>
                                <?php } ?>                               
                            <?php } ?>
                        <?php } else { ?>
                        <?php } ?>
                        <div class="categories-left-close-btn">
                            <div class="categories-left-close-btn-wrapper"></div>
                        </div>
                    </div>
                </div>
        <?php } ?>
    <?php }  ?>
</div>

 

 

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Similar Content

    • By crd
      Лендинг дизайн, оформление.. 70 модульных позиций в 24х блоках - oc-2.3x
      эта версия для opencart 3х
      для опенкарт 2.3х - тут
      для opencart 2.0 - 2.1 - 2.2  - тут
       
       
      ПРЕЖДЕ ЧЕМ ПРИОБРЕСТИ ВНИМАТЕЛЬНО ЧИТАЕМ ОПИСАНИЕ!
       
      В модуле никогда не было стучалок и прочей лапши - всем, кто скачал где то - где модуль неофициально представлен - мои поздравления с вирусами и свободным доступом к вашей базе данных 
       
      Забудьте об однообразном расположении позиций вывода модулей как инкубационные яйца))
      Позаботьтесь о презентабельной подаче вашего сайта - это не только лицо вашей компании но и ваше лицо!
      Модуль HYPER Positions позволяет увеличить количество позиции и вывести любой модульный контент как пожелает ваша фантазия, позволяя более презентабельно и эффективно оформить любую страницу вашего сайта!

      Модуль добавляет к уже имеющимся блокам ещё 24 блочных позиций и 70 колонок вывода модулей в 5 секциях!
      Внедрены четыре вида блоков обшее количество которых 24 штуки каждый из которых так же можно растянуть на всю ширину экрана
      Восемь блоков четырех колоночных позиций = 32 модульных позиций Шесть блоков трех колоночных позиций = 18 модульных позиций Пять блоков трех колоночных позиций по типу стандарта = 15 модульных позиций Пять блоков с одно модульной позицией = 5 модульных позиций Возможность перетаскивать модули по сортировке
        ДЕМО  с оформлением
      АДМИНКА  demo\demo
           все модульные позиции              один из вариантов             чем ни лендинг?))

             

      Схемы настройки блоков
      кликните по картинке и откройте в полном размере
              
       
      Вывести можно хоть все позиции но лучше то что нужно!
       
      Установка:
      В административной части во вкладке *Установка дополнений* загрузить архив. В административной части во вкладке *Менеджер дополнений* нажать кнопку обновления. Ни какие файлы не затираются
      --------------
       
      Совместим с модулем Accordion & Tabs & Steps, Faq & HowTo Microdata.
       
      Возможно будет нужна адаптация под ваш шаблон  нужно смотреть походу..
      в любом случае если, что то не так пишите в тему поддержки - попробуем сделать
      ВНИМАНИЕ!
      Не подходит для использования под дебильные шаблоны по типу Jornal, Fastor и им подобных!
      Поддержка и адаптация под прочие шаблоны возможна только на ветке 2.3x!
      Прежде чем приобрести модуль уточняйте все моменты в теме поддержки!
       
      Если вы купили модуль и он у вас не корректно установился, не заработал и т.д. и вы мне отказываете в доступах для поддержки - значит поддержка вам ненужна
       
      Выражаю отдельную благодарность за прямое и косвенное участие в разработке модуля:
         @crd , @chukcha
      - а также всем пользователям кто приобрёл это дополнение!
       
      Благодарность ваша это оставить отзыв к файлу. Это мотивирует нас на развитие модуля.
      Спасибо вам за спасибо!)
      Пользуйтесь на здоровье)
       
      Прежде чем купить читайте описание!
      Если не смотря на это вы всё же приобрели то знайте Модуль возврату или обмену не подлежит! Учтите этот момент!
       
      ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ!
       
      -


    • By crd
      999 13.89
      Скачать/Купить дополнение


      +70 позиций модулей \ HYPER Positions - oc3x
      Лендинг дизайн, оформление.. 70 модульных позиций в 24х блоках - oc-2.3x
      эта версия для opencart 3х
      для опенкарт 2.3х - тут
      для opencart 2.0 - 2.1 - 2.2  - тут
       
       
      ПРЕЖДЕ ЧЕМ ПРИОБРЕСТИ ВНИМАТЕЛЬНО ЧИТАЕМ ОПИСАНИЕ!
       
      В модуле никогда не было стучалок и прочей лапши - всем, кто скачал где то - где модуль неофициально представлен - мои поздравления с вирусами и свободным доступом к вашей базе данных 
       
      Забудьте об однообразном расположении позиций вывода модулей как инкубационные яйца))
      Позаботьтесь о презентабельной подаче вашего сайта - это не только лицо вашей компании но и ваше лицо!
      Модуль HYPER Positions позволяет увеличить количество позиции и вывести любой модульный контент как пожелает ваша фантазия, позволяя более презентабельно и эффективно оформить любую страницу вашего сайта!

      Модуль добавляет к уже имеющимся блокам ещё 24 блочных позиций и 70 колонок вывода модулей в 5 секциях!
      Внедрены четыре вида блоков обшее количество которых 24 штуки каждый из которых так же можно растянуть на всю ширину экрана
      Восемь блоков четырех колоночных позиций = 32 модульных позиций Шесть блоков трех колоночных позиций = 18 модульных позиций Пять блоков трех колоночных позиций по типу стандарта = 15 модульных позиций Пять блоков с одно модульной позицией = 5 модульных позиций Возможность перетаскивать модули по сортировке
        ДЕМО  с оформлением
      АДМИНКА  demo\demo
           все модульные позиции              один из вариантов             чем ни лендинг?))

             

      Схемы настройки блоков
      кликните по картинке и откройте в полном размере
              
       
      Вывести можно хоть все позиции но лучше то что нужно!
       
      Установка:
      В административной части во вкладке *Установка дополнений* загрузить архив. В административной части во вкладке *Менеджер дополнений* нажать кнопку обновления. Ни какие файлы не затираются
      --------------
       
      Совместим с модулем Accordion & Tabs & Steps, Faq & HowTo Microdata.
       
      Возможно будет нужна адаптация под ваш шаблон  нужно смотреть походу..
      в любом случае если, что то не так пишите в тему поддержки - попробуем сделать
      ВНИМАНИЕ!
      Не подходит для использования под дебильные шаблоны по типу Jornal, Fastor и им подобных!
      Поддержка и адаптация под прочие шаблоны возможна только на ветке 2.3x!
      Прежде чем приобрести модуль уточняйте все моменты в теме поддержки!
       
      Если вы купили модуль и он у вас не корректно установился, не заработал и т.д. и вы мне отказываете в доступах для поддержки - значит поддержка вам ненужна
       
      Выражаю отдельную благодарность за прямое и косвенное участие в разработке модуля:
         @crd , @chukcha
      - а также всем пользователям кто приобрёл это дополнение!
       
      Благодарность ваша это оставить отзыв к файлу. Это мотивирует нас на развитие модуля.
      Спасибо вам за спасибо!)
      Пользуйтесь на здоровье)
       
      Прежде чем купить читайте описание!
      Если не смотря на это вы всё же приобрели то знайте Модуль возврату или обмену не подлежит! Учтите этот момент!
       
      ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ!
       
      -


      Добавил crd Добавлено 26.02.2019 Категория Меню, дизайн, внешний вид Системные требования прямые руки Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 3.0 ocStore 3.0 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет  
    • By mickeyarchviz
      Доброго времени суток. Подскажите пожалуйста, какие модули обязательно нужно установить для SEO продвижения?
    • By vvo
      Приветствую
       
      Есть скрипт синхронизации цен и остатков с маркетплейсом по API на CMS Prestashop.
      Надо его перенести на Ocstore2.3.
       
      Документация по API есть.
       
      Выглядит скрипт так:
       
      скрипт запускался по крону, а также был встроен вызов при изменении цены/количества в админке и после оформления заказа.
       
      Кому интересно, пишите в личку цену, сроки.
    • By Venter
      Модуль добавляет подгрузку товаров.
      Особенностью модуля является создание разных вариантов подгрузки на разные страницы
       
      Free версия модуля ЗДЕСЬ
       
      Что может модуль:
      Установка заголовка блока Установкам лимита загрузки товаров первого блока Установка лимита загрузки товаров ajax Установка ширины и высоты изображения в блоке товара Установка кол-ва вывода товаров в одном ряду Включение Бесконечной подгрузки товаров (получается как лента в соц сетях) Если Бесконечная подгрузка отключена, есть возможность вывода товаров или от начала к концу или от конца к началу (ASC - DESC) Установка подгрузки товаров при прокрутке страницы  
      Локализация: ru-ru  и  en-gb
       
      ВНИМАНИЕ!!!!
      Включенная опция рандомной подгрузки использует рандомную выборку из базы данных RAND. При кол-ве товаров более 10000 может быть нагрузка на сервер, не желательно при большом кол-ве товаров ставить большое число подгрузки товаров и тем более включать подгрузку при прокрутке страницы.
       
       
      Про адаптацию выводимых блоков:
      Блок (карточка) товара установлен от дефолной темы опенкарт.
      По поводу замены писать в личку. Платно? Смотря с каким зверем дело иметь )))
       
      Модуль протестирован: Opencart 3.0.2   ocStore 3.0.2
       
      В дальнейшем будет версия под опенкарт 2.3
       
      Смотрим видео про модуль
       
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

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.