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

[РЕШЕНО] Разное боковое меню в зависимости от выбранной категории


Recommended Posts

Ребята привет!


 


Подскажите, может кто сталкивался с таким. 


 


Мне надо сделать следующее:


 


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


 


Кто сталкивался помогите плизз!


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


С ходу на ум приходит только костыль с привязкой к категории с классом .active

Смысл в том, что в tpl'ке модуля для обычных категорий прописываем dispay:none, а для категорий с классом .active dispay:block

 

и подгружать эту tpl'ку только на маршрутах product/category и product/product

 

Но это жесткий костыль... просто первое что на ум пришло...

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

С ходу на ум приходит только костыль с привязкой к категории с классом .active

Смысл в том, что в tpl'ке модуля для обычных категорий прописываем dispay:none, а для категорий с классом .active dispay:block

 

и подгружать эту tpl'ку только на маршрутах product/category и product/product

 

Но это жесткий костыль... просто первое что на ум пришло...

 

Жестковато для моего мозга))) но спасибо за наводку

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


Жесткость заключается не в сложности, а в иррациональном подходе...

А как это сделать могу подсказать без проблем :)

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

Жесткость заключается не в сложности, а в иррациональном подходе...

А как это сделать могу подсказать без проблем :)

 

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

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


1. В директории \catalog\view\theme\default\template\module находите category.tpl и создаете его копию с именем category2.tpl

2. В category2.tpl находите строку 

<a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a> 

и заменяете ее на 

<a style="display: none;" href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>

3. В директории \catalog\controller\module находите category.php 

4. В category.php находите текст 

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

и заменяете его на 

if ($this->request->get['route']=='product/category' or $this->request->get['route']=='product/product') {
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/category2.tpl')) {
$this->template = $this->config->get('config_template') . '/template/module/category2.tpl';
} else {
$this->template = 'default/template/module/category2.tpl';
}
} else {
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';
}
}

Если я ничего не упустил, то должно сработать...

  • +1 2
Надіслати
Поділитися на інших сайтах

  • 2 weeks later...
  • 3 weeks later...

Ну так рабочее или нет? Тоже заинтересовало

 

НГ был долгим)) Сейчас начинаю пробовать метод который подсказал xds он же единственный в своем роде))) и сразу отпишу.

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


Привет xds твой жесткий костыль работает. Сделала сейчас. только на главной выдает вот это

Notice: Undefined index: route in /home/c/тутмоя база видимо/мой урл/public_html/catalog/controller/module/category.php on line 66Notice:
Надіслати
Поділитися на інших сайтах


 

Привет xds твой жесткий костыль работает. Сделала сейчас. только на главной выдает вот это

Notice: Undefined index: route in /home/c/тутмоя база видимо/мой урл/public_html/catalog/controller/module/category.php on line 66Notice:

 

Что бы сказать что-то вразумительное нужно весь код контролера увидеть... киньте под спойлер

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

Что бы сказать что-то вразумительное нужно весь код контролера увидеть... киньте под спойлер

<?php class ControllerModuleCategory extends Controller { protected function index($setting) { $this->language->load('module/category'); $this->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])) { $this->data['category_id'] = $parts[0]; } else { $this->data['category_id'] = 0; } if (isset($parts[1])) { $this->data['child_id'] = $parts[1]; } else { $this->data['child_id'] = 0; } $this->load->model('catalog/category'); $this->load->model('catalog/product'); $this->data['categories'] = array(); $categories = $this->model_catalog_category->getCategories(0); foreach ($categories as $category) { $total = $this->model_catalog_product->getTotalProducts(array('filter_category_id' => $category['category_id'])); $children_data = array(); $children = $this->model_catalog_category->getCategories($category['category_id']); foreach ($children as $child) { $data = array( 'filter_category_id' => $child['category_id'], 'filter_sub_category' => true ); $product_total = $this->model_catalog_product->getTotalProducts($data); $total += $product_total; $children_data[] = array( 'category_id' => $child['category_id'], 'name' => $child['name'] . ($this->config->get('config_product_count') ? ' (' . $product_total . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']) ); } $this->data['categories'][] = array( 'category_id' => $category['category_id'], 'name' => $category['name'] . ($this->config->get('config_product_count') ? ' (' . $total . ')' : ''), 'children' => $children_data, 'href' => $this->url->link('product/category', 'path=' . $category['category_id']) ); } if ($this->request->get['route']=='product/category' or $this->request->get['route']=='product/product') {if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/category2.tpl')) {$this->template = $this->config->get('config_template') . '/template/module/category2.tpl';} else {$this->template = 'default/template/module/category2.tpl';}} else {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(); }}?>

Вот код контроллера category.php Тема у меня не дефолтная но по всей видимости это не влияет, я заменяла название темы в коде который кинули на свою тему и та же ситуация

 

if ($this->request->get['route']=='product/category' or $this->request->get['route']=='product/product') {
Это 66 я строка)) может поможет в выяснении
Надіслати
Поділитися на інших сайтах


Ну так рабочее или нет? Тоже заинтересовало

 

Рабочее!!! 

 

У меня в контроллере 66 строка выдавала ошибку на главной, xds написал решение и оно то же рабочее, вот если что

 

Заменить 

if ($this->request->get['route']=='product/category' or $this->request->get['route']=='product/product') {

На

if (isset($this->request->get['route']) and ($this->request->get['route']=='product/category' or $this->request->get['route']=='product/product')) {

Благодарю xds за эксклюзивное решение проблемы!!!))

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


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

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

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

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

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

Вхід

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

Вхід зараз

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

Important Information

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