51 if (!isset($_SESSION[
'user_logged_in']) || !isset($_SESSION[
'user_role'])) {
57 switch ($_SESSION[
'user_role']) {
58 case RoleEnum::Artiste:
64 case RoleEnum::Auditeur:
67 case RoleEnum::Producteur:
90 $redirectUrl = $_GET[
"redirect"] ??
"";
91 $redirectUrl = urldecode($redirectUrl);
94 if (!empty($redirectUrl)) {
97 $redirectUrlDecoded = urldecode($redirectUrl);
98 if (strpos($redirectUrlDecoded,
'://') !==
false || (strlen($redirectUrlDecoded) > 0 && $redirectUrlDecoded[0] !==
'/')) {
104 if (isset($_SESSION[
'user_logged_in']) && $_SESSION[
'user_logged_in']) {
106 if (!empty($redirectUrl)) {
108 header(
'Location: ' . $redirectUrl);
115 $template = $this->
getTwig()->load(
'connect.html.twig');
116 echo $template->render([
118 'title' =>
"Connexion requise",
119 'name' =>
"login_required",
120 'description' =>
"Veuillez vous connecter pour continuer"
122 'session' => $_SESSION,
123 'redirect' => $redirectUrl
136 $template = $this->
getTwig()->load(
'index.html.twig');
137 echo $template->render([
139 'title' =>
"Accueil",
141 'description' =>
"Page d'accueil de Paaxio"
143 'session' => $_SESSION
161 $artistesPopulaires = $aristesDAO->findTrending(8, 7);
164 $chansonsPopulaires = $chansonsDAO->findTrending(8, 7);
167 $chansonsPopulairesAvecArtistePseudo = [];
168 foreach ($chansonsPopulaires as $chanson) {
170 $artistePseudo =
null;
172 if ($chanson->getEmailPublicateur()) {
174 $utilisateur = $utilisateurDAO->find($chanson->getEmailPublicateur());
175 $artistePseudo = $utilisateur ? $utilisateur->getPseudoUtilisateur() :
null;
177 $chansonsPopulairesAvecArtistePseudo[] = [
178 'chanson' => $chanson,
179 'artistePseudo' => $artistePseudo,
185 $albumsPopulaires = $albumDAO->findMostListened(8);
187 $template = $this->
getTwig()->load(
'open_dashboard.html.twig');
188 echo $template->render([
192 'description' =>
"Découvrez de nouveaux artistes, chansons et albums en tendance sur Paaxio!"
194 'session' => $_SESSION,
195 'artistes' => $artistesPopulaires,
196 'chansons' => $chansonsPopulairesAvecArtistePseudo,
197 'albums' => $albumsPopulaires,
214 $artistesSuggere = $utilisateurDAO->findAllArtistes($_SESSION[
'user_email']);
218 $albums = $albumDAO->findAllByArtistEmail($_SESSION[
'user_email']);
224 $totalReproductions = $chansonDAO->getTotalEcoutesByArtiste($_SESSION[
'user_email']);
225 $totalAbonnes = $utilisateurDAO->countFollowers($_SESSION[
'user_email']);
226 $battlesGagnees = $battleDAO->countBattlesWon($_SESSION[
'user_email']);
228 $template = $this->
getTwig()->load(
'artiste_dashboard.html.twig');
229 echo $template->render([
231 'title' => ($_SESSION[
'user_pseudo'] ??
'Artiste') .
' dashboard',
233 'description' =>
"Dashboard de " . ($_SESSION[
'user_pseudo'] ??
'artiste')
235 'session' => $_SESSION,
236 'artistes' => $artistesSuggere,
239 'totalReproductions' => $totalReproductions,
240 'totalAbonnes' => $totalAbonnes,
241 'battlesGagnees' => $battlesGagnees,
259 $artistesSuggere = $utilisateurDAO->findAllArtistes($_SESSION[
'user_email']);
263 $albumsPopulaires = $albumDAO->findMostListened(8);
265 $template = $this->
getTwig()->load(
'auditeur_dashboard.html.twig');
266 echo $template->render([
268 'title' =>
'Mon dashboard',
270 'description' =>
"Dashboard principal"
272 'session' => $_SESSION,
273 'artistes' => $artistesSuggere,
274 'albums' => $albumsPopulaires,
287 $template = $this->
getTwig()->load(
'test.html.twig');
288 echo $template->render(array(
290 'title' =>
"DATA SESSION",
292 'description' =>
"Session dans Paaxio"
294 'testing' => $_SESSION,
305 $template = $this->
getTwig()->load(
'mentionsLegales.html.twig');
306 echo $template->render(array(
308 'title' =>
"Mentions légales",
309 'name' =>
"mentionsLegales",
310 'description' =>
"Mentions légales de Paaxio"
322 $template = $this->
getTwig()->load(
'conditions_generales.html.twig');
323 echo $template->render(array(
325 'title' =>
"Conditions Générales",
326 'name' =>
"conditions_generales",
327 'description' =>
"Conditions Générales de Paaxio"
@ Invite
Rôle administrateur avec tous les privilèges.
Contrôleur dédié à la gestion de la page d'accueil.
openDashboard()
Affiche le tableau de bord public (utilisateurs non connectés ou invités).
__construct(\Twig\Environment $twig, \Twig\Loader\FilesystemLoader $loader)
Constructeur du contrôleur home.
homeBienvenue()
Affiche la page d'accueil de bienvenue.
connect()
Affiche la page de connexion.
afficherLegales()
Affiche la page des mentions légales.
afficherGenerales()
Affiche la page des conditions générales.
afficher()
Affiche la page d'accueil selon le rôle de l'utilisateur.
auditeurDashboard()
Affiche le tableau de bord de l'auditeur connecté.
session()
Affiche les données de session (méthode de débogage).
artisteDashboard()
Affiche le tableau de bord de l'artiste connecté.
Classe de base pour tous les contrôleurs de l'application.
redirectTo(string $controller, string $method, array $params=[])
Redirige vers un contrôleur et une méthode donnés.
Twig Loader FilesystemLoader $loader
getPDO()
Récupère la connexion PDO.
getTwig()
Récupère l'environnement Twig.