Как ограничить вложенность в главном горизонтальном меню?

Автор Vipe398, 14 апреля 2015, 11:43:15

« назад - далее »

Vipe398

Здравствуйте, в главном горизонтальном меню, в выпадающем списке показаны все категории,подкатегории,подподкатегории,и так далее.Как сделать так,чтобы показывались  категории и подкатегории,а остального не было видно? В общем хочу научиться настраивать вложенность (Преста 1.6.0.14). Нашел способ на 1.6.0.9 : В файле /modules/blocktopmenu/blocktopmenu.php
строка 624:

if ($depth > 3) (нужно редактировать значение depth)
return;
но на 1.6.0.14 никаких изменений не увидел.

coder

#1
http://prestashop-forum.ru/index.php/topic,3347.msg18435.html

depth - для страниц
level_depth - для категорий

Vipe398

Цитата: coder от 14 апреля 2015, 12:02:52
http://prestashop-forum.ru/index.php/topic,3347.msg18435.html

depth - для страниц
level_depth - для категорий
По умолчанию значение level_depth стоит >1 изменение как в большую так и в меньшую сторону эффекта не дало, каких-то изменений не увидел.

Mr.Sen

Цитата: coder от 14 апреля 2015, 12:02:52
level_depth - для категорий
Этот параметр можно использовать для глубины вывода категорий.
if ((int)$category['level_depth'] <  N )
{
// выводить ссылки до N-го уровня

Vipe398

Цитата: Mr.Sen от 14 апреля 2015, 13:23:26
Цитата: coder от 14 апреля 2015, 12:02:52
level_depth - для категорий
Этот параметр можно использовать для глубины вывода категорий.
if ((int)$category['level_depth'] <  N )
{
// выводить ссылки до N-го уровня

Благодарю!

iZlodey

#5
Цитата: Mr.Sen от 14 апреля 2015, 13:23:26
Цитата: coder от 14 апреля 2015, 12:02:52
level_depth - для категорий
Этот параметр можно использовать для глубины вывода категорий.
if ((int)$category['level_depth'] <  N )
{
// выводить ссылки до N-го уровня

Спасибо за подсказку!
А не знаете, почему не работает на 1.6.1.3?
Может влиять не это структура с раздела SEO/URL?
(почистить кеш, напоминать не надо)))

Raphael

Что-то я не совсем понял... Какие тут значения указать чтобы подкатегории в верхнем меню не отображались?
Начинающий веб-разработчик

Adik

1 - если выводить тольуо 1-й уровень, 2 - второй и т.д.

Adik

ЦитироватьМожет влиять не это структура с раздела SEO/URL?
Нет, не влияет.
Проверить легко, отключите чпу.

iZlodey

#9
Цитата: Adik от 03 июля 2016, 22:29:31
ЦитироватьМожет влиять не это структура с раздела 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_);

Может подскажете, куда копать? Может я не там ковыряю? Два дня уже голову ломаю.
Надо убрать с меню третий и дальше уровень вложенности, ниже скрин.
Заранее, спасибо!



coder

protected function generateCategoriesMenu($categories, $is_children = 0)
{
        $html = '';
        foreach ($categories as $key => $category) {
                // 'level_depth' > 2,3,....
        if ($category['level_depth'] > 3) {
        break;
        }

Raphael

#11
Мужики я так и не понял как убрать подкатегорию из верхнего меню! Мне она не нужна вобшее в верхнем меню (Подробнее на скриншоте), она мне нужна только в левом блоке и все (Подробнее на скрнишоте). Какие значения прописать чтобы она не появлялась в меню верхнем?
Начинающий веб-разработчик

Миколас

Цитата: coder от 04 июля 2016, 10:48:33
protected function generateCategoriesMenu($categories, $is_children = 0)
{
        $html = '';
        foreach ($categories as $key => $category) {
                // 'level_depth' > 2,3,....
        if ($category['level_depth'] > 3) {
        break;
        }

Вот же написано.

Raphael

Цитата: Миколас от 04 июля 2016, 20:48:02
Цитата: coder от 04 июля 2016, 10:48:33
protected function generateCategoriesMenu($categories, $is_children = 0)
{
        $html = '';
        foreach ($categories as $key => $category) {
                // 'level_depth' > 2,3,....
        if ($category['level_depth'] > 3) {
        break;
        }

Вот же написано.
Там нету такого именно кода который он отправил, он не похож на него точь в точь.
Начинающий веб-разработчик

coder

#14
Естествено что кода нет. Его нужно добавить после строчки
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());
                }