Bonjour,
Après avoir réussi à faire un routeur qui va chercher la bonne méthode du bon contrôleur selon l'URL demandée, je passe à la mise en POO de la partie vue.
Le tutoriel de Baptiste Pesquet est basé sur des vues équivalentes à des pages.
Dans mon cas, une page peut être composée de plusieurs morceaux que j'aurais tendance à appeler chacun des vues.
J'ai déjà un gabarit de page qui contient :
- un header (logo, titre, connexion/bienvenue/déconnexion et, plus tard, choix de la langue) ;
- au bas du header, je prévois un menu personnalisé pour l'utilisateur connecté selon son type ;
- une partie contenu divisée en trois colonnes (menu général, contenu selon l'action demandée, actualités du site)
- un pied de page.
Selon le cas (page d'accueil ou page dans l'application, utilisateur connecté ou pas), il y donc des morceaux (vues) variables qui viennent se positionner dans un gabarit global.
Dans mon début de développement en mode procédural, j'avais notamment mis en oeuvre dans le gabarit :
- une partie dans le <head> qui charge les différents fichiers css et javascript via des tableaux $css_files et $js_files :
- une partie dans la colonne centrale chargeant les différents morceaux (vues) nécessaires selon l'action lancée via un tableau $liste_vues :
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 <?php if(isset($css_files)) { foreach ($css_files as $css_file) { ?> <link rel="stylesheet" href="<?php echo 'public/'.$css_file; ?>" type="text/css"> <?php } } if(isset($js_files)) { foreach ($js_files as $js_file) { ?> <script src="<?php echo 'public/'.$js_file; ?>" ></script> <?php } } ?>
- idem pour les actualités dans la colonne de droite :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?php if(isset($listeVues) && count($listeVues) > 0) { // S'il y a au moins une vue supplémentaire à afficher, on l'inclut ici foreach($listeVues as $vue) { require RACINE.$vue; } } ?>
Puis-je garder mon gabarit tel quel ou bien y a t-il une meilleur façon de faire une page composite en POO ?
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 <?php if(isset($liste_actualites) && count($liste_actualites) > 0) { foreach($liste_actualite AS $id_actualite => $actualite) { ?> <div class="div_actualite"> <div class="titre_actuatite"> <h4><?php echo $actualite['titre']; ?></h4> </div> <div class="debut_actualite"> <p> <?php echo $actualite['debut_texte']; ?><br /> <a href="<?php echo BASE.'fr/Actualites/voir/actu='.$id_actualite; ?>" target="_self"> Lire la suite... </a> </p> </div> </div> <?php } // Fin foreach($liste_actualite AS $id_actualite => $actualite) } // Fin if(isset($liste_actualites) && count($liste_actualites) > 0) ?>
Partager