Bonjour,
Je suis entrain de réaliser un site web pour mon plaisir donc en local.
Je le créer en PHP(via la librairie TPLN) et comme SGBD : mysql.
Je souhaiterai donc que le menu de mon site s'affiche via une table 'liste_menus' de ma base de données.
Ci-dessous le contenu de la table 'liste_menus' :
Ensuite, ci-dessous mon code PHP me permettant d'afficher les menus et sous menus :--
-- Structure de la table `liste_menus`
--
CREATE TABLE IF NOT EXISTS `liste_menus` (
`LM_id` smallint(6) NOT NULL AUTO_INCREMENT,
`LM_affichage` smallint(6) NOT NULL COMMENT 'AFFICHAGE DU MENU SELON LETAT DU MEMBRE : 1=Membre non connecté; 2=Membre connecté; 3=Membre connecté ou non connecté',
`LM_ordre_menu` smallint(6) NOT NULL,
`LM_ordre_sous_menu` smallint(6) NOT NULL,
`LM_libelle` varchar(500) NOT NULL,
`LM_lien` varchar(500) NOT NULL,
PRIMARY KEY (`LM_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;
--
-- Contenu de la table `liste_menus`
--
INSERT INTO `liste_menus` (`LM_id`, `LM_affichage`, `LM_ordre_menu`, `LM_ordre_sous_menu`, `LM_libelle`, `LM_lien`) VALUES
(1, 3, 1, 0, 'ACCUEIL', 'Index.php'),
(2, 2, 2, 0, 'DECONNEXION', 'Index.php?action=deconnexion'),
(4, 3, 3, 0, 'GESTION COMPTE', ''),
(5, 2, 3, 1, 'Informations Personnelles', 'Index.php?action=informations_personnelles'),
(6, 2, 3, 2, 'Paramètrage des menus', 'Index.php?action=parametrage_menus'),
(7, 2, 4, 0, 'GESTION AGENDA', ''),
(8, 2, 4, 1, 'Paramètrage', ''),
(9, 2, 4, 2, 'Partage', ''),
(3, 1, 2, 0, 'CONNEXION', ''),
(10, 1, 3, 1, 'Mot de passe perdu', 'Index.php?action=mot_passe_perdu'),
(11, 1, 2, 1, 'Connexion', 'Index.php?action=connexion');
Pour information, voici le code de la page 'Modules/connexion/M_connexion.htm' :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php $Tpl->Open('Modules/menus/M_menus_base.html'); // Requête permettant de récupérer les menus. $sql_menus = "SELECT * FROM liste_menus WHERE LM_affichage IN('1','3') AND LM_ordre_sous_menu='0' ORDER BY LM_ordre_menu"; $Tpl->DoQuery($sql_menus); While($menu=$Tpl->DbFetch()) { $nb = $Tpl->getQueryNb(); // Création de l'affichage des menus. $liste = '<ul class="titre_menu">'; if($menu['LM_lien']!="") $liste .= '<li class="menu2"><a href="'.$menu['LM_lien'].'" title="'.$menu['LM_libelle'].'">'.$menu['LM_libelle'].'</a></li>'; else $liste .= '<li class="menu1">'.$menu['LM_libelle'].'</li>'; $liste .= '</ul>'; // Récupération de(s) sous menus correspondant au menu en cours d'affichage. $sql_ss_menus = "SELECT * FROM liste_menus WHERE LM_ordre_menu = '".$menu['LM_ordre_menu']."' AND LM_affichage IN('1','3') AND LM_ordre_sous_menu!='0' ORDER BY LM_ordre_sous_menu"; $Tpl->DoQuery($sql_ss_menus); // Si on à au moins un résultat. if($Tpl->DbNumRows()) { // On vérifie si on est au menu 3(=CONNEXION) et si c'est le cas on affiche le contenu du lien dans une div. // Sinon on affiche le(s) sous menus dans une balise ul. if($menu['LM_id']=='3') { $liste .= '<div>'; include('Modules/connexion/M_connexion.html'); $liste .= '</div>'; } else { $liste .= '<ul class="contenu_menu">'; While($sous_menu=$Tpl->DbFetch()) { $liste .= '<li><a href="'.$sous_menu['LM_lien'].'" title="'.$sous_menu['LM_libelle'].'">'.$sous_menu['LM_libelle'].'</a></li>'; } $liste .= '</ul>'; } } $Tpl->ChangeQuery($nb); $Tpl->Parse('liste_menus.liste', $liste); $Tpl->Loop('liste_menus'); } $Tpl->Write(); ?>
Mon problème c'est que le menu s'affiche mais pas au bon endroit. Ci-joint ce que j’obtiens comme visualisation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <form action="" method="post" name="Form_connexion"> <ul class="contenu_menu"> <li>Mail</li> <li><input type="text" name="email"></input></li> <li>Mot de passe</li> <li><input type="password" name="mdp"></input></li> <li><input type="submit" name="valider" value="Valider"></input></li> <li><a href="Index.php?action=inscription" title="S'inscrire ?">S'inscrire ?</a></li> </ul> </form>
Ma question est : Comment puis-je faire pour que la partie connexion (entouré en rouge) soit placé en dessous du menu 'CONNEXION' ?
Merci d'avance.
Partager