Автор Тема: Не выводить часть подкатегорий в меню  (Прочитано 481 раз)

16 Октябрь 2019, 17:56:31
  • Пользователь
  • **
  • Сообщений: 64
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте!
Подскажите, пожалуйста, как реализовать.
Задача следующая есть основная категория, у нее есть 5 подкатегорий 2-го уровня, у этих 5 подкатегорий есть еще свои три подкатегории.
Как эти три подкатегории третьего уровня не выводить в меню, но вывести на странице категории 2-го уровня?
И как у этих подкатегорий третьего уровня убрать вывод изображения, оставив только текст (ссылку)?
Движок 1.7.6.0
16 Октябрь 2019, 19:38:27
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Где в горизонтальном меню, в вертикальнои меню?
Модуль какой, какая тема?
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
16 Октябрь 2019, 19:53:37
Ответ #2
  • Пользователь
  • **
  • Сообщений: 64
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Где в горизонтальном меню, в вертикальнои меню?
Модуль какой, какая тема?

В горизонтальном под шапкой и слева в сайдбаре.
Тема вот эта: https://addons.prestashop.com/en/home-garden-themes/30025-p17at10-furniture-beds-and-home-accessories.html
Сейчас использую только стандартные категории движка (без доп.модулей)
16 Октябрь 2019, 20:23:14
Ответ #3
  • Пользователь
  • **
  • Сообщений: 97
  • Репутация: +1/-0
  • PrestaGeek
    • Просмотр профиля
    • Мой сайт
Здравствуйте!
Подскажите, пожалуйста, как реализовать.
Задача следующая есть основная категория, у нее есть 5 подкатегорий 2-го уровня, у этих 5 подкатегорий есть еще свои три подкатегории.
Как эти три подкатегории третьего уровня не выводить в меню, но вывести на странице категории 2-го уровня?
И как у этих подкатегорий третьего уровня убрать вывод изображения, оставив только текст (ссылку)?
Движок 1.7.6.0
Добрый день!
В настройка модуля "блок категорий" установите "Максимальная глубина" = 0
telegram: @PrestaGeek
18 Октябрь 2019, 20:13:40
Ответ #4
  • Пользователь
  • **
  • Сообщений: 64
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день!
В настройка модуля "блок категорий" установите "Максимальная глубина" = 0
Это убирает левое меню.
У меня задача иная.
20 Июнь 2020, 19:53:42
Ответ #5
  • Пользователь
  • **
  • Сообщений: 64
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Сколько прошло времени, но вопрос так и не решился.
Как не выводить ветку подкатегорий третьего уровня?
Раз в самом движке есть возможность создавать категорию - подкатегорию - подкатегорию 2- подкатегорию 3,
то что нужно сделать, чтобы выводить в верхнем меню только категория - подкатегория?
21 Июнь 2020, 10:20:00
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Тут уже писали о таком. Есть темы про вертикальное и горизонтальное меню.
Для горизонтального нужно ввести ограничение в blocktopmenu.php в функцию generateCategoriesMenu
if $category['level_depth'] > 1 && $category['level_depth'] < 'нужный уровень 3,4...'
21 Июнь 2020, 12:17:54
Ответ #7
  • Пользователь
  • **
  • Сообщений: 64
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Adik, спасибо вам огромное за ответ.

У меня есть вот так:
protected function generateCategoriesMenu($categories, $is_children = 0)
    {
        $nodes = [];

        foreach ($categories as $key => $category) {
            $node = $this->makeNode([]);

            if ($category['level_depth'] > 1) {
                $cat = new Category($category['id_category']);
                $link = $cat->getLink();
            } else {
                $link = $this->context->link->getPageLink('index');
            }

То есть вместо 1 надо указать, например, 3. Тогда не будут выводиться подкатегории начиная с третьего уровня, так?
21 Июнь 2020, 13:17:52
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Добавить нужно, а не заменять 1 на 3
if ($category['level_depth'] > 1 && $category['level_depth'] < 3) {
21 Июнь 2020, 13:24:41
Ответ #9
  • Пользователь
  • **
  • Сообщений: 64
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добавить нужно, а не заменять 1 на 3
if ($category['level_depth'] > 1 && $category['level_depth'] < 3) {

Спасибо большое! :)