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>
Copier ces fichiers
dans le dossier
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.