Menu déroulant trop d'info tue l'info ;-)

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,

J'ai besoin de créer un site internet et que le menu principal du site permette de voir les sous menus par déroulement.
Je me suis d'abord dit qu'il fallait trouver un thème qui permette de le faire.
Ensuite j'ai créé un menu avec des sous-menus...
Cependant, cela ne fonctionne pas, aucun menu déroulant, mes sous menus n'apparaissent pas.
J'ai donc trouvé le module nice-menu. Cela ne convient pas car il fonctionne par bloc et donc, il ne se met pas à l'endroit du menu de base du thème...

Comment faire?

Merci

Forum : 
Version de Drupal : 

Tu peux tout rajouter un nouvelle région dans ton thème et la substituer au menu primaire dans page.tpl.php.

Dans ton .info tu rajoutes une liste augmentée de régions :

regions[left] = Left sidebar
regions[right] = Right sidebar
regions[content] = Content
regions[header] = Header
regions[footer] = Footer
regions[primary] = Content Top

là c'est dans le cas où ton thème n'a pas de région définies, si tu as déjà des régions dans ton .info, tu rajoutes seulement la dernière de cette liste.

Dans ton template.php tu rajoutes la fonction qui va créer le contenu de cette nouvelle région :

function mon_theme_preprocess_page(& $variables) {
   $variables['primary'] = theme('blocks', 'primary');
}

Puis dans ton page.tpl.php, tu vas remplacer la portion de code qui génère le menu par ta nouvelle variable de région. Dans garland la zone à remplacer serait celle là :

<?php if (isset($primary_links)) : ?>
          <?php print theme('links', $primary_links, array('class' => 'links primary-links')) ?>
        <?php endif; ?>

Lorsque c'est fait, va faire un tour dans l'administration des thèmes pour que ta nouvelle région soit prise en compte (juste y aller, ça suffit). Puis va dans l'administration des blocs. Tu devrais avoir une nouvelle région pour y mettre ton nice-menu.

0_o Pourquoi ai-je l'impression que tu viens de me donner la réponse la plus évidente du monde et que mon cerveau de poulet n'y comprends rien...
Je vais essayer de comprendre ligne par ligne ce que tu viens de m'expliquer et je reviens pleurer ou crier hourra après. Ce qui m'étonne c'est qu'on soit obligé de faire tout cela et qu'on ne puisse pas mettre en place un truc plus simple.
merci!

Bon, je confirme, j'ai une cervelle de poulet...
Bon je vais faire plus simple, sur certaines vignettes de thèmes quand on choisi un thème sur le site de drupal on voit bien que certains sont déjà équipés de volets déroulants. Pourquoi donc quand je créé mes menus et sous menus cela n'est-il pas pri en compte et que cela se créer tout seul? Exemple, quand on regarde la prévisualisation du thème inf08 (on voit bien un menu déroulant!)
(je fais naïve la non?)
Je n'ai donc toujours pas mon menu.

C'est un choix de la personne que a développé le thème que de mettre le menu primaire en menu déroulant. D'autre ne le font pas (par exemple le thème Garland il me semble). D'ailleurs l'auteur le dit clairement sur la page du thème Inf08 : "Primary links with drop-down menu using suckerfish".

Maintenant ce que je t'expliquais plus haut était une réponse à "comment mettre un bloc (ici nice-menu) à la place du menu primaire".

Si tu veux un menu primaire déroulant, la démarche est toute autre :
1/ Ajouter un fichier template.php à to thème.
2/ Mettre dans ce ficher une fonction de preprocession de page qui va ajouter au modèle page.tpl.php une variable qui contiendra ton menu en entier (les N niveaux) :

<?php
function phptemplate_preprocess_page(&$vars) {
 
$vars['menu_primaire'] = menu_tree(variable_get('menu_primary_links_source', 'primary-links'));
}
?>

3/ Dans ton page.tpl.php, tu remplace l'ancien affichage de menu primaire non-dérouloant (là portion de code dont je te parlais dans le premier post) par quelque chose comme cela :

    <?php if ($primary_links) { ?>
    <div id="primary-nav">
      <?php echo $primary_links_tree; ?>
    </div>
    <?php } ?>

4/ Tu ajoutes à ta feuille de style (style.css) tout ce qui se trouve dans la feuille de style inf08 et qui commence par #primary-nav. Cette feuille de style permet de faire un menu déroulant sans script (c'est ce qu'on appelle un menu suckerfish, cela vient du psoeudo de son auteur je crois). Faut aussi un peu adapter les images qui y sont utilisées.

Donc, au risque d'avoir l'air d'un navet, on est bien d'accord que Inf08 est normalement DEJA programmé pour générer tout seul le menu déroulant! Donc pourquoi devrais-je intervenir dans le code (chose dont je suis incapable). Donc en fait, sans connaissances en php et css, avec drupal, il n'est pas possible d'installer simplement un menu déroulant? Ne me dites-pas qu'il va falloir que je me penche sur Joomla! Je suis habituée à Drupal moi!

Oui, Inf08 a déjà un menu déroulant. Maintenant je dis juste que ce n'est pas le cas de tous les thèmes, et si tu choisi un thème qui n'en a pas, ben faut effectivement le programmer. Maintenant si tu Inf08 correspond à tes besoins, où est le problème ?

Pour le coup c'est moi qui suis paumé.

PS: Une bonne partie de mes réponses correspondent effectivement à du développement, car tu es ici dans la section développement du forum ;-)

Vraiment merci de toute ton attention,

On est enfin au coeur du problème, nf08 a soit disant un menu déroulant selon la fiche du thème mais chez moi il n'apparaît pas!!!!!!!!! ;-)
Enfin nous y voilà!
Oh tu sais il est possible que je ne sois pas dans la bonne section mais quelque part, je veux bien me mettre partout pour avoir une solution.
Donc enfin de compte, n'importe quel thème m'irait, je veux juste pouvoir mettre en place le menu suivant : en maj le menu principal, les sous menus en liste a chaque fois.
Avec un menu déroulant. Le thème je m'en fiche du moment que quand je met en place le menu cela créé un menu déroulant en fait.

ATELIER KM17
- Histoire
- Pepiniere
- Statuts
- Expositions
ARTISTES
- Alex
- Amaury
- Lazz
- LN
FORMATION
- Sculpture sur bois
- Dorure
- Modelage
- Tarifs
- Reglements
CONTACT
- Ou sommes nous
- Contact
PRESSE
- Dossier Presse
- Articles KM17
LIENS
- Mecenes
- Associations
- Artistes
- Amis

P.S : Je t'assure que pour beaucoup d'autres choses que Drupal j'ai l'air moins quiche... ;-)
Je veux donc bien encore un peu de ton aide!