Автор Тема: Как ограничить вложенность в главном горизонтальном меню?  (Прочитано 2198 раз)

14 Апрель 2015, 11:43:15
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте, в главном горизонтальном меню, в выпадающем списке показаны все категории,подкатегории,подподкатегории,и так далее.Как сделать так,чтобы показывались  категории и подкатегории,а остального не было видно? В общем хочу научиться настраивать вложенность (Преста 1.6.0.14). Нашел способ на 1.6.0.9 : В файле /modules/blocktopmenu/blocktopmenu.php
строка 624:

if ($depth > 3) (нужно редактировать значение depth)
return;
но на 1.6.0.14 никаких изменений не увидел.
14 Апрель 2015, 12:02:52
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
14 Апрель 2015, 12:31:44
Ответ #2
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
http://prestashop-forum.ru/index.php/topic,3347.msg18435.html

depth - для страниц
level_depth - для категорий
По умолчанию значение level_depth стоит >1 изменение как в большую так и в меньшую сторону эффекта не дало, каких-то изменений не увидел.
14 Апрель 2015, 13:23:26
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 1807
  • Репутация: +49/-1
  • Сообщество PrestaShop
    • Просмотр профиля
level_depth - для категорий
Этот параметр можно использовать для глубины вывода категорий.
if ((int)$category['level_depth'] <  N )
{
// выводить ссылки до N-го уровня
14 Апрель 2015, 13:31:35
Ответ #4
  • Новичок
  • *
  • Сообщений: 6
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
level_depth - для категорий
Этот параметр можно использовать для глубины вывода категорий.
if ((int)$category['level_depth'] <  N )
{
// выводить ссылки до N-го уровня
Благодарю!
03 Июль 2016, 12:33:32
Ответ #5
  • Ученик
  • Фрилансер
  • *
  • Сообщений: 110
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
level_depth - для категорий
Этот параметр можно использовать для глубины вывода категорий.
if ((int)$category['level_depth'] <  N )
{
// выводить ссылки до N-го уровня
Спасибо за подсказку!
А не знаете, почему не работает на 1.6.1.3?
Может влиять не это структура с раздела SEO/URL?
(почистить кеш, напоминать не надо)))
03 Июль 2016, 14:06:42
Ответ #6
  • Фрилансер
  • *
  • Сообщений: 160
  • Репутация: +0/-0
  • Веб-Разработчик (Новичок)
    • Просмотр профиля
    • MoscovLady
Что-то я не совсем понял... Какие тут значения указать чтобы подкатегории в верхнем меню не отображались?
Начинающий веб-разработчик
03 Июль 2016, 22:25:27
Ответ #7
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
1 - если выводить тольуо 1-й уровень, 2 - второй и т.д.
03 Июль 2016, 22:29:31
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Может влиять не это структура с раздела SEO/URL?
Нет, не влияет.
Проверить легко, отключите чпу.
03 Июль 2016, 22:47:44
Ответ #9
  • Ученик
  • Фрилансер
  • *
  • Сообщений: 110
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Может влиять не это структура с раздела SEO/URL?
Нет, не влияет.
Проверить легко, отключите чпу.
Странно, делал как указано выше, пробовал другие варианты, все равно, отображается весь каталог.
if ((int)$category['level_depth'] < 2 && !$is_children) {
                    $files = scandir(_PS_CAT_IMG_DIR_);
if ((int)$category['level_depth'] < 2 ) {
                    $files = scandir(_PS_CAT_IMG_DIR_);
Может подскажете, куда копать? Может я не там ковыряю? Два дня уже голову ломаю.
Надо убрать с меню третий и дальше уровень вложенности, ниже скрин.
Заранее, спасибо!


 
04 Июль 2016, 10:48:33
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
protected function generateCategoriesMenu($categories, $is_children = 0)
{
        $html = '';
        foreach ($categories as $key => $category) {
                // 'level_depth' > 2,3,....
        if ($category['level_depth'] > 3) {
        break;
        }
04 Июль 2016, 18:38:52
Ответ #11
  • Фрилансер
  • *
  • Сообщений: 160
  • Репутация: +0/-0
  • Веб-Разработчик (Новичок)
    • Просмотр профиля
    • MoscovLady
Мужики я так и не понял как убрать подкатегорию из верхнего меню! Мне она не нужна вобшее в верхнем меню (Подробнее на скриншоте), она мне нужна только в левом блоке и все (Подробнее на скрнишоте). Какие значения прописать чтобы она не появлялась в меню верхнем?
Начинающий веб-разработчик
04 Июль 2016, 20:48:02
Ответ #12
  • Ветеран
  • *****
  • Сообщений: 3419
  • Репутация: +79/-6
  • Сообщество PrestaShop
    • Просмотр профиля
protected function generateCategoriesMenu($categories, $is_children = 0)
{
        $html = '';
        foreach ($categories as $key => $category) {
                // 'level_depth' > 2,3,....
        if ($category['level_depth'] > 3) {
        break;
        }
Вот же написано.
04 Июль 2016, 23:58:27
Ответ #13
  • Фрилансер
  • *
  • Сообщений: 160
  • Репутация: +0/-0
  • Веб-Разработчик (Новичок)
    • Просмотр профиля
    • MoscovLady
protected function generateCategoriesMenu($categories, $is_children = 0)
{
        $html = '';
        foreach ($categories as $key => $category) {
                // 'level_depth' > 2,3,....
        if ($category['level_depth'] > 3) {
        break;
        }
Вот же написано.
Там нету такого именно кода который он отправил, он не похож на него точь в точь.
Начинающий веб-разработчик
05 Июль 2016, 09:41:57
Ответ #14
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Естествено что кода нет. Его нужно добавить после строчки
foreach ($categories as $key => $category) {вот этот код
if ($category['level_depth'] > 3) {
        break;
}
будет
protected function generateCategoriesMenu($categories, $is_children = 0)
{
        $html = '';
        foreach ($categories as $key => $category) {
                // 'level_depth' > 2,3,....
        if ($category['level_depth'] > 3) {
        break;
        }
                if ($category['level_depth'] > 1) {
                        $cat = new Category($category['id_category']);
                        $link = Tools::HtmlEntitiesUTF8($cat->getLink());
                }