1
|
<?php
|
2
|
/*
|
3
|
Création d'un menu a partir d'un XML,
|
4
|
avec une mise en forme CSS et le tout en PHP5 !
|
5
|
*/
|
6
|
|
7
|
/*************** Menu XML ***********************/
|
8
|
<menus>
|
9
|
<menu item="Presentation">
|
10
|
<menuitem item="Accueil" url="index.php?mod=accueil" />
|
11
|
<menuitem item="Mon CV" url="index.php?mod=CV" />
|
12
|
<menuitem item="Contact" url="index.php?mod=email" />
|
13
|
</menu>
|
14
|
|
15
|
<menu item="Passions">
|
16
|
<menuitem item="Informatique" url="index.php?mod=Informatique" />
|
17
|
<menuitem item="Dessin" url="index.php?mod=Dessin" />
|
18
|
<menuitem item="Musique" url="index.php?mod=Musique" />
|
19
|
<menuitem item="Monnaie" url="index.php?mod=Monnaie" />
|
20
|
</menu>
|
21
|
|
22
|
<menu item="Service">
|
23
|
<menuitem item="Aide" url="index.php?mod=Aide" />
|
24
|
<menuitem item="Liens" url="index.php?mod=liens" />
|
25
|
<menuitem item="News" url="index.php?mod=news" />
|
26
|
<menuitem item="Creation PDF" url="index.php?mod=pdf" />
|
27
|
<menuitem item="Article" url="index.php?mod=article" />
|
28
|
<menuitem item="TV" url="index.php?mod=tv" />
|
29
|
</menu>
|
30
|
</menus>
|
31
|
|
32
|
/******************** CSS *************/
|
33
|
|
34
|
div#navcontainer
|
35
|
{
|
36
|
position: relative;
|
37
|
font: small-caps bold small/24px "Times New Roman", serif;
|
38
|
letter-spacing: 1px;
|
39
|
text-align: center;
|
40
|
}
|
41
|
|
42
|
ul#navlist
|
43
|
{
|
44
|
border-top: 1px solid #fff;
|
45
|
margin: 0;
|
46
|
width: 120px;
|
47
|
/* 4 * 120px li */
|
48
|
}
|
49
|
|
50
|
ul#subnavlist
|
51
|
{
|
52
|
border-bottom: 2px solid #444;
|
53
|
margin: 0;
|
54
|
padding: 0;
|
55
|
width: 120px;
|
56
|
}
|
57
|
|
58
|
/* all buttons */
|
59
|
ul#navlist li >
|
60
|
a:link, ul#navlist li >
|
61
|
a:visited, ul#navlist li * a:link, ul#navlist li * a:visited
|
62
|
{
|
63
|
text-decoration: none;
|
64
|
width: 120px;
|
65
|
}
|
66
|
|
67
|
#navlist li
|
68
|
{
|
69
|
list-style-type: none;
|
70
|
margin: 0;
|
71
|
padding: 0;
|
72
|
}
|
73
|
|
74
|
/* parents */
|
75
|
ul#navlist li > a:link, ul#navlist li > a:visited
|
76
|
{
|
77
|
background: #F60;
|
78
|
border-bottom: 4px solid #800;
|
79
|
border-top: 2px solid #ccc;
|
80
|
color: #c00;
|
81
|
display: block;
|
82
|
}
|
83
|
|
84
|
ul#navlist li > a:hover
|
85
|
{
|
86
|
background: #f5f5f5;
|
87
|
border-bottom: 2px solid #eee;
|
88
|
border-top: 4px solid #fff;
|
89
|
color: #000;
|
90
|
}
|
91
|
|
92
|
/* children */
|
93
|
ul#navlist li * a:link, ul#navlist li * a:visited
|
94
|
{
|
95
|
background: #ccc;
|
96
|
border-bottom: 0;
|
97
|
border-top: 2px solid #bbb;
|
98
|
color: #777;
|
99
|
display: block;
|
100
|
float: none;
|
101
|
}
|
102
|
|
103
|
ul#navlist li * a:hover
|
104
|
{
|
105
|
background: #999;
|
106
|
border-bottom: 1px solid #888;
|
107
|
border-top: 1px solid #eee;
|
108
|
color: #fff;
|
109
|
}
|
110
|
|
111
|
/* active states */
|
112
|
a:link[id=current], a:visited[id=current]
|
113
|
{
|
114
|
background: #c30 !important;
|
115
|
color: #000 !important;
|
116
|
}
|
117
|
|
118
|
a:hover[id=current] { background: #f5f5f5 !important; }
|
119
|
|
120
|
a:link[id=subcurrent], a:visited[id=subcurrent]
|
121
|
{
|
122
|
background: #444 !important;
|
123
|
color: #fff !important;
|
124
|
}
|
125
|
|
126
|
a:hover[id=subcurrent] { background: #000 !important; }
|
127
|
|
128
|
|
129
|
/** récuperer les informations de chaque noeud **/
|
130
|
|
131
|
if (file_exists('menu.xml')) {
|
132
|
$xml = simplexml_load_file('menu.xml');
|
133
|
foreach($xml->menu as $menu){
|
134
|
/*Passage en parametre href du titre du menu*/
|
135
|
echo '<ul id="navlist"><li id="active">
|
136
|
<a href="index.php?to='.$menu['item'].'"
|
137
|
id="current"'.$menu['item'].'">',$menu['item'],'</a></li>';
|
138
|
/*Cette condition permet d'afficher le sous-menu correspondant */
|
139
|
if(isset($_GET['to'])) {
|
140
|
if($_GET['to']==$menu['item']){
|
141
|
foreach($menu->menuitem as $menuitem){
|
142
|
echo '<li id="subnavlist">
|
143
|
<a id="subcurrent" href='.$menuitem['url'].'>
|
144
|
',$menuitem['item'].'</a></li>';
|
145
|
}
|
146
|
}
|
147
|
}
|
148
|
echo '</ul>';
|
149
|
}
|
150
|
|
151
|
} else { exit('Failed to open menu.xml.'); }
|
152
|
|
153
|
?>
|