Jump to content

como Mostrar unicamente categoria seleccionada con blockcategories


patadura

Recommended Posts

Hola a todos, estoy buscando la forma de que, usando el modulo blockcategories, cuando clico en el boton de menu cargue unicamente esa categoria.

Por ejemplo:

 

Menú Principal en cabecera:

 

OPCION A - OPCION B - OPCION C

 

Si clico en "opcion A" me muestre unicamente esa categoria.

 

por ejemplo clico en "OPCION B" y me muestre

 

OPCION B

 

subopcion b1

 

subopcion b2

 

.

 

.

 

.

 

subopcion bn

 

y que me oculte el resto de las categorias, en todos las paginas del prestashop, es decir necesito que me muestre únicamente la categoria que se haya clicado.

 

Actualmente muestra en el bloque de la izquierda todas las categorias que existen y es lo que no quiero.

 

Una opcion que encontré es cambiando el "id_category" en blockcategories.php y haciendo copias de ese modulo, eso está bien pero me siguen mostrando todas las categorias en bloques.

¿ como hago para ocultar todos los otros bloques y mostrar la categoría que acabo de entrar?

 

Espero haber sido claro en la explicación y que alguien me eche una mano si es que tiene una solución.

 

 

Gracias a todos

 

saludos

Link to comment
Share on other sites

Gracias Shacker por responder.

La utilidad sería de mostrar como submenu en el bloque izquierdo unicamente los hijos de una categoría padre cuando estoy dentro de esa categoria y esconder el resto de las categorias y subcategorias.

Lo primero que se me ocurrió es hacer lo que planteas de poner un if, pero dada mi poca luz en mi cabeza, no me doy cuenta como hacerlo puesto que el problema que tengo es que no se discernir como saber cual es el hijo de la categoria.

{if soshijo }

mostra el submenu

{/if}

 

ahora la pregunta del millon es como se si "soshijo"? o como puedo preguntar si la opcion que está apareciendo en el for del categories.tpl que recorre el arreglo de subcategories es hijo de la categoria padre.

 

Si se te ocurre como te agradecería mucho, hay infinidad de consultas al respecto, por ende mucha necesidad de hacerlo como lo planteo, pero ninguna soluciona esta consulta.

Link to comment
Share on other sites

en el category-tree-branch.tpl tienes:

 

{if isset($currentCategoryId) && ($node.id == $currentCategoryId)}class="selected"{/if}

 

agrega

 

{if isset($currentCategoryId) && ($node.id == $currentCategoryId)}class="selected"{/if} {if isset($currentCategoryId) && ($node.id != $currentCategoryId)}style="display:none"{/if}

Link to comment
Share on other sites

Para ayudar un poco éste codigo es lo que mas se acerca a la solución gracias al usuario Rocky en este post que suscribo aquí para seguir una línea

 

 

 

Try changing lines 9-13 of modules/blockcategories/blockcategories.tpl from:

 

{if $smarty.foreach.blockCategTree.last}
   {include file=$branche_tpl_path node=$child last='true'}
{else}
   {include file=$branche_tpl_path node=$child}
{/if}

 

 

to:

 

{if $smarty.foreach.blockCategTree.last}
   {include file=$branche_tpl_path node=$child depth=1 last='true'}
{else}
   {include file=$branche_tpl_path node=$child depth=1}
{/if}

 

then change modules/blockcategories/category-tree-branch.tpl to:

 

{assign var='childSelected' value='0'}
{foreach from=$node.children item=child}{if $child.id == $smarty.get.id_category}{assign var='childSelected' value='1'}{/if}{/foreach}
{if $page_name != 'category' OR $depth != 1 OR $node.id == $smarty.get.id_category OR $childSelected}
   {$node.name|escape:html:'UTF-8'}
   {if $node.children|@count > 0}


	    {foreach from=$node.children item=child name=categoryTreeBranch}
		    {if $smarty.foreach.categoryTreeBranch.last}
					    {include file=$tpl_dir./category-tree-branch.tpl node=$child depth=$depth+1 last='true'}
		    {else}
					    {include file=$tpl_dir./category-tree-branch.tpl node=$child depth=$depth+1 last='false'}
		    {/if}
	    {/foreach}


   {/if}
{/if}

 

 

pero solo sirve para dos niveles de hijos, si hay mas de dos al tercer nivel no lo muestra: seria

 

- CATEGORIA PADRE

SUB HIJO 1

SUB SUBHIJO 1-1

SUB SUBHIJO 1-2

SUB HIJO 2

SUB SUBHIJO 2-1

SUB SUBHIJO 2-2

 

pero si hacemos click en SUB SUBHIJO 1-2 `por ejemplo entra a la categoria de ese sub sub hijo pero no muestra nada en el submenu, desaparece todo en el bloque categories de la izquierda

 

Tal vez resolviendo este post se llega a una solución que repito puede ayudar a muchos como yo con el mismo problema.

 

gracias

Link to comment
Share on other sites

Shacker, posteamos casi al mismo tiempo y acabo de ver tu post anterior al mio.

 

Probé lo que me decis pero no da resultado, oculta todas las categorias. Pongo como quedo category-tree-branch.tpl para que lo mires porque por ahi me equivoco en poner lo que me decis:

 

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

{if $node.children|@count > 0}
 <ul>
 {foreach from=$node.children item=child name=categoryTreeBranch}
  {if isset($smarty.foreach.categoryTreeBranch) && $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>

 

Separé los if por las dudas que me haya equivocado pero de las dos formas me muestra lo mismo, es decir no me muestra los textos de las opciones, oculta a todas.

 

Se me ocurre que no es tan sencillo a muchos les pasa de no encontrar una solucion. La que mas se acerca es la que postee mas arriba pero sirve para dos niveles nada mas. Cuando el submenu tiene mas de dos al tercer nivel no muestra nada en el submenu, desparece y queda el titulo nada mas.

Link to comment
Share on other sites

  • 3 weeks later...
  • 5 months later...

Alguien ha conseguido hacer lo mismo pero que no desaparezca cuando estas en un sub-hijo3 o posterior?

 

La utilidad de la correción o de un módulo sería muy util para posicionamiento Seo. Uno de los aspectos que Google tiene en consideración es la cantidad de enlaces internos de una web. Hay varia documentación al respecto, no es algo nuevo.

 

Como el blockcategories, desplega todo el menú (a ojos de google, en código html) aunque lo tengas en dínamico o estático si tienes un menú largo estás condenado....

 

Yo de forma nativa, no encuentro la forma de evitar que se desplegue el menú en su totalidad... Aunque a nivel visual, lo pongo en dinamico o incluso lo oculte con css, en código se sigue viendo siempre.

 

La única forma que tengo de reducir los enlaces por página es con la correción que aquí indicais (pero no sirve para sub-hijos2, sub-hijos3, etc)

 

Alguien sabe la solución?

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...