From 8dea4d69b39a53d9fbd2ebec47acf1e30bc381d7 Mon Sep 17 00:00:00 2001
From: follea <thomas.follea@gmail.com>
Date: Fri, 14 Jun 2024 14:56:16 +0200
Subject: [PATCH] maj

---
 .../application/controllers/Albums.php        |  6 ++++
 .../application/models/Model_music.php        | 14 ++++++++
 codeigniter/application/views/album_info.php  | 16 +++++++++
 codeigniter/assets/style.css                  | 36 ++++++++++++++-----
 4 files changed, 64 insertions(+), 8 deletions(-)
 create mode 100644 codeigniter/application/views/album_info.php

diff --git a/codeigniter/application/controllers/Albums.php b/codeigniter/application/controllers/Albums.php
index 98e3358..6c22014 100644
--- a/codeigniter/application/controllers/Albums.php
+++ b/codeigniter/application/controllers/Albums.php
@@ -21,5 +21,11 @@ class Albums extends CI_Controller {
 		$this->load->view('layout/footer');
 	}
 
+	public function view($id){
+        $tracks = $this->model_music->getTracksByAlbumId($id);
+        $this->load->view('layout/header');
+        $this->load->view('album_info', ['tracks' => $tracks]);
+        $this->load->view('layout/footer');
+    }
 }
 
diff --git a/codeigniter/application/models/Model_music.php b/codeigniter/application/models/Model_music.php
index 621da0f..0f19f4a 100644
--- a/codeigniter/application/models/Model_music.php
+++ b/codeigniter/application/models/Model_music.php
@@ -30,4 +30,18 @@ class Model_music extends CI_Model {
 		
 		return $query->result();
 	}
+
+	public function getTracksByAlbumId($albumId){
+        $query = $this->db->query(
+            "SELECT track.number, track.duration, song.name as songName 
+            FROM track 
+            JOIN album ON album.id = track.albumid
+            JOIN artist ON artist.id = album.artistId
+            JOIN song ON song.id = track.songId
+            WHERE track.albumId = ?
+			ORDER BY track.number",
+            array($albumId)
+        );
+        return $query->result();
+    }
 }
diff --git a/codeigniter/application/views/album_info.php b/codeigniter/application/views/album_info.php
new file mode 100644
index 0000000..e35a64c
--- /dev/null
+++ b/codeigniter/application/views/album_info.php
@@ -0,0 +1,16 @@
+<h5>Détail de l'Album :</h5>
+<section class="track-list">
+<?php
+if(!empty($tracks)) {
+    foreach($tracks as $track){
+        echo "<div><article>";
+        echo "<header class='track-id'>Id : {$track->number}</header>";
+        echo "<div class='track-name'>Nom  : {$track->songName}</div>";
+        echo "<footer class='track_time'>Durée (en secondes) : {$track->duration}</footer>";
+        echo "</article></div>";
+    }
+} else {
+    echo "<p>Aucune piste trouvée pour cet album.</p>";
+}
+?>
+</section>
diff --git a/codeigniter/assets/style.css b/codeigniter/assets/style.css
index 7156934..27a555f 100644
--- a/codeigniter/assets/style.css
+++ b/codeigniter/assets/style.css
@@ -66,14 +66,6 @@ nav > ul li:hover .sous{
     color: #1399fc;
 }
 
-
-
-		    
-
-
-
-
-
 section.connexion {
     display: flex;
     justify-content: space-between;
@@ -86,3 +78,31 @@ div.authentification {
 div.new {
     width: 45%;
 }
+
+/* Styles pour les détails des pistes */
+
+.track-list {
+    width: 100%;
+    margin: 0 auto;
+}
+
+.track-id {
+    display: flex;
+    justify-content: space-between;
+    padding: 10px;
+    border-bottom: 1px solid #ccc;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+.track-name {
+    flex-grow: 1;
+    overflow: visible;
+    text-overflow: clip;
+}
+
+.track-time {
+    flex-shrink: 0;
+    margin-left: 20px;
+}