Mod nice_menus & Drupal 5.1

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 mettre en place des menus déroulants dans la barre de navigation. J'ai trouvé le module nice_menus mais il n'est que pour Drupal 4.7 et 4.6, pour la 5.1 ces modules sont ils utilisables ou bien faut il attendre une mise à jour ?

A défaut existe t'il des themes pour la 5.1 qui intègrent d'office des menus déroulants ?

Merci d'avance.

Forum : 
Version de Drupal : 

J'viens de trouver la réponse par ici:
http://drupal.org/node/109865#comment-193630
J'ai installé celui de dlane:
http://egressive.com/drupal_files/nice_menus-egressive20070304.tgz

Cela marche niquel hormis un bug avec IE6 (pas de sous sous menu affichable).
A prendre en considération les bugs et solutions qui étaient liées aux précédentes version de nice_menus avec IE 5.5:
http://drupal.org/node/43899

Par contre j'ai installé le theme Antique_moderne qui est doté d'un menu typé onglets dans le header. J'aimerais que nice_menus gère cette présentation en onglets mais je ne peux que l'utiliser en entête, c'est à dire sous le header.
Si quelqu'un a une solution pour ce faire, je l'aime !

:D

et bien tu place le block du nice menu dans la region de bloc header !?!
sinon, tu crée une nouvelle region de bloc ou tu veux, comme ca :
--dans page.tpl

<?php
 
if ($blockPourtonNicemenu) {
?>
<?php
 
print $blockPourtonNicemenu
?>
<?php
 
}
?>

--et dans template.php, rajoute dans "function airtheme_regions() {:"

'blockPourtonNicemenu' => t('blockPourtonNicemenu'),

Désolé si ma question était "primitive", je suis un pur newbie...
et à cause de mon niveau au raz des paquerettes "place le block du nice menu dans la region de bloc header" ne me dit pas grand chose.

Dans mon page.tpl j'ai mit les lignes que tu me conseilles dans le header:

  <!-- Begin page header -->
  <div id="head">
    <div id="site-name"><?php print $site_name; ?></div>
    <?php if ($site_slogan) { ?>
      <div class='site-slogan'><?php print $site_slogan ?></div>
    <?php } ?>
    <?php if (isset($primary_links)) { ?>
      <div id="menu">
      <?php print theme('menu_links', $primary_links); ?>
      </div>
    <?php } ?>
    <?php if ($MonNiceMenu) { ?>
      <?php print $MonNiceMenu ?>
    <?php } ?>
  </div>
<!-- End page header -->

J'espère que c'est ça...

Par contre dans template.php il n'y a pas de ligne "airtheme_regions"...

Je ne vois pas du tout comment dépasser ce pépin.

En tout cas merci pour ton aide :)

place le block du nice menu dans la region de bloc header" ne me dit pas grand chose.

en fait dans admin/block, tu choisi un bloc, son poid (-10 à 10) et sa région, c'est a dire ou il va etre placé (sidebarleft ou footer par exemple.. bon d'apres ton code t'as pas de block header, ca me semble etrange).

Donc si tu veux que ton menu s'affiche dans le header, tu choisi la region de bloc "header" si tu l'as.
pour le code dans page.tpl, c'est ca.
pour le template, le code te permet de pouvoir choisir la region "MonNiceMenu" dans admin/bloc.
je te donnerai le code entier lundi car je suis pas chez moi.

Sinon, telecharge quelques themes, et regarde page.tpl et template.php.
cherche le mot header. t'auras juste a copier coller les codes de block header dans les memes fichiers de TON theme.

Je trouve ça intéressant parce que je voudrais faire la même chose. Mais dans mon thème, il n'y a pas de fichier template.php. Comment faire ? Se trouve-t-il ailleurs ?

Je précise que je suis un newbie moi aussi.
Merci.

Merci encore pour ton aide Jubjub !

Pour ce qui est de farfouiller dans les autres thèmes je n'ai trouvé aucun "airtheme_region" dans les template.php de ceux que j'ai osculté. Peut-être que ça ne se pratique plus avec la 5.x.

Par contre je viens de trouver une solution.

Dans /modules/nice_menus/nice_menus.css si l'on rajoute ceci:

  #block-nice_menus-x {
    position: relative;
    top: 5em;
    left: 5em;
  }

Le menu x (à changer en fonction de l'ID du menu désiré) est libre et se cale en fonction de la position relative (ici 5em) qui lui est assignée.
Il suffit alors de modifier les valeurs top et left pour placer le menu où l'on souhaite.

Je ne sais pas si c'est la solution parfaite, a vous de me dire :)

C'est chaud...
Entre les unexpected <, expected ), unexpected $
et unexpected T_CONSTANT_ENCAPSED_STRING, je vais d'erreurs en erreurs.

De ce que je comprend (hum...) d'abord il n'y a pas besoin du <?php puisqu'il est déjà en début de page non ?
Ensuite la , en fin de code ne devrait pas plutot être un ; ?
Et puis j'ai comme l'impression qu'il manque une parenthèse fermante quelque part (voire deux ?)...

A moins que ce soit à cause des données que j'ai rentré... mon theme je l'ai renommé moonshine et le nice menu que je désire s'appelle admin bref au final j'ai noté (après avoir corrigé ce qui me renvoit des erreurs zarbes):

function moonshine_regions() {
return array()
'admin' => t('admin');
}

Et le résultat c'est une unexpected T_CONSTANT etc...

je te donne tout le code de mon template ca t'aidera mieux ...

<?php
/**
* Catch the theme_profile_profile function, and redirect through the template api
<em>/
function phptemplate_user_profile($user, $fields = array()) {
  // Pass to phptemplate, including translating the parameters to an associative array. The element names are the names that the variables
  // will be assigned within your template.
  /</em> potential need for other code to extract field info */
return _phptemplate_callback('user_profile', array('user' => $user, 'fields' => $fields));
  }
?>

<?php
function NomDeMonTheme_regions() {
  return array(
   
'right' => t('right sidebar'),
   
'left' => t('left sidebar'),
(
je mets pas tout mes blocks hein ! :)
 
);
}
?>

voilou, donc "function NomDeMonTheme_regions()" permet d'afficher le nom de ton block dans le champs du choix des regions de block dans admin/block.

Yes plus d'erreurs! Merci!

Effectivement grâce à cette manipulation de template.php on peut créer des zones de blocs à volonté.

Pour positionner ces zones on modifie alors page.tlp.php

Et au final on place les blocs désirés dans ces nouvelles zones via administrer/construire/blocs.

Il me reste plus qu'à apprendre à définir plus finement les positionnements (par exemple ma nouvelle zone "blocs dans le header est en plein milieu du header alors que je le voudrai à sa base...). A coup de tests divers je devrais y parvenir.

Merci encore, non seulement cela répond à mon désir mais en plus cela m'ouvre des portes sur la maitrise de toutes les zones de blocs. C'est excellent :)
Thanx !

Ok merci j'étais à l'ouest... désolheu

Maintenant je crois que j'ai capté, je ferai un ti tuto pour résumer tout ça grâce à tes aides :)

Dis juste un dernier truc... Pour déterminer la spacialisation de façon plus fine que juste en incluant le renvoi aux tables dans les zones prédéterminées par le page.tpl.php, connais tu des topiks qui traitent de celà ou bien des sites ? (j'ose pas te demander de me l'expliquer, je t'ai déjà trop squatté ^^')