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

Как изменить вывод дерева категорий?


jam214

Recommended Posts

Добрый день.

Я хочу реализовать вывод меню категорий как на платном шаблоне CartMania.

В opencart категории выводятся вот так:

<ul>
  <li>Категория
     <ul>
        <li>Подкатегория</li>
        <li>Подкатегория</li>
     </ul>
  </li>
</ul>
Соответственно получается вот так: post-8350-0-22674300-1305015458_thumb.jpg

Мне нужно сделать что бы выводилось вот так:

<ul>
<li><h3>Категория1</h3></li>
<li>Подкатегория1</li>
<li>Подкатегория1</li>
</ul>
<ul>
<li><h3>Категория2</h3></li>
<li>Подкатегория2</li>
<li>Подкатегория2</li>
</ul>
Катртинка: post-8350-0-37628600-1305014624_thumb.jpg

Я понимаю что категории выводит файл catalog/controller/module/category.php

<?php  
class ControllerModuleCategory extends Controller {
	protected $category_id = 0;
	protected $path = array();
	
	protected function index() {
		$this->language->load('module/category');
		
    	$this->data['heading_title'] = $this->language->get('heading_title');
		
		$this->load->model('catalog/category');
		$this->load->model('tool/seo_url');
		
		if (isset($this->request->get['path'])) {
			$this->path = explode('_', $this->request->get['path']);
			
			$this->category_id = end($this->path);
		}
		
		$this->data['category'] = $this->getCategories(0);
												
		$this->id = 'category';

		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/category.tpl')) {
			$this->template = $this->config->get('config_template') . '/template/module/category.tpl';
		} else {
			$this->template = 'default/template/module/category.tpl';
		}
		
		$this->render();
  	}
	
	protected function getCategories($parent_id, $current_path = '') {
		$category_id = array_shift($this->path);
		
		$output = '';
		
		$results = $this->model_catalog_category->getCategories($parent_id);
		
		if ($results) { 
			$output .= '<ul>';
    	}
		
		foreach ($results as $result) {	
			if (!$current_path) {
				$new_path = $result['category_id'];
			} else {
				$new_path = $current_path . '_' . $result['category_id'];
			}
			
			$output .= '<li>';
			
			$children = '';
			
			if ($category_id == $result['category_id']) {
				$children = $this->getCategories($result['category_id'], $new_path);
			}
			
			if ($this->category_id == $result['category_id']) {
				$output .= '<a href="' . $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $new_path)  . '"><b>' . $result['name'] . '</b></a>';
			} else {
				$output .= '<a href="' . $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $new_path)  . '">' . $result['name'] . '</a>';
			}
			
        	$output .= $children;
        
        	$output .= '</li>'; 
		}
 
		if ($results) {
			$output .= '</ul>';
		}
		
		return $output;
	}		
}
?>
Но у меня не как не получается изменить его до нужных результатов. Помогите пожалуйста.
Надіслати
Поділитися на інших сайтах


Добрый день.

Я хочу реализовать вывод меню категорий как на платном шаблоне CartMania.

В opencart категории выводятся вот так:

<ul>
  <li>Категория
     <ul>
        <li>Подкатегория</li>
        <li>Подкатегория</li>
     </ul>
  </li>
</ul>
Вот же тема с ответом, читайте ответ

делаете для каждого пункта индивидуальный ай-ди, а дальше - ЦСС вам поможет

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


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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

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

Important Information

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