configuration de superfish menu

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

Bonjour,

Pour le développement de mon site web, j'ai choisi d'utiliser le thème danland. Cependant, j'ai problème dans la configuration du superfish menu. Lorsque je "déplis" un menu, le titre parent se déplie lui aussi (cf l'image jointe, l'élément parent "qui sommes-nous" est doublé).

Voici, ci dessous, le code javascript du superfish menu. Je ne parviens pas à identifier le paramètre ou la variable à intégrer au menu déroulant.

// $Id: superfish.js,v 1.1 2010/07/19 22:25:16 danprobo Exp $
/*
* Superfish v1.4.8 - jQuery menu widget
* Copyright (c) 2008 Joel Birch
*
* Dual licensed under the MIT and GPL licenses:
*     http://www.opensource.org/licenses/mit-license.php
*   http://www.gnu.org/licenses/gpl.html
*
* CHANGELOG: http://users.tpg.com.au/j_birch/plugins/superfish/changelog.txt
*/

;(function($){
  $.fn.superfish = function(op){

        var sf = $.fn.superfish,
           c = sf.c,
          $arrow = $(['<span class="',c.arrowClass,'"> &#187;</span>'].join('')),
            over = function(){
             var $$ = $(this), menu = getMenu($$);
              clearTimeout(menu.sfTimer);
                $$.showSuperfishUl().siblings().hideSuperfishUl();
         },
         out = function(){
              var $$ = $(this), menu = getMenu($$), o = sf.op;
               clearTimeout(menu.sfTimer);
                menu.sfTimer=setTimeout(function(){
                    o.retainPath=($.inArray($$[0],o.$path)>-1);
                 $$.hideSuperfishUl();
                  if (o.$path.length && $$.parents(['li.',o.hoverClass].join('')).length<1){over.call(o.$path);}
              },o.delay);
           },
         getMenu = function($menu){
             var menu = $menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
              sf.op = sf.o[menu.serial];
             return menu;
           },
         addArrow = function($a){ $a.addClass(c.anchorClass).append($arrow.clone()); };
        
       return this.each(function() {
          var s = this.serial = sf.o.length;
         var o = $.extend({},sf.defaults,op);
           o.$path = $('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
               $(this).addClass([o.hoverClass,c.bcClass].join(' '))
                 .filter('li:has(ul)').removeClass(o.pathClass);
          });
            sf.o[s] = sf.op = o;
          
           $('li:has(ul)',this)($.fn.hoverIntent && !o.disableHI) ? 'hoverIntent' : 'hover'.each(function() {
               if (o.autoArrows) addArrow( $('>a:first-child',this) );
           })
         .not('.'+c.bcClass)
              .hideSuperfishUl();
           
           var $a = $('a',this);
            $a.each(function(i){
               var $li = $a.eq(i).parents('li');
                $a.eq(i).focus(function(){over.call($li);}).blur(function(){out.call($li);});
          });
            o.onInit.call(this);
          
       }).each(function() {
           var menuClasses = [c.menuClass];
           if (sf.op.dropShadows  && !($.browser.msie && $.browser.version < 7)) menuClasses.push(c.shadowClass);
          $(this).addClass(menuClasses.join(' '));
     });
    };

    var sf = $.fn.superfish;
   sf.o = [];
sf.op = {};
    sf.IE7fix = function(){
        var o = sf.op;
     if ($.browser.msie && $.browser.version > 6 && o.dropShadows && o.animation.opacity!=undefined)
         this.toggleClass(sf.c.shadowClass+'-off');
       };
sf.c = {
       bcClass     : 'sf-breadcrumb',
       menuClass   : 'sf-js-enabled',
       anchorClass : 'sf-with-ul',
      arrowClass  : 'sf-sub-indicator',
        shadowClass : 'sf-shadow'
    };
sf.defaults = {
        hoverClass  : 'sfHover',
     pathClass   : 'overideThisToUse',
        pathLevels  : 1,
       delay       : 800,
     animation   : {opacity:'show'},
      speed       : 'normal',
      autoArrows  : true,
        dropShadows : true,
        disableHI   : false,        // true disables hoverIntent detection
     onInit      : function(){}, // callback functions
      onBeforeShow: function(){},
        onShow      : function(){},
        onHide      : function(){}
};
$.fn.extend({
      hideSuperfishUl : function(){
          var o = sf.op,
             not = (o.retainPath===true) ? o.$path : '';
          o.retainPath = false;
          var $ul = $(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
                   .find('>ul').hide().css('visibility','hidden');
           o.onHide.call($ul);
            return this;
       },
     showSuperfishUl : function(){
          var o = sf.op,
             sh = sf.c.shadowClass+'-off',
                $ul = this.addClass(o.hoverClass)
                  .find('>ul:hidden').css('visibility','visible');
          sf.IE7fix.call($ul);
           o.onBeforeShow.call($ul);
          $ul.animate(o.animation,o.speed,function(){ sf.IE7fix.call($ul); o.onShow.call($ul); });
           return this;
       }
  });

})(jQuery);

Par avance merci.

Version de Drupal : 

Bonjour,
ce commentaire vient peut-être un peu tard, sans doute l'apparition de l'élément parent vient de la configuration de DHTML MENU où l'option "Ajouter un lien en plus pour atteindre la page du menu père" a été selectée.

J'ai testé la modification de DHTML menu qui impacte bien le superfish menu utilisé dans le thème Danland. Mais dans ce cas on n'accède plus au parent (à moins d'activer le double click dans DHTML menu, ce qui est un peu galère à mon avis.
Le conseil de budasam me parait également judicieux, je vais également le tester.
Bon courage.

Salut,
j'utilise aussi ce module dont l'effet est très sympa. Je le couple avec le module menu item container (http://drupal.org/project/menu_item_container) qui permet de créer un élément de menu sans que celui-ci soit un lien vers une page existante mais seulement le titre d'une rubrique. D'où le nom du module.
Et puisqu'il n'y a pas de page derrière ton élément de menu il y a des chances pour que ton doublon disparaisse.

En espérant que ça te serve.