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

Как выводить только необходимые категории в модуле category acardion?


ghjy08

Recommended Posts

Использую тему  bigshop для opencart 1.5.4, в которой есть встроенный модуль category acardion. Модуль category acardion выводит в левой колонке все категории, которые созданы и включены в opencart.

Вопрос: Как сделать так, чтобы в модуле category acardion выводились только выбранные мною категории. Также, как это реализовано в горизонтальном меню. Желательно через админку. Но если такой возможности нет, то подойдет любой другой метод.
Пробовал прописать в css 

 
.list-item:nth-child(1)
{
display:none;
}
Но почему-то убираются все пункты.
То же и с :
.list-item:first-child
{
display:none;
}
Подскажите пожалуйста, как в category acardion оставить только те категории, которые мне нужны?! В горизонтальном меню я выставил нужные мне категории, а  в левом выводятся все, которые есть, поэтому в вертикальном меню получается дубль категорий, которые я выводил в горизонтальном меню.
b6e8c534.jpg
Надіслати
Поділитися на інших сайтах


PHP я знаю, с MVC знаком. А вот с opencart второй день осваиваю. Понял что нужно юзать контроллер \catalog\controller\module\category_accordion.php

Только нужно сначала разобраться с тем, как устроены модули в  opencart. Если кто подсабит в ускорении процесса, буду признателен ))

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


На всякий случай добавлю код файла category_accordion.php, может кто подсабит:

<?php
class ControllerModuleCategoryAccordion extends Controller {
	protected $category_id = 0;
	protected $parent_id = 0;
	protected $path = array();
	
	/*------------------------------------------------------------------------------*/

	protected function index() {
		$this->language->load('module/category_accordion');
	   	$this->data['heading_title'] = $this->language->get('heading_title');
		$this->load->model('catalog/category');
		
		if (isset($this->request->get['path'])) {
			$this->path = explode('_', $this->request->get['path']);
			
			$this->category_id = end($this->path);
		}
		
		$this->data['category_accordion'] = $this->loadCategories(0, '', $this->category_id);
		$this->data['category_accordion_cid'] = $this->category_id;
		$this->data['category_accordion_jquery_path'] = $this->config->get('config_url') . '/catalog/view/javascript/jquery';
		
		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/category_accordion.tpl')) {
			$this->template = $this->config->get('config_template') . '/template/module/category_accordion.tpl';
		} else {
			$this->template = 'default/template/module/category_accordion.tpl';
		}
		
		$this->render();
	}
	
	/*------------------------------------------------------------------------------*/

	protected function loadCategories($parent_id, $current_path = '', $cid = '') {
		$category_id = array_shift($this->path);
		$this->getCategoriesFromdb($category_id);
		
		$results = $this->model_catalog_category->getCategories($parent_id);
		
		$ret_string = '';
		if ($results) { 
			if ($parent_id == 0) {
				$ret_string .= '<ul id="custom_accordion">'; 
			} else {
				$ret_string .= '<ul>'; 
			}
		}
		
		foreach ($results as $result) {	
			if (!$current_path) {
				$new_path = $result['category_id'];
			} else {
				$new_path = $current_path . '_' . $result['category_id'];
			}
			
			$ret_string .= '<li class="category' . $result['category_id'] . '">';
			
			$children = '';
			$children = $this->loadCategories($result['category_id'], $new_path);
			
			if ($cid == $result['category_id']) {
				$classactive = 'active';
			} else {
				$classactive = '';
			}
			
			
			if ($children) { 
				$ret_string .= '<a class="cuuchild ' . $classactive . '" href="' . $this->url->link('product/category','path=' .  $new_path)  . '">' . $result['name'] . '</a> <span class="down"></span>';
			} else { 
				$ret_string .= '<a class="nochild ' . $classactive . '" href="' . $this->url->link('product/category','path=' .  $new_path)  . '">' . $result['name'] . '</a>';
			}			
			
        	$ret_string .= $children;
        	$ret_string .= '</li>'; 
		}
 		
		if ($results) $ret_string .= '</ul>'; 
		return $ret_string;
	}
	
	/*------------------------------------------------------------------------------*/
	
	protected function getCategoriesFromdb($category_id) {
		if($category_id <=0) return false;
		$query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) LEFT JOIN " . DB_PREFIX . "category_to_store c2s ON (c.category_id = c2s.category_id) WHERE c.category_id = '" . (int)$category_id . "' AND cd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND c.status = '1'");
		
		if ($query->row['parent_id'] == 0) {
			$this->parent_id = $category_id;
		} else { 
			$this->getCategoriesFromdb($query->row['parent_id']);
		}
	}	
}
?>
Надіслати
Поділитися на інших сайтах


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

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

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

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

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

Вхід

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

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

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

Important Information

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