Jump to content

Excluir categoria del menu


misterio

Recommended Posts

Que tal

 

Tengo instalado prestashop 1.5.3 , tengo muchas categorias y no quiero que se muestren algunas en el menu ed la izquierda (bloque de categorias), hay alguna forma que exlcluir categorias a eleccion para que no aparezcan en el menu de la izquierda

 

Saludos

Link to comment
Share on other sites

Accede a tu backoffice y ves a la primera pestaña del menú (catálogo) y pincha sobre la segunda opción (categorías).

Ahí verás un listado de tus categorías, a la izquierda de cada tendrás ticks de color verde sobre una columna con el nombre mostrado, haz clic sobre cada clic para que oculte esa categoría.

Un saludo

Link to comment
Share on other sites

Accede a tu backoffice y ves a la primera pestaña del menú (catálogo) y pincha sobre la segunda opción (categorías).

Ahí verás un listado de tus categorías, a la izquierda de cada tendrás ticks de color verde sobre una columna con el nombre mostrado, haz clic sobre cada clic para que oculte esa categoría.

Un saludo

 

Creo que no quiere desactivarlas, sino, excluirlas solo y unicamente del bloque de categorías del lateral.

Link to comment
Share on other sites

Creo que no quiere desactivarlas, sino, excluirlas solo y unicamente del bloque de categorías del lateral.

 

Si es así la cosa se le complica, creo que Prestashop no tiene esa opción. Imagino que debería modificar el código de blockcategories y excluirlas ahí del listado...

Link to comment
Share on other sites

Que archivos tendria que modificar ?

El menú que tu dices es un módulo llamado blockcategories, mi idea es que busques el código donde el módulo lista las categorías y pongas condiciones para que no liste las que tu quieras.

Yo en las condiciones compararía por id.

Un saludo

Link to comment
Share on other sites

Buenas,

 

En el archivo category-tree-branch.tpl del módulo blockcategories:

 

<li {if isset($last) && $last == 'true'}class="last"{/if}>
   <a href="{$node.link}" {if isset($currentCategoryId) && $node.id == $currentCategoryId}class="selected"{/if} title="{$node.desc|escape:'htmlall':'UTF-8'}">{$node.name|escape:'htmlall':'UTF-8'}</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>

 

Excluir las categorías deseadas por ID:

 

{if $node.id ne 1}{if $node.id ne 2}{/if}{/if}

Link to comment
Share on other sites

Otra opción es editar el fichero:

 

/modules/blockcategories/blockcategories.php

 

Buscar esto:

 

  if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
SELECT c.id_parent, c.id_category, cl.name, cl.description, cl.link_rewrite
FROM `'._DB_PREFIX_.'category` c
INNER JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category` AND cl.`id_lang` = '.$id_lang.Shop::addSqlRestrictionOnLang('cl').')
INNER JOIN `'._DB_PREFIX_.'category_shop` cs ON (cs.`id_category` = c.`id_category` AND cs.`id_shop` = '.(int)$this->context->shop->id.')
WHERE (c.`active` = 1 OR c.`id_category` = '.(int)Configuration::get('PS_HOME_CATEGORY').')
AND c.`id_category` != '.(int)Configuration::get('PS_ROOT_CATEGORY').'
'.((int)$maxdepth != 0 ? ' AND `level_depth` <= '.(int)$maxdepth : '').'
AND c.id_category IN (SELECT id_category FROM `'._DB_PREFIX_.'category_group` WHERE `id_group` IN ('.pSQL($groups).'))
ORDER BY `level_depth` ASC, '.(Configuration::get('BLOCK_CATEG_SORT') ? 'cl.`name`' : 'cs.`position`').' '.(Configuration::get('BLOCK_CATEG_SORT_WAY') ? 'DESC' : 'ASC')))

 

Y dejarlo asi:

 

if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
SELECT c.id_parent, c.id_category, cl.name, cl.description, cl.link_rewrite
FROM `'._DB_PREFIX_.'category` c
INNER JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category` AND cl.`id_lang` = '.$id_lang.Shop::addSqlRestrictionOnLang('cl').')
INNER JOIN `'._DB_PREFIX_.'category_shop` cs ON (cs.`id_category` = c.`id_category` AND cs.`id_shop` = '.(int)$this->context->shop->id.')
WHERE (c.`active` = 1 OR c.`id_category` = '.(int)Configuration::get('PS_HOME_CATEGORY').')
AND c.`id_category` != '.(int)Configuration::get('PS_ROOT_CATEGORY').'
'.((int)$maxdepth != 0 ? ' AND `level_depth` <= '.(int)$maxdepth : '').'
AND c.id_category IN (SELECT id_category FROM `'._DB_PREFIX_.'category_group` WHERE `id_group` IN ('.pSQL($groups).'))  AND c.id_category NOT IN (10,11)
ORDER BY `level_depth` ASC, '.(Configuration::get('BLOCK_CATEG_SORT') ? 'cl.`name`' : 'cs.`position`').' '.(Configuration::get('BLOCK_CATEG_SORT_WAY') ? 'DESC' : 'ASC')))

 

