Jump to content

modification du blocktopmenu


Recommended Posts

Bonjour,

 

Je me permets de poster car j'ai un souci avec le blocktopmenu. En effet celui-ci affiche une barre vide quand les sous catégories sont inactives. Cette barre est due au css .sf-menu > li > ul de la ligne 138 qui met un width à 100 % mais qui est obligatoire si on veut que les autres sous catégories soient bien alignées.

 

Je pense que le problème vient du php qui définit les ul . En effet si on regarde le menu on voit que si les catégories ont des sous catégories qui ne sont pas actives il met le ul. et du coup il prend le css. Il faudrait réussir à mettre la condition dans le php dans la function  protected function generateCategoriesMenu($categories, $is_children = 0) à la ligne 593 il y a

 if (isset($category['children']) && !empty($category['children'])) je pense que si on rajoute si les catégories sont actives, ça devrait marcher.

 

j'ai vu que pour le premier nouveau ils ont mis à la ligne 605

 /* Whenever a category is not active we shouldnt display it to customer */
            if ((bool)$category['active'] === false) {
                continue;
            }

J'ai essayé de rajouter la même chose mais ça n'a pas fonctionné

 

Du coup le problème c'est que je ne sais pas mettre cette condition alors si quelqu'un pouvait m'aider pour overider ce fichier php pour que ça fonctionne uniquement si les catégories sont activées se serait cool ;-)

 

Voilà j'espère avoir été claire dans ce que je veux, et je remercie par avance ceux qui prendront le temps de me répondre.

Link to comment
Share on other sites

Bonsoir,

 

Je vois quel est votre problème et plutôt que de modifier le php je peux vous conseiller d'utiliser les CSS. Par exemple pour cibler le menu déroulant du 2e onglet qui ne doit pas s'afficher:

.sf-menu li:nth-child(2):hover ul{display:none !important}

Bon j'utilise un !important qui n'est pas terrible mais bon ça fait l'affaire et sans trop se casser la tête ;)

Link to comment
Share on other sites

Bonjour Julien,

 

Merci de ton aide mais je pense que tu as mal compris mon souci, car justement je ne peux pas modifier le css, si je le modifie cela se répercute sur tous les "li". Je ne peux pas sélectionner le "li" de deuxième niveau car je n'en ai pas il affiche uniquement le "ul"

Peut être ai je mal compris ce que tu m'a dit. J'ai essayé de rajouter le css que tu m'as donné mais il n'est pas pris en compte. D'ailleurs je ne comprends pas nth-child(2),

Pour moi la solution la plus simple c'est supprimé mes sous catégories tant que j'en ai pas besoin ;) mais bon j'aurai préféré trouver une autre soluce.....

Link to comment
Share on other sites

Bonjour T'web

Je suis désolé je travaille en local mais ce n'est pas compliqué de reproduire mon problème. Il suffit de mettre des sous catégories active et mettre une sous catégorie du bocktopmenu en inactive et là on voit que le "ul" s'affiche quand même quand on passe sur le "li".

Merci de t'intéresser à mon cas,

 

Cordialement,

Link to comment
Share on other sites

bizarre.. car je n'ai jamais rencontré ce soucis, pourrais-tu préciser sur quelle version tu développes ton site actuellement ?

 

notes bien que je ne mets pas ta parole en doute !! >  car sur ce forum pas mal de monde perdent vitre patience en ce moment.. donc je préfère être clair.

Link to comment
Share on other sites

Je suis sur prestashop 1.6.1.3, et je comprends que tu me demandes plus de détails. J'apprécie que tu m'aides.Moi aussi c'est la première fois que j'ai ce souci mais en fait je crois que c'est la première fois aussi que je mets toutes les sous-catégories d'une catégorie en inactive. Si on met une sous catégorie en inactive avec des sous catégories active le problème ne se pose pas. Il n'affiche pas les sous catégories inactives mais si toutes les sous catégories de la catégorie sont inactives là il n'affiche pas le li de la sous catégorie mais il met quand même le "ul" qui passe en display:block au passage de la souris sur le "li"

 

J'espère avoir été claire dans mes propos. Comme je disais la solution la plus simple est que j'enlève les sous catégories inactives, mais bon j'aurai bien voulu trouver la solution.

 

Merci pour ton aide.

Link to comment
Share on other sites

ok, je comprend mieux ton souci et c'est interressant de régler ce genre de problème, je vais prendre le temps de m'y pencher dessus asap.. en attendant et par simplicité, il est effectivement facile d'effacer les sous categories inutilisées.. mais si dans un futur proche elles devraient etre actives.. c'est un peu génant...

Link to comment
Share on other sites

Bonjour,

 

Ma solution est effectivement fonctionnelle pour votre problème, soyez sure de bien supprimer le cache après la modification.
Prenons un menu classique :

- T-shirt

- Robes

   * robes longues

   * robes courtes

 

Si vos 2 sous-cat robes courtes et longues sont inactives, au survol de Robes il y a un "<ul>" qui s'affiche, c'est bien votre problème? Si c'est le cas :
 

.sf-menu li:nth-child(2):hover ul{display:none !important}

permet de cibler l'élément Robes au survol et d'appliquer un display:none à cet <ul> qui n'apparait donc plus ;)

Link to comment
Share on other sites

bon ben bravo julien64 tu es presque le meilleur ;-) en effet ça marche mais par contre il faut mettre entre parenthèse le numéro de position de la catégorie qui n'a pas de catégorie active. Vu que chez moi ce sont les categories en position 1,4 et 6 j'ai du mettre comme code :

 .sf-menu li:nth-child(1):hover ul,.sf-menu li:nth-child(4):hover ul,.sf-menu li:nth-child(6):hover ul{
    display:none !important
    }

c'est un bon point pour toi ;-) mais je trouverai ça plus logique qu'il ne mette pas le "ul" si les sous catégories sont inactives.

Mais ton système me permet de palier à mon souci sans supprimer les sous catégories inactives.

 

Merci pour ton aide. Mais si quelqu'un a la solution pour enlever le "ul" pour les catégories qui ont que des sous catégories inactives ce serait cool. ;-)

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