1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| //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;
} |
Partager