Menu php et css

Fermé
natty - 7 août 2015 à 10:29
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 7 août 2015 à 11:53
Bonjour,

je ne suis pas du tout informaticienne, je suis plutôt graphiste. Un peu de pédagogie me sera indispensable
en ce moment je dois reprendre un site intra développé en php.
Dans celui-ci j'ai un menu horizontal déroulant qui se construit à partir des items de la BDD MySql. Tous les items et sous-items sont de couleurs et de comportements identiques.
je dois le retoucher afin que chaque item (Item 1, Item 2,..... Item 6, même niveau) soit d'une couleur différente de son voisin.
Par contre les sous-items (Item 11, Item 21,..... Item 61) seront de la même couleur que leur père respectif.

J'ai trouvé le code qui correspond à la fonction d'affichage et de construction du menu.
Dedans j'ai bien vu qu'on faisait appel qu'à un seul style "menu".

Comment puis-je procéder pour que chaque item de premier niveau soit d'une couleur différente du voisin ?

Ci dessous, le code de mon fichier en php ;

//entete de page
// écriture du menu en fonction du code déjà calculé
if (!isset($_SESSION['code_menu']))
{

$sql = "SELECT RUBR_NOM, RUBR_ID, RUBR_ID_PERE, RUBR_IMAG FROM rubrique order by RUBR_ORDRE ASC";
$retour = mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
$rubrique = array();

while($row = mysql_fetch_array($retour)) {
$rubrique[] = array(
'parent_id' => $row['RUBR_ID_PERE'],
'rubr_id' => $row['RUBR_ID'],
'nom_rubrique' => $row['RUBR_NOM'],
'rubr_imag' => $row['RUBR_IMAG']
);
}

$code_menu="<div class=\"menu\">".afficher_menu(0,0,$rubrique)."</div>";
$_SESSION['code_menu'] = $code_menu;
}

echo ($_SESSION['code_menu']);
?>




function afficher_menu($parent, $niveau, $array) {

$html = "";
//On sauvegarde le nombre de fois que la fonction est appelée par elle-même dans la variable $niveau
$niveau_precedent = 0;
if (!$niveau && !$niveau_precedent) {
if ($niveau>1){
$html .= "\n<ul class=\"left\">\n";
}
else{
$html .= "\n<ul>\n";
}
}
foreach ($array AS $noeud) {
if ($parent == $noeud['parent_id']) {
if ($niveau_precedent < $niveau) {
if ($niveau>1){
$html .= "\n<ul class=\"left niveau$niveau\">\n";
}
else{
$html .= "\n<ul class=\"niveau1\">\n";
}
}

//$html .= "<li><a href=\"Affichage.php?IDrubr=" . $noeud['rubr_id'] . "\">" . $noeud['nom_rubrique']."</a>";

if ($noeud['rubr_imag'] <> '')
{
$html .= "<li><a href=\"/../ref_doc/image/" . $noeud['rubr_imag'] . "\">" . $noeud['nom_rubrique']."</a>";
}
else
{
$html .= "<li><a href=\"Affichage.php?IDrubr=" . $noeud['rubr_id'] . "\">" . $noeud['nom_rubrique']."</a>";
}

$niveau_precedent = $niveau;
$html .= afficher_menu($noeud['rubr_id'], ($niveau + 1), $array);
}
}
if ($niveau_precedent == $niveau) $html .= "</ul>\n</li>\n";
else $html .= "</li>\n";
return $html;
}


Je vous remercie d'avance pour votre aide. Bonne journée.
A voir également:

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 525
7 août 2015 à 11:53
Salut,

Pour personnaliser les couleurs de ton menu tu dois utiliser du CSS, tu n'auras normalement pas besoin de modifier le code PHP.

Peux tu stp nous montrer le code html de ton menu (en affichant le code source de la page par exemple), il sera en effet plus facile de t'aider à partir du code source html plutôt qu'avec le code php.

Bonne journée
0