Blog

Martes, 16 Enero 2018 17:40

Limitar las subcategorías en el menú top principal en Prestashop

Written by 
Rate this item
(0 votes)

Imagínate que tenemos más de 5 niveles de subcategorías creados en CATEGORÍAS en prestashop. Cuando las configuramos en el menú top principal, y pinchamos el menú en concreto, se van a ver todas las subcategorías 

En ocasiones, nos interesa el nivel de visualización de las categorías. Para ello, hay que seguir los siguientes pasos

1) root/modules/blocktopmenu/blocktopmenu.php

2) Aproximadamente en la línea 614, localizar el siguiente fragmento de código

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

}

 

3) Sustituir la línea

if (isset($category['children']) && !empty($category['children']))

Por la siguiente 

if ($category['level_depth'] < 4 && isset($category['children']) && !empty($category['children']))

4) Guardar y refrescar la página de prestashop

5) Si no funciona, hay que borrar el caché

Read 1924 times