web-dev-qa-db-fra.com

Joomla et Rendre le menu plus accessible

J'essaie de rendre un menu Joomla plus accessible. J'utilise Bootstrap 3 et laisse Joomla générer le menu et les menus déroulants, mais je dois ajouter 'data-toggle = "dropdown" role = "bouton" aria-haspopup = "true "aria-expand =" false " 'jusqu'au niveau supérieur href parmi certains autres éléments aria (voir exemple ci-dessous). Cependant, je ne peux pas comprendre comment utiliser les remplacements de modèle pour saisir les informations dont j'ai besoin. Je préférerais ne pas coder le menu manuellement mais je le ferai si j’en ai aussi.

<ul class="nav  navbar-nav" >
   <li class="dropdown">
      <a href="#" 
         id="toplevelitem" 
         class="dropdown-toggle" 
         data-toggle="dropdown" 
         role="button" 
         aria-haspopup="true" 
         aria-expanded="false"
      >
       Top Level Item
       <span class="caret"></span></a>
       <ul class="dropdown-menu" role="menu" aria-labelledby="toplevelitem">
          <li role="presentation"><a role="menuitem" href="#">Item 1</a></li>
          <li role="presentation"><a role="menuitem" href="#">Item 2</a></li>
          <li role="presentation"><a role="menuitem" href="#">Item 3</a></li>
       </ul>
   </li>
</ul>
1
Chad J Treadway

Copier ces fichiers

  • ../modules/mod_menu/tmpl/default.php
  • ../modules/mod_menu/tmpl/default_url.php

dans le dossier

  • ../templates/your_template_name/html/mod_menu/

Editez le fichier ../templates/votre_nom_modèle/html/mod_menu/default.php et modifiez le code ci-dessous (lignes voisines 62):

if ($item->deeper)
    {
        $class .= ' deeper';
    }

    if ($item->parent)
    {
        $class .= ' parent';
    }

à

if ($item->deeper)
    {
        $class .= ' dropdown';
    }

    if ($item->parent)
    {
        $class .= ' parent';
    }
    if (($item->level == 2) && ($item->parent)) {
        $class .= ' dropdown-submenu';
    }
    if (!empty($class))
    {
        $class = ' class="' . trim($class) . '"';
    }

et à la ligne 86

if ($item->deeper)
    {
        echo '<ul class="nav-child unstyled small">';
    }

à

if ($item->deeper)
    {
        echo '<ul class="dropdown-menu">';
    }

puis ouvrez le fichier ../templates/votre_nom_modèle/html/mod_menu/default_url.php et ajoutez ce code

if ($item->parent)
{
    $attributes['class'] = 'dropdown-toggle';
    $attributes['data-toggle'] = 'dropdown';
    $attributes['role'] = 'button';
    $attributes['aria-haspopup'] = 'true';
    $attributes['aria-expanded'] = 'false';
    $linktype = $item->title . '<span class="caret"></span>';

}

Je ne l'ai pas encore testé, mais vous devriez avoir l'idée de modifications supplémentaires, si nécessaire.

0
webchun