Si nos damos cuenta, hemos agregado:

 

AND c.id_category NOT IN (10,11)

 

En este caso, hacemos referencia a la 10 y a la 11, en vuestro caso ya defines lo que quieras excluir.

  • Like 1
Link to comment
Share on other sites

Otra opción es editar el fichero:

 

/modules/blockcategories/blockcategories.php

 

Buscar esto:

 

  if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
SELECT c.id_parent, c.id_category, cl.name, cl.description, cl.link_rewrite
FROM `'._DB_PREFIX_.'category` c
INNER JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category` AND cl.`id_lang` = '.$id_lang.Shop::addSqlRestrictionOnLang('cl').')
INNER JOIN `'._DB_PREFIX_.'category_shop` cs ON (cs.`id_category` = c.`id_category` AND cs.`id_shop` = '.(int)$this->context->shop->id.')
WHERE (c.`active` = 1 OR c.`id_category` = '.(int)Configuration::get('PS_HOME_CATEGORY').')
AND c.`id_category` != '.(int)Configuration::get('PS_ROOT_CATEGORY').'
'.((int)$maxdepth != 0 ? ' AND `level_depth` <= '.(int)$maxdepth : '').'
AND c.id_category IN (SELECT id_category FROM `'._DB_PREFIX_.'category_group` WHERE `id_group` IN ('.pSQL($groups).'))
ORDER BY `level_depth` ASC, '.(Configuration::get('BLOCK_CATEG_SORT') ? 'cl.`name`' : 'cs.`position`').' '.(Configuration::get('BLOCK_CATEG_SORT_WAY') ? 'DESC' : 'ASC')))

 

Y dejarlo asi:

 

if (!$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
SELECT c.id_parent, c.id_category, cl.name, cl.description, cl.link_rewrite
FROM `'._DB_PREFIX_.'category` c
INNER JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category` AND cl.`id_lang` = '.$id_lang.Shop::addSqlRestrictionOnLang('cl').')
INNER JOIN `'._DB_PREFIX_.'category_shop` cs ON (cs.`id_category` = c.`id_category` AND cs.`id_shop` = '.(int)$this->context->shop->id.')
WHERE (c.`active` = 1 OR c.`id_category` = '.(int)Configuration::get('PS_HOME_CATEGORY').')
AND c.`id_category` != '.(int)Configuration::get('PS_ROOT_CATEGORY').'
'.((int)$maxdepth != 0 ? ' AND `level_depth` <= '.(int)$maxdepth : '').'
AND c.id_category IN (SELECT id_category FROM `'._DB_PREFIX_.'category_group` WHERE `id_group` IN ('.pSQL($groups).'))  AND c.id_category NOT IN (10,11)
ORDER BY `level_depth` ASC, '.(Configuration::get('BLOCK_CATEG_SORT') ? 'cl.`name`' : 'cs.`position`').' '.(Configuration::get('BLOCK_CATEG_SORT_WAY') ? 'DESC' : 'ASC')))

 

Si nos damos cuenta, hemos agregado:

 

AND c.id_category NOT IN (10,11)

 

En este caso, hacemos referencia a la 10 y a la 11, en vuestro caso ya defines lo que quieras excluir.

 

Buena opción!

 

No me lo había planteado así, aún es mucho mejor en mi opinión...

 

^_^

Link to comment
Share on other sites

Bueno es una opción, simplemente diferente (ni mejor, ni peor) este mundo oscuro y tenebroso....

 

Oscuridad !

 

Un Saludo

 

Me refería que és mejor porque puedes excluir las categorias sin poner mucho código y parece más simple.

 

A veces demasiado oscuro y tenebroso... ^_^

Link to comment
Share on other sites

yo también estoy intentado excluir una categoría pero no lo consigo, he usado la aportación de modificar el archivo blockcategories pero no me funciona.

 

Si el id de la categoría es 1192 como tendría que implementar los if usando la aportación de arganoid para el archivo

category-tree-branch.tpl

 

Gracias de antemano por la ayuda.

Link to comment
Share on other sites

Recordad que teneis, que forzar compilación si modificais el fichero tpl y en este caso tambien desactivar la cache de smarty y vaciar la carpeta /cache/smarty/cache/ (menos el index.php) (luego la vuelves activar), para que se apliquen los cambios, al modificar el modulo de categorías.

 

Si tocais el php del modulo del bloque categorías, debeis desactivar la cache de smarty y vaciar la carpeta /cache/smarty/cache/ (menos el index.php) (luego la vuelves activar), para que se apliquen los cambios.

 

El bloque categorias es un poco especial.

Link to comment
Share on other sites

perfecto nadie, vaciada la caché y funcionando perfectamente con la modificación de blockcategories.php.

 

 

Muchisimas Gracias.

 

Un placer ayudarte y servirte!

 

