Перейти к содержанию
ghjy08

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

Рекомендуемые сообщения

Использую тему  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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.