Jump to content

Cómo construir el árbol completo de categorías


robertomagan

Recommended Posts

Hola a tod@s!

 

Gracias por la ayuda desinteresada que prestáis con este foro ;)

 

Mi pregunta es simple (aunque no sé si sencilla de resolver): ¿cómo puedo obtener el árbol de categorías con sus nombres e IDs asociados? Es decir algo tal que así:

2 Inicio
 |-- 22 Subcategoría_1
 |-- 23 Subcategoría_2
     |-- 233 Subsubcategoría_21 
     |-- etc.

dónde el número inicial se corresponde con el ID de la categoría.

 

Muchas gracias de antemano!

 

Saludos,

Roberto.

Link to comment
Share on other sites

Creando esta variable

 $this->context->smarty->assign('categoriesTree', Category::getRootCategory()->recurseLiteCategTree(0)) 

tienes acceso a toda la informacion del arbol de categorias.

 

Luego ya la estructura, algo si

<div class="col-xs-12 col-sm-6">
		<div class="categTree box">
            <h3 class="page-subheading">{l s='Categories'}</h3>
            <div class="tree_top">
                <a href="{$base_dir_ssl}" title="{$categoriesTree.name|escape:'html':'UTF-8'}"></a>
            </div>
            <ul class="tree">
            {if isset($categoriesTree.children)}
                {foreach $categoriesTree.children as $child}
                    {if $child@last}
                        {include file="$tpl_dir./category-tree-branch.tpl" node=$child last='true'}
                    {else}
                        {include file="$tpl_dir./category-tree-branch.tpl" node=$child}
                    {/if}
                {/foreach}
            {/if}
            </ul>
        </div>
    </div>

Y finalmente para añadir el id delante del nombre de la categoria, en

themes/tu_tema/category-tree-branch.tpl

En la parte del enlace hara falta añadir la parte en color rojo

 

<a href="{$node.link|escape:'html':'UTF-8'}" {if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if} title="{$node.desc|escape:'html':'UTF-8'}">{$node.id}  {$node.name|escape:'html':'UTF-8'}</a>

  • Like 1
Link to comment
Share on other sites

Hola ventura!

 

Gracias por contestar tan rápido, aunque me temo que no entiendo mucho.

 

El código y los pasos que muestras creo que se tienen que integrar en algún módulo prestashop verdad? o es posible ejecutarlos directamente?

 

Saludos,

Roberto.

Link to comment
Share on other sites

Depende un poco de donde o como quieres mostrarlo. Si es en una pagina cms te haria falta añadir la variable que accede al contenido del arbol en el function init del CmsController.php y luego acceder al array desde el cms.tpl. Tambien con un modulo podrias accerlo

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...