Jump to content

[Résolu] Masquer certaines catégories dans le menu


Marina13

Recommended Posts

Bonjour,
Je souhaiterai créer des catégories qui ne doivent pas apparaître dans le menu de navigation. A votre avis est-ce possible et comment procéder pour masquer ces catégories ?
Merci d'avance pour votre aide et bonne journée.

Link to comment
Share on other sites

Dans ton interface admin, tu regardes l’ID de la catégorie que tu veux faire disparaitre (exemple le 10)

Dans modules\blockcategories ouvre le fichier blockcategories.php
Le champ s’appele “id_category”

Repère ces lignes:
SELECT * FROM ‘.DB_PREFIX.‘category c LEFT JOIN ‘.DB_PREFIX.‘category_lang cl ON (c.id_category = cl.id_category AND id_lang = ‘.intval($params[‘cookie’]->id_lang).’) WHERE level_depth <= ‘.intval(Configuration::get(‘BLOCK_CATEG_MAX_DEPTH’)).’ AND c.active = 1 ORDER BY level_depth, cl.name ASC’);

et ajoute juste en dessous c.active=1 la ligne AND c.id_category <> 10 ce qui donne:

SELECT * FROM ‘.DB_PREFIX.‘category c LEFT JOIN ‘.DB_PREFIX.‘category_lang cl ON (c.id_category = cl.id_category AND id_lang = ‘.intval($params[‘cookie’]->id_lang).’) WHERE level_depth <= ‘.intval(Configuration::get(‘BLOCK_CATEG_MAX_DEPTH’)).’ AND c.active = 1 AND c.id_category <> 10 ORDER BY level_depth, cl.name ASC’);

Toutes les catégories apparaissent sauf la numéro 10

  • Like 1
Link to comment
Share on other sites