Un saludo y recuerda que estaremos en el foro, para guiarte por este mundo oscuro y tenebroso.

Link to comment
Share on other sites

  • 1 month later...
  • 1 month later...

Buenas tardes, y si lo que quieres es excluir categorias pero en vez de dictarle las id de las categorias, solo quieres que se muestren las 5 o 6 primeras y que las siguientes las oculte? aver si puedo poneros un ejemplo

 

PERROS ----> categoria mas alta visible

york say---->subcategoria visible

doverman ---->subcategoria visible

pitbull---->subcategoria visible

caniche---->subcategoria visible

pastor aleman ---->subcategoria oculta

podenco---->subcategoria visible oculta

mastin---->subcategoria visible oculta

mas categorias...----> al pinchar este enlace a la categoria mas alta,que cree en el archivo tpl me llevaria a todas las visibles y ocultas

 

 

GATOS----> categoria mas alta visible

york say---->subcategoria visible

doverman ---->subcategoria visible

pitbull---->subcategoria visible

caniche---->subcategoria visible

pastor aleman ---->subcategoria oculta

podenco---->subcategoria visible oculta

mastin---->subcategoria visible oculta

mas categorias...----> al pinchar este enlace a la categoria mas alta,que cree en el archivo tpl me llevaria a todas las visibles y ocultas

 

 

 

 

Y quedaria asi modificado:

 

 

 

PERROS ----> categoria mas alta visible

york say---->subcategoria visible

doverman ---->subcategoria visible

pitbull---->subcategoria visible

caniche---->subcategoria visible

mas categorias...----> al pinchar este enlace a la categoria mas alta,que cree en el archivo tpl me llevaria a todas las visibles y ocultas

 

 

GATOS----> categoria mas alta visible

york say---->subcategoria visible

doverman ---->subcategoria visible

pitbull---->subcategoria visible

caniche---->subcategoria visible

mas categorias...----> al pinchar este enlace a la categoria mas alta,que cree en el archivo tpl me llevaria a todas las visibles y ocultas

 

 

Dentro de perros y gatos estarian sus razas aunke aqui no concuerdan lo hice a modo de ejemplo y al pinchar en el enlace si que me mostraria todos las subcategorias que andan en perros o gatos en la pagina de la categoria mas alta que es perros o gatos.

 

 

perdonen mi explicacion pesima y mis faltas. gracias a todos y ojala pueda ayudar a alguien con el mismo problema

Edited by bertgit (see edit history)
Link to comment
Share on other sites

  • 1 month later...

Buenas tardes, y si lo que quieres es excluir categorias pero en vez de dictarle las id de las categorias, solo quieres que se muestren las 5 o 6 primeras y que las siguientes las oculte? aver si puedo poneros un ejemplo

 

PERROS ----> categoria mas alta visible

york say---->subcategoria visible

doverman ---->subcategoria visible

pitbull---->subcategoria visible

caniche---->subcategoria visible

pastor aleman ---->subcategoria oculta

podenco---->subcategoria visible oculta

mastin---->subcategoria visible oculta

mas categorias...----> al pinchar este enlace a la categoria mas alta,que cree en el archivo tpl me llevaria a todas las visibles y ocultas

 

 

GATOS----> categoria mas alta visible

york say---->subcategoria visible

doverman ---->subcategoria visible

pitbull---->subcategoria visible

caniche---->subcategoria visible

pastor aleman ---->subcategoria oculta

podenco---->subcategoria visible oculta

mastin---->subcategoria visible oculta

mas categorias...----> al pinchar este enlace a la categoria mas alta,que cree en el archivo tpl me llevaria a todas las visibles y ocultas

 

 

 

 

Y quedaria asi modificado:

 

 

 

PERROS ----> categoria mas alta visible

york say---->subcategoria visible

doverman ---->subcategoria visible

pitbull---->subcategoria visible

caniche---->subcategoria visible

mas categorias...----> al pinchar este enlace a la categoria mas alta,que cree en el archivo tpl me llevaria a todas las visibles y ocultas

 

 

GATOS----> categoria mas alta visible

york say---->subcategoria visible

doverman ---->subcategoria visible

pitbull---->subcategoria visible

caniche---->subcategoria visible

mas categorias...----> al pinchar este enlace a la categoria mas alta,que cree en el archivo tpl me llevaria a todas las visibles y ocultas

 

 

Dentro de perros y gatos estarian sus razas aunke aqui no concuerdan lo hice a modo de ejemplo y al pinchar en el enlace si que me mostraria todos las subcategorias que andan en perros o gatos en la pagina de la categoria mas alta que es perros o gatos.

 

 

perdonen mi explicacion pesima y mis faltas. gracias a todos y ojala pueda ayudar a alguien con el mismo problema

 

¡Hola bertgit!

 

Aquí tienes una solución http://programwar.wo...lockcategories/

 

A mi no me funcionó en PrestaShop™ 1.5.4.1 pero puede que a ti si te funcione.

 

¡Saludos!

Link to comment
Share on other sites

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