Bonjour à tous,
J'ai commencé à développer un espace membre générique pour une utilisation future en essayant d'appliquer au mieux les principes du patron MVC.
Tout fonctionne bien, j'ai développé les fonctionnalités suivantes :
- inscription d'un membre,
- connexion d'un membre,
- afficher son profil,
- modifier son profil.
J'utilise MySQL pour stocker les informations des membres.
Je me suis attaqué à l'affichage de la liste des profils des membres et cela fonctionne bien mais je bute sur un problème :
Je trouve que le code de ma Vue (qui affiche la liste des membres) contient "trop de code php", alors qu'elle devrait contenir, en principe, que de l'HTML...
Voici mes sources :
1) la fonction du modèle "membres.php" :
2) le contrôleur "afficher_liste_membres.php"
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 function selectioner_liste_membres() { $pdo = PDO2::getInstance(); $requete = $pdo->prepare("SELECT id,nom_utilisateur, adresse_email, avatar, date_inscription FROM membres "); $requete->execute(); if ($result = $requete->fetchAll(PDO::FETCH_ASSOC)) { $requete->closeCursor(); return $result; } return false; }
3) la Vue "liste_membres_utilisateurs.php" :
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 <?php if (!utilisateur_est_connecte()) { // On affiche la page d'erreur comme quoi l'utilisateur doit être connecté pour voir la page include CHEMIN_VUE_GLOBALE.'erreur_non_connecte.php'; } else { // on selection la liste des membres inscrits $liste_membres=selectioner_liste_membres(); if (!empty($liste_membres)) { include CHEMIN_VUE.'liste_membres_utilisateurs.php'; } else { include CHEMIN_VUE.'liste_membres_inexistante.php'; } }
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 <?php $html_liste=''; foreach($liste_membres as $num_membre=>$infos_membre) { list(,$nom_utilisateur,$adresse_email,$avatar,$date_inscription) = array_values($infos_membre); $html_liste.='<h2>Profil de '.htmlspecialchars($nom_utilisateur).'</h2>'; $html_liste.='<table border="1"><tr><img src="'.$avatar.'" title="Avatar de '.htmlspecialchars($nom_utilisateur).'" BORDER="2" WIDTH="'.AVATAR_LARGEUR_MAXI.'" HEIGHT="'.AVATAR_HAUTEUR_MAXI.'" /></td></tr></table>'; $html_liste.='<p>'; $html_liste.='<span class="label_profil">Adresse email</span> : '.htmlspecialchars($adresse_email).'<br />'; $html_liste.='<span class="label_profil">Date d inscription</span> : '.dateFR($date_inscription); } echo $html_liste;
Ma question est : Est-il possible de recoder le contrôleur et la vue de manière à respecter la contrainte précédente que je me suis imposée?
Merci infiniment pour toute suggestion qui pourrait m'aider à résoudre ce problème !
Partager