Arevalo Posted September 16, 2014 Share Posted September 16, 2014 Buenas! Estoy con prestashop 1.6, la plantilla Megashop de Templatin (de themeforest). La pregunta es: ¿hay alguna manera de distinguir lo que es una categoria de una subcategoria en el siguiente codigo? Lo saco de el modulo blockcategories, que la plantilla lo sobreescribe. Lo que queiro hacer es modificar la forma en la que se presenta el html del bloque de categorías (la plantilla muestra el bloque a la izquierda, y despliega sus subcategorias). Busco que lo que son categorías, añadirle un <h2> y las subcategorias que contenga esa categoría, añadirle un <h3> por motivos de SEO. El problema es que si modifico el segundo código que pongo abajo en la linea 2 y agrego la etiqueta <h2> me lo repite tanto en la categoría como en la subcategoría... y no sé cómo distinguirlas para poner la etiqueta que toca. ¿Alguna idea? Archivo blockcategories.tpl, saca la estructura hasta el primer <ul> {if $blockCategTree && $blockCategTree.children|@count} <!-- Block categories module --> <div id="categories_block_left" class="demo-container block"> <div class="tptn-vertical-mega-menu"> <ul id="mega-1" class="menu right"> {foreach from=$blockCategTree.children item=child name=blockCategTree} {if $smarty.foreach.blockCategTree.last} {include file="$branche_tpl_path" node=$child last='true'} {else} {include file="$branche_tpl_path" node=$child} {/if} {/foreach} </ul> </div> </div> <!-- /Block categories module --> {/if} Se llama a este otro para genera los elementos <li>. Es el category-tree-branch.tpl (ambos archivos en la carpeta blockcategories del propio tema) <li class="category_{$node.id}{if isset($last) && $last == 'true'} last{/if}"> <a href="{$node.link|escape:'html':'UTF-8'}" {if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if} <!--EN ESTA LINEA QUE VIENE ES DONDE AGREGUE EL <H2> PERO NO SE COMO AGREGAR EL H3 PARA LA SUBCATEGORIA--> title="{$node.name|escape:'html':'UTF-8'}"><h2>{$node.name|escape:'html':'UTF-8'}</h2></a> <!--FIN DE LAS LINEAS MODIFICADAS, EL RESTO VIENE POR DEFECTO EN EL TEMA--> {if $node.children|@count > 0} <ul> {foreach from=$node.children item=child name=categoryTreeBranch} {if $smarty.foreach.categoryTreeBranch.last} {include file="$branche_tpl_path" node=$child last='true'} {else} {include file="$branche_tpl_path" node=$child last='false'} {/if} {/foreach} </ul> {/if} </li> Link to comment Share on other sites More sharing options...
gabrielchiron Posted September 16, 2014 Share Posted September 16, 2014 Las subcategorias tienen un campo que se llama id_parent, imaginate que tenemos Juegos como única categoría en la tienda y añadimos una subcategoría que es "Lucha". Sigue siendo una categoría pero la categoría Lucha en verdad es una categoría en la que su id_parent es el id_category de la categoría padre. Lo que significa que aquella categoría que su id_parent != '' es una categoría padre si es else es una subcategoría ^^ Link to comment Share on other sites More sharing options...
Arevalo Posted September 16, 2014 Author Share Posted September 16, 2014 Las subcategorias tienen un campo que se llama id_parent, imaginate que tenemos Juegos como única categoría en la tienda y añadimos una subcategoría que es "Lucha". Sigue siendo una categoría pero la categoría Lucha en verdad es una categoría en la que su id_parent es el id_category de la categoría padre. Lo que significa que aquella categoría que su id_parent != '' es una categoría padre si es else es una subcategoría ^^ Genial! Lo pruebo esta noche y os comento si lo he conseguido Link to comment Share on other sites More sharing options...
Arevalo Posted September 17, 2014 Author Share Posted September 17, 2014 (edited) Las subcategorias tienen un campo que se llama id_parent, imaginate que tenemos Juegos como única categoría en la tienda y añadimos una subcategoría que es "Lucha". Sigue siendo una categoría pero la categoría Lucha en verdad es una categoría en la que su id_parent es el id_category de la categoría padre. Lo que significa que aquella categoría que su id_parent != '' es una categoría padre si es else es una subcategoría ^^ Lo he intentado pero siempre me verifica la condición como cierta (es decir que id_parent != '' siempre me da true) y tanto las categorias como las subcategorias me aplica el mismo cambio, nunca se pasa al else... Así es como lo he puesto en el category-tree-branch.tpl <li class="category_{$node.id}{if isset($last) && $last == 'true'} last{/if}"> <a href="{$node.link|escape:'html':'UTF-8'}" {if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if} title="{$node.name|escape:'html':'UTF-8'}"> <!--AQUI LO HE CAMBIADO--> {if id_parent != ''} <h2>{$node.name|escape:'html':'UTF-8'}</h2> {else} <h3>{$node.name|escape:'html':'UTF-8'}</h3> {/if} <!--AQUI ACABA EL CAMBIO--> </a> {if $node.children|@count > 0} <ul> {foreach from=$node.children item=child name=categoryTreeBranch} {if $smarty.foreach.categoryTreeBranch.last} {include file="$branche_tpl_path" node=$child last='true'} {else} {include file="$branche_tpl_path" node=$child last='false'} {/if} {/foreach} </ul> {/if} </li> Lo estoy haciendo bien??? Edited September 17, 2014 by Arevalo (see edit history) Link to comment Share on other sites More sharing options...
gabrielchiron Posted September 17, 2014 Share Posted September 17, 2014 Tanto en el if con en el else hay lo mismo por eso siempre es true. Link to comment Share on other sites More sharing options...
Arevalo Posted September 17, 2014 Author Share Posted September 17, 2014 Tanto en el if con en el else hay lo mismo por eso siempre es true. mmm no, fíjate que en el if pongo <h2> y en el else pongo <h3>... Link to comment Share on other sites More sharing options...
Recommended Posts