Marusia

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

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

Marusia    4

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


 


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


 


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


 


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


 


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


Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
xds    70

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

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marusia    4

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

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

 

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
xds    70

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marusia    4

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
xds    70

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marusia    4

Спасибо большое!!! Я испытаю и сразу отпишусь, рабочее или нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
YelloVV    1

Спасибо большое!!! Я испытаю и сразу отпишусь, рабочее или нет.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marusia    4

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marusia    4

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
xds    70

 

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marusia    4

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

<?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 я строка)) может поможет в выяснении

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
xds    70

А на магазин можно ссылку?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marusia    4

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

 

Рабочее!!! 

 

У меня в контроллере 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 за эксклюзивное решение проблемы!!!))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От iDiy

      599.00 руб
      Скачать/Купить дополнение


      Расширенный модуль меню (custom menu)
      Расширенный модуль меню (custom menu)
      Надежный и функциональный модуль витрины категорий, горизонтального и вертикального меню, позволяет создавать меню из произвольных элементов (custom ссылок) и/или использовать категории, товары, бренды и статьи из существующего каталога магазина.
       
      Особенности:
      неограниченный уровень вложенности; выборочные элементы меню (категории, производители, статьи, товары); произвольные ссылки с собственными параметрами (группы, классы, иконки...); горизонтальное адаптивное меню (Amazon стиль); вертикального меню в трех стилях: "Accordion", меню "Flyout" и меню "Drill Down"; многоуровневая витрина с эффектом "Accordion"; отображение меню для конкретной категории/производителя/товара; экспорт/импорт настроек модуля и структуры элементов меню; функция скрытия пустых(без товара) категорий и производителей; количество товаров категории и производителя без потери производительности; поддержка мульти-магазинов и групп пользователей; подключение и использование произвольных стилей и скриптов; всего 1 запрос к БД для всех категорий + товаров + производителей + статьи; всего 1 запрос к БД при подсчете количества товаров категории/производителя; модуль не заменяет системных файлов и не использует кеш; простая установка в меню дополнений...  
      Совместимость: OpenCart, ocStore, ocShop и другие сборки версий 2.1.x - 3.х
      Системные требования: PHP 5.6 - 7.0, Ioncube Loader 6+
       
      Демонстрация работы модуля на примере:
      Витрины категорий, Категории, Товара, Бренда
      Админ демо (логин/пароль: demo/demo)
       
      Добавил iDiy Добавлено 29.06.2017 Категория Модули Системные требования PHP 5.6 - 7.0, Ioncube Loader 6+ Сайт разработчика Старая цена Метод активации По запросу на почту Ioncube Loader Требуется OpenCart 3.0
      2.3
      2.2
      2.1 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1  
    • От iDiy
      Расширенный модуль меню (custom menu)
      Надежный и функциональный модуль витрины категорий, горизонтального и вертикального меню, позволяет создавать меню из произвольных элементов (custom ссылок) и/или использовать категории, товары, бренды и статьи из существующего каталога магазина.
       
      Особенности:
      неограниченный уровень вложенности; выборочные элементы меню (категории, производители, статьи, товары); произвольные ссылки с собственными параметрами (группы, классы, иконки...); горизонтальное адаптивное меню (Amazon стиль); вертикального меню в трех стилях: "Accordion", меню "Flyout" и меню "Drill Down"; многоуровневая витрина с эффектом "Accordion"; отображение меню для конкретной категории/производителя/товара; экспорт/импорт настроек модуля и структуры элементов меню; функция скрытия пустых(без товара) категорий и производителей; количество товаров категории и производителя без потери производительности; поддержка мульти-магазинов и групп пользователей; подключение и использование произвольных стилей и скриптов; всего 1 запрос к БД для всех категорий + товаров + производителей + статьи; всего 1 запрос к БД при подсчете количества товаров категории/производителя; модуль не заменяет системных файлов и не использует кеш; простая установка в меню дополнений...  
      Совместимость: OpenCart, ocStore, ocShop и другие сборки версий 2.1.x - 3.х
      Системные требования: PHP 5.6 - 7.0, Ioncube Loader 6+
       
      Демонстрация работы модуля на примере:
      Витрины категорий, Категории, Товара, Бренда
      Админ демо (логин/пароль: demo/demo)
       
    • От DimasLab
      Здравствуйе, где настраивается блок главого меню. Все облазил, не найду как там менять список категории, как добавить новые..

    • От blastbeat
      Добрый день.
      После того, как перетащили сайт с тестового домена и подключили к сайту SSL сертификат обнаружили, что часть изображений в подкатегориях перестала корректно выгружаться на сайт.

      Все изображения загружены в папке site.tld/image/... как и подобает инструкции из обоих сonfig.php:  define('DIR_IMAGE', '/var/www/www-root/data/www/site.tld/image/'); В основных категориях сайта всё корректно работает, картинки подгружаются кодом оттуда.

      Но на страницах подкатегорий сайта вида site.tld/category/subcategory или site.tld/category/subcategory/sub-subcategory отваливаются вообще все картинки на этой странице (не только товаров)



      Может кто сталкивался? Знает где и как лечить?

      Есть предположение, что это из за того, что в адресах картинок не стоит слэш перед папкой image:


      Но с таким же кодом в основных категориях выгрузка изображений происходит корректно...

      opencart Version 2.2.0.0 (rs.1)
    • От FCSM
      Здравствуйте! 
       
      Не могу понять в чём дело. 
      В мобильной версии, не отображается меню с категориями товаров. 
      На главной отображаются только новые поступления. 
      Вот сайт : https://wool.opt.lv/
      Как можно добавить меню с категориями ? 

      Благодарю! 
  • Последние посетители   0 пользователей онлайн

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