Super, merci, je vais faire le test dans les prochains jours.
Petite question subsidiaire (je sais, j'abuse :) ) : est-il possible de masquer une catégorie ET les catégories inférieures qui lui sont rattachées ? D'avance merci pour votre aide.

Link to comment
Share on other sites

bonsoir,

Et bien essaye plutôt que c.id_category <> 10 c.id_category > 10 si tu veux masquer toute les catégories dont l'ID va de 1 à 10...

Donc je recapitule:
dans le fichier Blockcategories.php vers la ligne 103:

Si tu veux masquer une catégorie précise: (Exemple masquer la 10)- Testé et fonctionnel!!!

SELECT * FROM '._DB_PREFIX_.'category c
LEFT JOIN '._DB_PREFIX_.'category_lang cl ON (c.id_category = cl.id_category AND id_lang = '.intval($params['cookie']->id_lang).')
WHERE level_depth <= '.intval(Configuration::get('BLOCK_CATEG_MAX_DEPTH')).'
AND c.active = 1
AND c.id_category <> 10
ORDER BY level_depth, cl.name ASC');

Si tu ne veux faire apparaitre qu'à partir d'une catégorie précise: (exemple ici > à 10) - Pas testé!!!

SELECT * FROM '._DB_PREFIX_.'category c
LEFT JOIN '._DB_PREFIX_.'category_lang cl ON (c.id_category = cl.id_category AND id_lang = '.intval($params['cookie']->id_lang).')
WHERE level_depth <= '.intval(Configuration::get('BLOCK_CATEG_MAX_DEPTH')).'
AND c.active = 1
AND c.id_category > 10
ORDER BY level_depth, cl.name ASC');



Bon courage
Max

Link to comment
Share on other sites

hum, j'ai testé de mon coté, mais juste en lisant ceci je pense que ce que tu dis, maxhome, ne donne pas une réponse à Mariana13 pour les sous-catégorie.

par catégories inférieures, je ne pense pas que Marina13 voulait dire les catégories dont le nombre est inférieur à 10 (par exemple), mais bien les sous-catégories associées, dont les ID sont indépendantes du niveau de profondeur (désigné ici par level_depth).

En testant, le code que tu proposes, maxhome, réalise déjà ce que souhaite Marina13 : une catégorie ignorée ne s'affiche plus, tout comme celles qui en dépendent.

Link to comment
Share on other sites

  • 1 month later...

Bonjour à tous
Salut SotEW, ça gaze ?
J'ai besoin de vos connaissances parceque personne ne répond à mon problème. J'aimerai masquer une catégorie et ses enfants sauf à certains groupes. Comment vous y prendriez vous. MERCI ça va devenir assez urgent.
Bonne journée

Link to comment
Share on other sites

Non je crois que ma demande est la m^me (http://www.prestashop.com/forums/viewreply/89793/) mais dans le post que tu cite la solution est effectivement l'inverse. Mais bon j'ai essayé au cas ou !
J'ai des clients "grand compte" pour qui je souhaite créer une catégorie "grand compte" qui apparaitrait à gauche avec les produits référencés chez eux uniquement. cette catégorie serait invisible pour les autre utilisateurs ou quand ils ne sont pas loggué !
Je sais plus si je suis clair là ?

Merci en tous cas Zendik de te pencher sur ma requête

Link to comment
Share on other sites


J'aimerai masquer une catégorie et ses enfants sauf à certains groupes.


Bonjour je cherche [...] à masquer les sous catégories d'une seule de mes catégories, ce à un groupe donné.


Pour moi c'est contradictoire...

Et d'après ce que tu viens de dire, c'est le comportement normal des groupes, tu crées une catégorie "Grands comptes" et ses sous-cat, un groupe "Grand compte" et tu affectes cette cat et ses sous-cat à ce groupe.
Link to comment
Share on other sites

Bon vu comme ça ;-) Je suis fait comme un rat, démasqué et ... fatigué.

En fait je vais ressayé ce que tu me dis et je reviens dire si ça me convient (mais le par défaut je crois qu'il ne fonctionnait pas chez moi !)
merci en tous cas

Link to comment
Share on other sites

  • 1 year later...

Bonjour,

j'ai testé votre astuce http://www.prestashop.com/forums/viewthread/17078/#78090
mais rien n'y a fait !
dans mon fichier, ça n'est pas écrit pareil : ligne 106 à 115

if (!$result = Db::getInstance()->ExecuteS('
       SELECT DISTINCT c.*, cl.*
       FROM `'._DB_PREFIX_.'category` c 
       LEFT JOIN `'._DB_PREFIX_.'category_lang` cl ON (c.`id_category` = cl.`id_category` AND `id_lang` = '.intval($params['cookie']->id_lang).')
       LEFT JOIN `'._DB_PREFIX_.'category_group` cg ON (cg.`id_category` = c.`id_category`)
       WHERE 1'
       .(intval($maxdepth) != 0 ? ' AND `level_depth` <= '.intval($maxdepth) : '').'
       AND (c.`active` = 1 OR c.`id_category`= 1)
       AND cg.`id_group` '.(!$cookie->id_customer ?  '= 1' : 'IN (SELECT id_group FROM '._DB_PREFIX_.'customer_group WHERE id_customer = '.intval($cookie->id_customer).')').'
       ORDER BY `level_depth` ASC, cl.`name` ASC'))



Une astuce ?
Je souhaite afficher les catégories au delà de ID 10, j'ai pensé mettre

AND (c.`active` = 1 OR c.`id_category`>= 11 )



Mais ça n'a rien fait du tout.
J'ai créé une catégorie qui est en ID 12, histoire de vérifier mais rien ne se passe.

Merci par avance de votre aide ;-)

Link to comment
Share on other sites

  • 9 months later...

Je remonte ce sujet pour une petite astuce que j'ai trouvé :

 

Créez une catégorie avec le nom de votre choix (par exemple : "Hidden")

Rajoutez à cette catégorie des sous-catégories correspondant à celles que vous ne voulez pas faire apparaitre dans le bloc des catégories

 

Là, vous obtiendrez dans la liste la catégorie "Hidden" qui se "déplie" avec les catégories à cacher

 

Maintenant, désactivez (radiobutton "Affichée" dans le catalogue) la catégorie "Hidden". Elle disparaîtra de la liste du bloc, mais les sous-catégories restent accessibles via une URL.

 

 

Enjoy ;)

Link to comment
Share on other sites

  • 1 year later...
  • 1 year later...
  • 10 months later...

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...