Автор Тема: Вложеность горизонтального меню (blocktopmenu)  (Прочитано 619 раз)

26 Октябрь 2015, 20:51:25
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте!
Помогите пожалуйста.

http://zapauto.com.ua/
В разделе "Разборка Б/У"
Как мне ограничить вложеность меню, чтоб выпадающий список заканчивался на Passat B5? А дальше "двигатель, кузов ..." не было видно.



В каком месте нужно вставить код ?
if ((int)$category['level_depth'] <  N )
{
 //N уровень вложености
}
27 Октябрь 2015, 10:09:06
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
28 Октябрь 2015, 13:15:25
Ответ #2
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
/modules/blocktopmenu/blocktopmenu.php

В каком месте в этом файле?
и какой код должен быть внутри скобок?
28 Октябрь 2015, 13:38:12
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
Код тот который в этом файле, для вывода категорий в меню. Поищи тему на форуме, была такая по ограничению вывода в меню.
28 Октябрь 2015, 13:54:14
Ответ #4
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Код тот который в этом файле, для вывода категорий в меню. Поищи тему на форуме, была такая по ограничению вывода в меню.

Спасибо, попробую
29 Октябрь 2015, 00:33:22
Ответ #5
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Во вложении файл blocktopmenu.php

Не могу найти место где именно выводятся категории в всплывающее меню
и куда нужно вставить код:

if ((int)$category['level_depth'] <  N )
{
 //N уровень вложености
}
29 Октябрь 2015, 11:31:11
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 1614
  • Репутация: +32/-1
  • Сообщество PrestaShop
    • Просмотр профиля
http://prestashop-forum.ru/index.php/topic,3347.msg18435.html#msg18435
В файле /modules/blocktopmenu/blocktopmenu.php
и в линии 599
private function generateCategoriesMenu($categories, $is_children = 0,$color = 0)
29 Октябрь 2015, 22:49:11
Ответ #7
  • Новичок
  • *
  • Сообщений: 9
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всем ОГРОМНОЕ спасибо! Получилось!

В функции generateCategoriesMenu сделал условие:

if ((int)$category['level_depth'] <  4 )
                {
if (isset($category['children']) && !empty($category['children']))
{
$html .= '<ul>';
$html .= $this->generateCategoriesMenu($category['children'], 1);

if ((int)$category['level_depth'] > 1 && !$is_children)
{
$files = scandir(_PS_CAT_IMG_DIR_);

if (count($files) > 0)
{
$html .= '<li class="category-thumbnail">';

foreach ($files as $file)
if (preg_match('/^'.$category['id_category'].'-([0-9])?_thumb.jpg/i', $file) === 1)
$html .= '<div><img src="'.$this->context->link->getMediaLink(_THEME_CAT_DIR_.$file)
.'" alt="'.Tools::SafeOutput($category['name']).'" title="'
.Tools::SafeOutput($category['name']).'" class="imgm" /></div>';

$html .= '</li>';
}
}

$html .= '</ul>';
}
                }