From 9436fd05cc1968ebb03d257f575565c71421e123 Mon Sep 17 00:00:00 2001
From: teissier <vi.teissier@gmail.com>
Date: Sun, 16 Jun 2024 17:39:26 +0200
Subject: [PATCH] push

---
 application/controllers/Artistes.php   |  35 +++---
 application/controllers/Music.php      |  18 ++-
 application/controllers/Playlist.php   | 151 ++++++++++++++++++++++++
 application/models/Model_music.php     | 110 +++++++++++++-----
 application/models/Model_playlist.php  |  98 ++++++++++++++++
 application/views/album_details.php    |  37 +++---
 application/views/albums_list.php      |  60 ++++++----
 application/views/artist_details.php   |  49 ++++----
 application/views/artists_list.php     |  38 ++++--
 application/views/create.php           |  91 ++++++++++-----
 application/views/layout/getter.php    |   2 +
 application/views/layout/header.php    |  86 ++++++--------
 application/views/login.php            |  67 ++++++-----
 application/views/logout.php           |   8 --
 application/views/musiques_list.php    |  47 +++++---
 application/views/playlist_details.php |  38 ++++++
 application/views/playlists_list.php   | 154 +++++++++++++++++++++++++
 application/views/select_playlist.php  |  31 +++++
 application/views/song_details.php     |  32 +++--
 assets/common.css                      |   0
 assets/logo.png                        | Bin 0 -> 62470 bytes
 assets/style.css                       |  52 ++++++---
 22 files changed, 928 insertions(+), 276 deletions(-)
 create mode 100644 application/controllers/Playlist.php
 create mode 100644 application/models/Model_playlist.php
 create mode 100644 application/views/playlist_details.php
 create mode 100644 application/views/playlists_list.php
 create mode 100644 application/views/select_playlist.php
 create mode 100644 assets/common.css
 create mode 100644 assets/logo.png

diff --git a/application/controllers/Artistes.php b/application/controllers/Artistes.php
index 524557a..d32b56d 100644
--- a/application/controllers/Artistes.php
+++ b/application/controllers/Artistes.php
@@ -3,13 +3,13 @@ defined('BASEPATH') OR exit('No direct script access allowed');
 
 class Artistes extends CI_Controller {
 
-    public function __construct(){
+    public function __construct() {
         parent::__construct();
         $this->load->model('model_music');
         $this->load->library('session');
     }
 
-    public function index(){
+    public function index() {
         $genre = $this->input->get('genre');
         $order = $this->input->get('order');
         $query = $this->input->get('query');
@@ -31,20 +31,19 @@ class Artistes extends CI_Controller {
     }
 
     public function view($artistId) {
-		$artistData = $this->model_music->getArtistDetails($artistId);
-	
-		$is_logged_in = $this->session->userdata('logged_in');
-		$data = array(
-			'artist' => $artistData['artist'],
-			'albums' => $artistData['albums'],
-			'is_logged_in' => $is_logged_in
-		);
-	
-		$this->load->view('layout/header', $data);
-		$this->load->view('artist_details', $data);
-		$this->load->view('layout/footer');
-	}
-	
+        $artist = $this->model_music->getArtistDetails($artistId);
+        $albums = $this->model_music->getAlbumsByArtist($artistId);
+
+        $is_logged_in = $this->session->userdata('logged_in');
+        $data = array(
+            'artist' => $artist,
+            'albums' => $albums,
+            'is_logged_in' => $is_logged_in
+        );
+
+        $this->load->view('layout/header', $data);
+        $this->load->view('artist_details', $data);
+        $this->load->view('layout/footer');
+    }
 }
-
-
+?>
diff --git a/application/controllers/Music.php b/application/controllers/Music.php
index dec0599..2bd1d45 100644
--- a/application/controllers/Music.php
+++ b/application/controllers/Music.php
@@ -17,13 +17,13 @@ class Music extends CI_Controller {
 
         $musics = $this->model_music->getMusics($genre, $order, $artist, $query);
         $genres = $this->model_music->researchtype();
-        $artists = $this->model_music->nameArtist();
+        $artists = $this->model_music->nameArtist(); // S'assurer que cette méthode récupère bien les artistes
 
         $is_logged_in = $this->session->userdata('logged_in');
         $data = array(
             'musics' => $musics,
             'genres' => $genres,
-            'artists' => $artists,
+            'artistes' => $artists, // Passer les artistes à la vue
             'is_logged_in' => $is_logged_in
         );
 
@@ -33,17 +33,23 @@ class Music extends CI_Controller {
         $this->load->view('layout/footer');
     }
 
-    public function view($trackId) {
-        $songData = $this->model_music->getSongDetails($trackId);
-
+    public function view($songId) {
+        $songData = $this->model_music->getSongDetails($songId);
+    
+        if (!$songData) {
+            show_404();
+        }
+    
         $is_logged_in = $this->session->userdata('logged_in');
         $data = array(
             'song' => $songData,
             'is_logged_in' => $is_logged_in
         );
-
+    
         $this->load->view('layout/header', $data);
         $this->load->view('song_details', $data);
         $this->load->view('layout/footer');
     }
+    
+    
 }
diff --git a/application/controllers/Playlist.php b/application/controllers/Playlist.php
new file mode 100644
index 0000000..2c57833
--- /dev/null
+++ b/application/controllers/Playlist.php
@@ -0,0 +1,151 @@
+<?php
+defined('BASEPATH') OR exit('No direct script access allowed');
+
+class Playlist extends CI_Controller {
+    public function __construct() {
+        parent::__construct();
+        $this->load->model('Model_playlist');
+        $this->load->model('Model_music'); // Ajouté pour accéder aux musiques
+        $this->load->library('session');
+    }
+
+    public function index() {
+        $is_logged_in = $this->session->userdata('logged_in');
+        $user_email = $this->session->userdata('email');
+
+        if (!$is_logged_in) {
+            redirect('connect/login');
+        }
+
+        $data = array(
+            'is_logged_in' => $is_logged_in,
+            'playlists' => $this->Model_playlist->getPlaylistsByUser($user_email)
+        );
+
+        $this->load->view('layout/header', $data);
+        $this->load->view('playlists_list', $data);
+        $this->load->view('layout/footer');
+    }
+
+    public function add() {
+        $is_logged_in = $this->session->userdata('logged_in');
+        $user_email = $this->session->userdata('email');
+
+        if (!$is_logged_in) {
+            redirect('connect/login');
+        }
+
+        $name = $this->input->post('name');
+        $type = $this->input->post('type');
+
+        if ($type == 'random') {
+            $numSongs = $this->input->post('numSongs');
+            $artist = $this->input->post('artist');
+            $genre = $this->input->post('genre');
+            $this->Model_playlist->createRandomPlaylist($user_email, $name, $numSongs, $artist, $genre);
+        } else {
+            $this->Model_playlist->addPlaylist($user_email, $name);
+        }
+
+        redirect('playlist');
+    }
+
+    public function selectPlaylist() {
+        $itemId = $this->input->post('itemId');
+        $itemType = $this->input->post('itemType');
+        $playlists = $this->Model_playlist->getPlaylistsByUser($this->session->userdata('email'));
+
+        $data = array(
+            'itemId' => $itemId,
+            'itemType' => $itemType,
+            'playlists' => $playlists
+        );
+
+        $this->load->view('layout/header', $data);
+        $this->load->view('select_playlist', $data);
+        $this->load->view('layout/footer');
+    }
+
+    public function addItems() {
+        $playlistId = $this->input->post('playlistId');
+        $itemId = $this->input->post('itemId');
+        $itemType = $this->input->post('itemType');
+
+        if ($itemType == 'album') {
+            $songs = $this->Model_music->getSongsByAlbum($itemId);
+            foreach ($songs as $song) {
+                $this->Model_playlist->addItem($playlistId, $song->id, 'song');
+            }
+        } else if ($itemType == 'artist') {
+            $albums = $this->Model_music->getAlbumsByArtist($itemId);
+            foreach ($albums as $album) {
+                $songs = $this->Model_music->getSongsByAlbum($album->albumId);
+                foreach ($songs as $song) {
+                    $this->Model_playlist->addItem($playlistId, $song->id, 'song');
+                }
+            }
+        } else {
+            $this->Model_playlist->addItem($playlistId, $itemId, 'song');
+        }
+
+        redirect('playlist/view/' . $playlistId);
+    }
+
+    public function view($playlistId) {
+        $is_logged_in = $this->session->userdata('logged_in');
+        $items = $this->Model_playlist->getPlaylistItems($playlistId);
+        $data = array(
+            'is_logged_in' => $is_logged_in,
+            'items' => $items
+        );
+
+        $this->load->view('layout/header', $data);
+        $this->load->view('playlist_details', $data);
+        $this->load->view('layout/footer');
+    }
+
+    public function deleteItem($playlistId, $itemId) {
+        $this->Model_playlist->deleteItem($playlistId, $itemId);
+        redirect('playlist/view/' . $playlistId);
+    }
+
+    public function delete($playlist_id) {
+        $is_logged_in = $this->session->userdata('logged_in');
+        $user_email = $this->session->userdata('email');
+
+        if (!$is_logged_in) {
+            redirect('connect/login');
+        }
+
+        $this->Model_playlist->deletePlaylist($playlist_id);
+        redirect('playlist');
+    }
+
+    public function duplicate($playlist_id) {
+        $is_logged_in = $this->session->userdata('logged_in');
+        $user_email = $this->session->userdata('email');
+
+        if (!$is_logged_in) {
+            redirect('connect/login');
+        }
+
+        $this->Model_playlist->duplicatePlaylist($playlist_id, $user_email);
+        redirect('playlist');
+    }
+
+    public function rename() {
+        $is_logged_in = $this->session->userdata('logged_in');
+        $user_email = $this->session->userdata('email');
+
+        if (!$is_logged_in) {
+            redirect('connect/login');
+        }
+
+        $playlistId = $this->input->post('playlistId');
+        $newName = $this->input->post('newName');
+
+        $this->Model_playlist->renamePlaylist($playlistId, $newName);
+        redirect('playlist');
+    }
+}
+
diff --git a/application/models/Model_music.php b/application/models/Model_music.php
index 8608426..6bda300 100644
--- a/application/models/Model_music.php
+++ b/application/models/Model_music.php
@@ -70,7 +70,6 @@ class Model_music extends CI_Model {
         $result = $this->db->get();
         return $result->result();
     }
-    
 
     public function getMusics($genre = '', $order = '', $artist = '', $query = '') {
         $this->db->select('album.name as albumName, album.id as albumId, year, artist.name as artistName, genre.name as genreName, jpeg, song.name as trackName, track.id as trackId');
@@ -81,29 +80,28 @@ class Model_music extends CI_Model {
         $this->db->join('genre', 'genre.id = album.genreid');
         $this->db->join('cover', 'cover.id = album.coverid');
         $this->db->limit(100);
-
+    
         if (!empty($genre)) {
             $this->db->where('genre.name', $genre);
         }
-
+    
         if (!empty($artist)) {
             $this->db->where('artist.name', $artist);
         }
-
+    
         if ($order == 'asc' || $order == 'desc') {
             $this->db->order_by('song.name', $order);
         }
-
+    
         if (!empty($query)) {
             $this->db->like('song.name', $query);
         }
-
+    
         $result = $this->db->get();
         return $result->result();
     }
 
     public function getAlbumDetails($albumId) {
-        // Get album info
         $this->db->select('album.name as albumName, album.id, year, artist.name as artistName, genre.name as genreName, jpeg');
         $this->db->from('album');
         $this->db->join('artist', 'album.artistid = artist.id');
@@ -113,7 +111,6 @@ class Model_music extends CI_Model {
         $albumQuery = $this->db->get();
         $albumDetails = $albumQuery->row();
     
-        // Get album songs
         $this->db->select('song.name as trackName, track.id as trackId');
         $this->db->from('track');
         $this->db->join('song', 'track.songId = song.id');
@@ -124,22 +121,15 @@ class Model_music extends CI_Model {
         return array('album' => $albumDetails, 'songs' => $songs);
     }
 
-    public function getArtistDetails($artistId) {
-        // Get artist info
-        $this->db->select('artist.name as artistName, artist.id');
-        $this->db->from('artist');
-        $this->db->where('artist.id', $artistId);
-        $artistQuery = $this->db->get();
-        $artistDetails = $artistQuery->row();
-    
-        // Get artist's albums with their songs
-        $this->db->select('album.id as albumId, album.name as albumName, album.year');
+    public function getAlbumsByArtist($artistId) {
+        $this->db->select('album.id as albumId, album.name as albumName, album.year, cover.jpeg, genre.name as genreName');
         $this->db->from('album');
+        $this->db->join('genre', 'album.genreid = genre.id');
+        $this->db->join('cover', 'album.coverid = cover.id');
         $this->db->where('album.artistid', $artistId);
         $albumsQuery = $this->db->get();
         $albums = $albumsQuery->result();
     
-        // Get songs for each album
         foreach ($albums as $album) {
             $this->db->select('track.id as trackId, song.name as songName');
             $this->db->from('track');
@@ -148,26 +138,88 @@ class Model_music extends CI_Model {
             $album->songs = $this->db->get()->result();
         }
     
-        return array('artist' => $artistDetails, 'albums' => $albums);
+        return $albums;
     }
-    
-    
+
+    public function getArtistDetails($artistId) {
+        $this->db->select('artist.name as artistName, artist.id');
+        $this->db->from('artist');
+        $this->db->where('artist.id', $artistId);
+        $artistQuery = $this->db->get();
+        return $artistQuery->row();
+    }
+
     public function getSongDetails($songId) {
-        $this->db->select('song.name as songName, song.id as songId, album.name as albumName, album.id as albumId, album.year, artist.name as artistName, artist.id as artistId, cover.jpeg');
+        $this->db->select('
+            song.name as songName, 
+            song.id as songId, 
+            album.name as albumName, 
+            album.id as albumId, 
+            album.year, 
+            artist.name as artistName, 
+            artist.id as artistId, 
+            cover.jpeg,
+            track.diskNumber, 
+            track.number, 
+            track.duration
+        ');
         $this->db->from('track');
-        $this->db->join('album', 'track.albumId = album.id');
-        $this->db->join('song', 'song.id = track.songId');
+        $this->db->join('album', 'track.albumid = album.id');
+        $this->db->join('song', 'song.id = track.songid');
         $this->db->join('artist', 'album.artistid = artist.id');
         $this->db->join('cover', 'cover.id = album.coverid');
         $this->db->where('track.id', $songId);
-
+    
         $result = $this->db->get();
         return $result->row_array();
     }
 
-    // Suppression de la deuxième méthode researchtype
+    public function getSongsByAlbum($albumId) {
+        $this->db->select('track.id');
+        $this->db->from('track');
+        $this->db->where('track.albumid', $albumId);
+        $query = $this->db->get();
+        return $query->result();
+    }
 
-    public function research(){
-        $result = $this->db->query();
+    public function getSongsByArtist($artistId) {
+        $this->db->select('track.id');
+        $this->db->from('track');
+        $this->db->join('album', 'track.albumid = album.id');
+        $this->db->where('album.artistid', $artistId);
+        $query = $this->db->get();
+        return $query->result();
+    }    
+    
+
+    public function getRandomSongs($numSongs, $artist = '', $genre = '') {
+        $this->db->select('track.id as trackId');
+        $this->db->from('track');
+        $this->db->join('album', 'track.albumid = album.id');
+        $this->db->join('song', 'song.id = track.songid');
+        $this->db->join('artist', 'album.artistid = artist.id');
+        $this->db->join('genre', 'album.genreid = genre.id');
+    
+        if (!empty($artist)) {
+            $this->db->where('artist.name', $artist);
+        }
+    
+        if (!empty($genre)) {
+            $this->db->where('genre.name', $genre);
+        }
+    
+        $this->db->order_by('RAND()');
+        $this->db->limit($numSongs);
+    
+        $query = $this->db->get();
+        return $query->result();
+    }
+    
+
+    public function getGenres() {
+        $this->db->select('id, name');
+        $this->db->from('genre');
+        $query = $this->db->get();
+        return $query->result();
     }
 }
diff --git a/application/models/Model_playlist.php b/application/models/Model_playlist.php
new file mode 100644
index 0000000..70a2b15
--- /dev/null
+++ b/application/models/Model_playlist.php
@@ -0,0 +1,98 @@
+<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
+
+class Model_playlist extends CI_Model {
+    public function __construct() {
+        $this->load->database();
+    }
+
+    public function getPlaylistsByUser($userEmail) {
+        $this->db->select('*');
+        $this->db->from('playlists');
+        $this->db->where('user_email', $userEmail);
+        $query = $this->db->get();
+        return $query->result();
+    }
+
+    public function addPlaylist($userEmail, $name) {
+        $data = array(
+            'user_email' => $userEmail,
+            'name' => $name
+        );
+        $this->db->insert('playlists', $data);
+        return $this->db->insert_id();
+    }
+
+    public function addItem($playlistId, $itemId, $itemType) {
+        $data = array(
+            'playlist_id' => $playlistId,
+            'item_id' => $itemId,
+            'item_type' => $itemType
+        );
+        return $this->db->insert('playlist_items', $data);
+    }
+
+    public function getPlaylistItems($playlistId) {
+        $this->db->select('playlist_items.item_id, song.name as songName, artist.name as artistName, album.name as albumName, playlist_items.playlist_id');
+        $this->db->from('playlist_items');
+        $this->db->join('track', 'track.id = playlist_items.item_id');
+        $this->db->join('song', 'song.id = track.songid');
+        $this->db->join('album', 'album.id = track.albumid');
+        $this->db->join('artist', 'artist.id = album.artistid');
+        $this->db->where('playlist_items.playlist_id', $playlistId);
+
+        $result = $this->db->get();
+        return $result->result();
+    }
+
+    public function deleteItem($playlistId, $itemId) {
+        $this->db->where('playlist_id', $playlistId);
+        $this->db->where('item_id', $itemId);
+        return $this->db->delete('playlist_items');
+    }
+
+    public function deletePlaylist($playlistId) {
+        $this->db->where('playlist_id', $playlistId);
+        $this->db->delete('playlist_items');
+
+        $this->db->where('id', $playlistId);
+        return $this->db->delete('playlists');
+    }
+
+    public function duplicatePlaylist($playlistId) {
+        $this->db->select('*');
+        $this->db->from('playlists');
+        $this->db->where('id', $playlistId);
+        $query = $this->db->get();
+        $playlist = $query->row();
+
+        if ($playlist) {
+            $newPlaylistData = array(
+                'user_email' => $playlist->user_email,
+                'name' => $playlist->name . ' (Copie)'
+            );
+            $this->db->insert('playlists', $newPlaylistData);
+            $newPlaylistId = $this->db->insert_id();
+
+            $this->db->select('*');
+            $this->db->from('playlist_items');
+            $this->db->where('playlist_id', $playlistId);
+            $query = $this->db->get();
+            $items = $query->result();
+
+            foreach ($items as $item) {
+                $newItemData = array(
+                    'playlist_id' => $newPlaylistId,
+                    'item_id' => $item->item_id,
+                    'item_type' => $item->item_type
+                );
+                $this->db->insert('playlist_items', $newItemData);
+            }
+        }
+    }
+
+    public function renamePlaylist($playlistId, $newName) {
+        $data = array('name' => $newName);
+        $this->db->where('id', $playlistId);
+        return $this->db->update('playlists', $data);
+    }
+}
diff --git a/application/views/album_details.php b/application/views/album_details.php
index 7f2fb1c..635cbf9 100644
--- a/application/views/album_details.php
+++ b/application/views/album_details.php
@@ -1,31 +1,38 @@
 <!DOCTYPE html>
 <html>
-<head>
-    <title><?= $album->albumName ?> - Details</title>
-    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@1.0.0/css/bulma.min.css">
-</head>
 <body>
     <section class="section">
         <div class="container">
-            <h1 class="title"><?= $album->albumName ?></h1>
-            <div class="columns">
+            <div class="columns is-vcentered">
                 <div class="column is-one-third">
-                    <figure class="image">
+                    <figure class="image is-square">
                         <img src="data:image/jpeg;base64,<?= base64_encode($album->jpeg) ?>" alt="<?= $album->albumName ?> Cover">
                     </figure>
                 </div>
                 <div class="column">
-                    <p><strong>Artist:</strong> <?= $album->artistName ?></p>
+                    <h1 class="title"><?= $album->albumName ?></h1>
+                    <p><strong>Artiste:</strong> <?= $album->artistName ?></p>
                     <p><strong>Genre:</strong> <?= $album->genreName ?></p>
-                    <p><strong>Year:</strong> <?= $album->year ?></p>
+                    <p><strong>Année:</strong> <?= $album->year ?></p>
                 </div>
             </div>
-            <h2 class="title is-4">Songs</h2>
-            <ul>
-                <?php foreach ($songs as $song): ?>
-                    <li><?= anchor("music/view/{$song->trackId}", $song->trackName) ?></li>
-                <?php endforeach; ?>
-            </ul>
+            <h2 class="title is-4">Chansons</h2>
+            <div class="table-container">
+                <table class="table is-striped is-fullwidth">
+                    <thead>
+                        <tr>
+                            <th>Titre</th>
+                        </tr>
+                    </thead>
+                    <tbody>
+                        <?php foreach ($songs as $song): ?>
+                            <tr>
+                                <td><?= anchor("music/view/{$song->trackId}", $song->trackName) ?></td>
+                            </tr>
+                        <?php endforeach; ?>
+                    </tbody>
+                </table>
+            </div>
         </div>
     </section>
 </body>
diff --git a/application/views/albums_list.php b/application/views/albums_list.php
index 5a24b78..6b7cd2a 100644
--- a/application/views/albums_list.php
+++ b/application/views/albums_list.php
@@ -1,24 +1,44 @@
-<h5 class="title is-5 has-text-white">Liste des Albums</h5>
-<section class="columns is-multiline">
-    <?php foreach($albums as $album): ?>
-        <div class="column is-one-quarter">
-            <div class="card">
-                <div class="card-image">
-                    <figure class="image is-4by3">
-                        <img src="data:image/jpeg;base64,<?= base64_encode($album->jpeg) ?>" alt="<?= $album->name ?>">
-                    </figure>
-                </div>
-                <div class="card-content">
-                    <div class="media">
-                        <div class="media-content">
-                            <p class="title is-4">
-                                <?= anchor("albums/view/{$album->id}", $album->name) ?>
-                            </p>
-                            <p class="subtitle is-6"><?= "{$album->year} - {$album->artistName}" ?></p>
+<!doctype html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>Liste des Albums - Dix heures</title>
+    <link rel="stylesheet" href="<?= base_url('assets/style.css') ?>">
+</head>
+<body>
+    <section class="section">
+        <div class="container">
+            <h1 class="title is-4 has-text-dark">Liste des Albums</h1>
+            <div class="columns is-multiline is-centered">
+                <?php foreach ($albums as $album): ?>
+                    <div class="column is-one-quarter-desktop is-half-tablet is-full-mobile">
+                        <div class="card">
+                            <div class="card-image">
+                                <figure class="image is-4by3">
+                                    <img src="data:image/jpeg;base64,<?= base64_encode($album->jpeg) ?>" alt="<?= $album->name ?>">
+                                </figure>
+                            </div>
+                            <div class="card-content">
+                                <div class="media">
+                                    <div class="media-content">
+                                        <p class="title is-4 album-title"><?= anchor("albums/view/{$album->id}", $album->name) ?></p>
+                                        <p class="subtitle is-6"><?= "{$album->year} - {$album->artistName}" ?></p>
+                                        <?php if (isset($is_logged_in) && $is_logged_in): ?>
+                                            <form method="post" action="<?= site_url('playlist/selectPlaylist') ?>">
+                                                <input type="hidden" name="itemId" value="<?= $album->id ?>">
+                                                <input type="hidden" name="itemType" value="album">
+                                                <button type="submit" class="button is-link is-fullwidth">Ajouter à la playlist</button>
+                                            </form>
+                                        <?php endif; ?>
+                                    </div>
+                                </div>
+                            </div>
                         </div>
                     </div>
-                </div>
+                <?php endforeach; ?>
             </div>
         </div>
-    <?php endforeach; ?>
-</section>
+    </section>
+</body>
+</html>
diff --git a/application/views/artist_details.php b/application/views/artist_details.php
index eb327ae..798c725 100644
--- a/application/views/artist_details.php
+++ b/application/views/artist_details.php
@@ -1,31 +1,36 @@
 <!DOCTYPE html>
 <html>
-<head>
-    <title><?= $album->albumName ?> - Details</title>
-    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@1.0.0/css/bulma.min.css">
-</head>
 <body>
     <section class="section">
         <div class="container">
-            <h1 class="title has-text-white"><?= $album->albumName ?></h1>
-            <div class="columns">
-                <div class="column is-one-third">
-                    <figure class="image is-square">
-                        <img src="data:image/jpeg;base64,<?= base64_encode($album->jpeg) ?>" alt="<?= $album->albumName ?> Cover">
-                    </figure>
-                </div>
-                <div class="column">
-                    <p><strong>Artist:</strong> <?= $album->artistName ?></p>
-                    <p><strong>Genre:</strong> <?= $album->genreName ?></p>
-                    <p><strong>Year:</strong> <?= $album->year ?></p>
-                </div>
-            </div>
-            <h2 class="title is-4 has-text-white">Songs</h2>
-            <ul>
-                <?php foreach ($songs as $song): ?>
-                    <li><?= anchor("music/view/{$song->trackId}", $song->trackName) ?></li>
+            <h1 class="title"><?= $artist->artistName ?></h1>
+            <h2 class="title is-4">Albums</h2>
+            <?php if ($albums): ?>
+                <?php foreach ($albums as $album): ?>
+                    <div class="box">
+                        <div class="columns">
+                            <div class="column is-one-third">
+                                <figure class="image">
+                                    <img src="data:image/jpeg;base64,<?= base64_encode($album->jpeg) ?>" alt="<?= $album->albumName ?> Cover">
+                                </figure>
+                            </div>
+                            <div class="column">
+                                <h3 class="title is-5"><?= $album->albumName ?></h3>
+                                <p><strong>Genre:</strong> <?= $album->genreName ?></p>
+                                <p><strong>Year:</strong> <?= $album->year ?></p>
+                                <h4 class="title is-6">Songs</h4>
+                                <ul>
+                                    <?php foreach ($album->songs as $song): ?>
+                                        <li><?= anchor("music/view/{$song->trackId}", $song->songName) ?></li>
+                                    <?php endforeach; ?>
+                                </ul>
+                            </div>
+                        </div>
+                    </div>
                 <?php endforeach; ?>
-            </ul>
+            <?php else: ?>
+                <p>No albums found for this artist.</p>
+            <?php endif; ?>
         </div>
     </section>
 </body>
diff --git a/application/views/artists_list.php b/application/views/artists_list.php
index 3992919..85d8a33 100644
--- a/application/views/artists_list.php
+++ b/application/views/artists_list.php
@@ -1,11 +1,27 @@
-<h5>Liste des Artistes</h5>
-<section class="list">
-<?php
-foreach($artists as $artist){
-        echo "<div><article>";
-        echo "<header class='short-text'>";
-        echo anchor("artistes/view/{$artist->artistId}","{$artist->artistName}");
-        echo "</header></article></div>";
-}
-?>
-</section>
\ No newline at end of file
+<section class="section">
+    <div class="container">
+        <h1 class="title is-4">Liste des Artistes</h1>
+        <div class="columns is-multiline">
+            <?php foreach ($artists as $artist): ?>
+                <div class="column is-one-quarter-desktop is-half-tablet is-full-mobile">
+                    <div class="card artist-card">
+                        <div class="card-content">
+                            <div class="media">
+                                <div class="media-content">
+                                    <p class="title is-4 artist-title"><?= anchor("artistes/view/{$artist->artistId}", $artist->artistName) ?></p>
+                                    <?php if (isset($is_logged_in) && $is_logged_in): ?>
+                                        <form method="post" action="<?= site_url('playlist/selectPlaylist') ?>">
+                                            <input type="hidden" name="itemId" value="<?= $artist->artistId ?>">
+                                            <input type="hidden" name="itemType" value="artist">
+                                            <button type="submit" class="button is-link">Ajouter à la playlist</button>
+                                        </form>
+                                    <?php endif; ?>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            <?php endforeach; ?>
+        </div>
+    </div>
+</section>
diff --git a/application/views/create.php b/application/views/create.php
index 53d875f..c729345 100644
--- a/application/views/create.php
+++ b/application/views/create.php
@@ -1,32 +1,59 @@
-<?=validation_errors(); ?>
-<?=form_open('connect/create')?>
-  <!-- Grid -->
-  <div class="grid">
-
-    <label for="prenom">
-      Prénom
-      <input type="text" id="prenom" name="prenom" placeholder="Prénom" value="<?=set_value('prenom')?>" required>
-    </label>
-
-    <label for="nom">
-      Nom
-      <input type="text" id="nom" name="nom" placeholder="Nom" value="<?=set_value('nom')?>" required>
-    </label>
-  </div>
-
-  <label for="email">Adresse mail</label>
-  <input type="email" id="email" name="email" placeholder="Email" value="<?=set_value('email')?>" required>
-
-  <div class="grid">
-    <label for="password">Password
-      <input type="password" id="password" name="password" placeholder="Password" value="<?=set_value('password')?>" required>
-    </label>
-
-    <label for="cpassword">Confirmation password
-      <input type="password" id="cpassword" name="cpassword" placeholder="Confirmation Password" value="<?=set_value('cpassword')?>" required>
-    </label>
-  </div>
-
-  <!-- Button -->
-  <button type="submit">Submit</button>
-</form>
+<!doctype html>
+<html lang="en">
+<body>
+    <section class="hero is-fullheight">
+        <div class="hero-body">
+            <div class="container">
+                <div class="columns is-centered">
+                    <div class="column is-5">
+                        <div class="box">
+                            <h1 class="title is-1 has-text-centered">Inscription</h1>
+                            <?=validation_errors(); ?>
+                            <?=form_open('connect/create')?>
+                                <div class="field">
+                                    <label class="label" for="prenom">Prénom</label>
+                                    <div class="control">
+                                        <input class="input is-dark" type="text" id="prenom" name="prenom" placeholder="Prénom" value="<?=set_value('prenom')?>" required>
+                                    </div>
+                                </div>
+                                <div class="field">
+                                    <label class="label" for="nom">Nom</label>
+                                    <div class="control">
+                                        <input class="input is-dark" type="text" id="nom" name="nom" placeholder="Nom" value="<?=set_value('nom')?>" required>
+                                    </div>
+                                </div>
+                                <div class="field">
+                                    <label class="label" for="email">Adresse mail</label>
+                                    <div class="control">
+                                        <input class="input is-dark" type="email" id="email" name="email" placeholder="Email" value="<?=set_value('email')?>" required>
+                                    </div>
+                                </div>
+                                <div class="field">
+                                    <label class="label" for="password">Mot de passe</label>
+                                    <div class="control">
+                                        <input class="input is-dark" type="password" id="password" name="password" placeholder="Mot de passe" value="<?=set_value('password')?>" required>
+                                    </div>
+                                </div>
+                                <div class="field">
+                                    <label class="label" for="cpassword">Confirmation mot de passe</label>
+                                    <div class="control">
+                                        <input class="input is-dark" type="password" id="cpassword" name="cpassword" placeholder="Confirmation mot de passe" value="<?=set_value('cpassword')?>" required>
+                                    </div>
+                                </div>
+                                <div class="field">
+                                    <div class="control">
+                                        <button class="button is-primary is-fullwidth is-large" type="submit">S'inscrire</button>
+                                    </div>
+                                </div>
+                                <div class="has-text-centered">
+                                    <p>Vous avez déjà un compte ? <a href="<?= site_url('connect/login') ?>" class="has-text-primary">Connexion</a></p>
+                                </div>
+                            </form>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </section>
+</body>
+</html>
diff --git a/application/views/layout/getter.php b/application/views/layout/getter.php
index 7342623..d1a5cfe 100644
--- a/application/views/layout/getter.php
+++ b/application/views/layout/getter.php
@@ -17,6 +17,7 @@
     <!-- Div contenant les filtres, cachée par défaut -->
     <div id="filters" style="display: none;">
         <form method="GET" action="">
+            <?php if ($this->uri->segment(1) != 'artistes'): ?>
             <!-- Filtre par artiste -->
             <div class="field">
                 <label class="label" for="artist">Artiste</label>
@@ -31,6 +32,7 @@
                     </div>
                 </div>
             </div>
+            <?php endif; ?>
 
             <!-- Filtre par genre -->
             <div class="field">
diff --git a/application/views/layout/header.php b/application/views/layout/header.php
index e6b1002..bec453e 100644
--- a/application/views/layout/header.php
+++ b/application/views/layout/header.php
@@ -1,58 +1,48 @@
 <!doctype html>
-<html lang="en" class="has-navbar-fixed-top">
+<html lang="en">
 <head>
-    <meta charset="UTF-8" />
-    <title>Dix heures</title>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title><?= $title ?? 'Dix heures' ?></title>
     <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@1.0.0/css/bulma.min.css">
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
-    <?= link_tag('assets/style.css') ?>
-    <style>
-        body {
-            background-color: #121212;
-            color: #FFFFFF;
-        }
-        .navbar {
-            background-color: #000000;
-        }
-        .navbar-item {
-            color: white;
-        }
-        .hero {
-            background-color: #282828;
-            color: white;
-        }
-        .card {
-            background-color: #1e1e1e;
-            color: white;
-        }
-        .button, .input, .select {
-            background-color: #282828;
-            color: white;
-            border-color: #282828;
-        }
-        .button:hover, .input:hover, .select:hover {
-            background-color: #3b3b3b;
-            border-color: #3b3b3b;
-        }
-    </style>
+    <link rel="stylesheet" href="<?= base_url('assets/style.css') ?>">
 </head>
 <body>
     <nav class="navbar">
-        <div class="navbar-brand">
-            <a class="navbar-item" href="#">Dix heures</a>
-        </div>
-        <div class="navbar-menu">
-            <div class="navbar-end">
-                <a class="navbar-item" href="<?= site_url('albums') ?>">Albums</a>
-                <a class="navbar-item" href="<?= site_url('artistes') ?>">Artistes</a>
-                <a class="navbar-item" href="<?= site_url('music') ?>">Music</a>
-                <?php if (isset($is_logged_in) && $is_logged_in): ?>
-                    <a class="navbar-item" href="<?= site_url('playlist') ?>">Playlist</a>
-                    <a class="navbar-item" href="<?= site_url('connect/logout') ?>">Déconnexion</a>
-                <?php else: ?>
-                    <a class="navbar-item" href="<?= site_url('connect/login') ?>">Connexion</a>
-                <?php endif; ?>
+        <div class="container">
+            <div class="navbar-brand">
+                <a class="navbar-item" href="#">
+                    <img src="<?= base_url('assets/logo.png') ?>" alt="Logo">
+                </a>
+                <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbarBasicExample">
+                    <span aria-hidden="true"></span>
+                    <span aria-hidden="true"></span>
+                    <span aria-hidden="true"></span>
+                </a>
+            </div>
+
+            <div id="navbarBasicExample" class="navbar-menu">
+                <div class="navbar-start">
+                    <a class="navbar-item" href="<?= site_url('albums') ?>">Albums</a>
+                    <a class="navbar-item" href="<?= site_url('artistes') ?>">Artistes</a>
+                    <a class="navbar-item" href="<?= site_url('music') ?>">Musiques</a>
+                    <?php if (isset($is_logged_in) && $is_logged_in): ?>
+                        <a class="navbar-item" href="<?= site_url('playlist') ?>">Playlists</a>
+                    <?php endif; ?>
+                </div>
+
+                <div class="navbar-end">
+                    <div class="navbar-item">
+                        <?php if (isset($is_logged_in) && $is_logged_in): ?>
+                            <a class="button is-light" href="<?= site_url('connect/logout') ?>">Déconnexion</a>
+                        <?php else: ?>
+                            <a class="button is-light" href="<?= site_url('connect/login') ?>">Connexion</a>
+                            <a class="button is-primary" href="<?= site_url('connect/create') ?>">Inscription</a>
+                        <?php endif; ?>
+                    </div>
+                </div>
             </div>
         </div>
     </nav>
-    <main class="container">
+    <main class="container" style="padding-top: 90px;"> <!-- Ajout de padding-top pour éviter que la navbar ne masque le contenu -->
diff --git a/application/views/login.php b/application/views/login.php
index ed4598c..6ac55b7 100644
--- a/application/views/login.php
+++ b/application/views/login.php
@@ -1,29 +1,44 @@
-<!DOCTYPE html>
-<html>
-<head>
-    <title>Login</title>
-</head>
+<!doctype html>
+<html lang="fr">
 <body>
-    <?= validation_errors(); ?>
-
-    <?php if (isset($error)): ?>
-      <p style="color: red;"><?= $error ?></p>
-    <?php endif; ?>
-
-    <?= form_open('connect/login') ?>
-      <!-- Grid -->
-      <div class="grid">
-        <label for="email">Adresse mail</label>
-        <input type="email" id="email" name="email" placeholder="Email" value="<?= set_value('email') ?>" required>
-
-        <label for="password">Password</label>
-        <input type="password" id="password" name="password" placeholder="Password" value="<?= set_value('password') ?>" required>
-      </div>
-      <!-- Button -->
-      <button type="submit">Submit</button>
-      
-      <?= anchor('connect/create', "Pas de compte ? Créez-en un !"); ?>
-    </form>
+    <section class="hero is-fullheight">
+        <div class="hero-body">
+            <div class="container">
+                <div class="columns is-centered">
+                    <div class="column is-5">
+                        <div class="box">
+                            <h1 class="title is-1 has-text-centered">Connexion</h1>
+                            <?= validation_errors(); ?>
+                            <?php if (isset($error)): ?>
+                                <p class="has-text-danger"><?= $error ?></p>
+                            <?php endif; ?>
+                            <?= form_open('connect/login') ?>
+                                <div class="field">
+                                    <label class="label" for="email">Adresse mail</label>
+                                    <div class="control">
+                                        <input class="input is-dark" type="email" id="email" name="email" placeholder="Email" value="<?= set_value('email') ?>" required>
+                                    </div>
+                                </div>
+                                <div class="field">
+                                    <label class="label" for="password">Mot de passe</label>
+                                    <div class="control">
+                                        <input class="input is-dark" type="password" id="password" name="password" placeholder="Mot de passe" value="<?= set_value('password') ?>" required>
+                                    </div>
+                                </div>
+                                <div class="field">
+                                    <div class="control">
+                                        <button class="button is-primary is-fullwidth is-large" type="submit">Se connecter</button>
+                                    </div>
+                                </div>
+                                <div class="has-text-centered">
+                                    <p>Vous n'avez pas de compte ? <a href="<?= site_url('connect/create') ?>" class="has-text-primary">Inscription</a></p>
+                                </div>
+                            </form>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </section>
 </body>
 </html>
-
diff --git a/application/views/logout.php b/application/views/logout.php
index 7ac14d6..9c36dbc 100644
--- a/application/views/logout.php
+++ b/application/views/logout.php
@@ -2,14 +2,6 @@
 defined('BASEPATH') OR exit('No direct script access allowed');
 ?>
 <!doctype html>
-<html lang="en" class="has-navbar-fixed-top">
-<head>
-  <meta charset="UTF-8" />
-  <title>Dix heures</title>
-  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css"/>
-  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
-  <?=link_tag('assets/style.css')?>
-</head>
 <body>
   <main class='container'>
     <nav>
diff --git a/application/views/musiques_list.php b/application/views/musiques_list.php
index 8b35a8e..0e0440e 100644
--- a/application/views/musiques_list.php
+++ b/application/views/musiques_list.php
@@ -1,16 +1,33 @@
-<h5>Liste des musiques</h5>
-<section class="list">
-<?php
-foreach($musics as $music){
-    echo "<div><article>";
-    echo "<header class='short-text'>";
-    if(isset($music->trackName)) {
-        echo anchor("music/view/{$music->trackId}", $music->trackName);
-    }
-    echo "</header>";
-    echo '<img src="data:image/jpeg;base64,'.base64_encode($music->jpeg).'" />';
-    echo "<footer class='short-text'>{$music->year} - {$music->artistName} - {$music->albumName}</footer>
-    </article></div>";
-}
-?>
+<section class="section">
+    <div class="container">
+        <h1 class="title is-4 has-text-dark">Liste des musiques</h1>
+        <div class="columns is-multiline">
+            <?php foreach ($musics as $music): ?>
+                <div class="column is-one-quarter-desktop is-half-tablet is-full-mobile">
+                    <div class="card">
+                        <div class="card-image">
+                            <figure class="image is-4by3">
+                                <img src="data:image/jpeg;base64,<?= base64_encode($music->jpeg) ?>" alt="<?= $music->trackName ?>">
+                            </figure>
+                        </div>
+                        <div class="card-content">
+                            <div class="media">
+                                <div class="media-content">
+                                    <p class="title is-4 music-title"><?= anchor("music/view/{$music->trackId}", $music->trackName) ?></p>
+                                    <p class="subtitle is-6"><?= "{$music->year} - {$music->artistName} - {$music->albumName}" ?></p>
+                                    <?php if (isset($is_logged_in) && $is_logged_in): ?>
+                                        <form method="post" action="<?= site_url('playlist/selectPlaylist') ?>">
+                                            <input type="hidden" name="itemId" value="<?= $music->trackId ?>">
+                                            <input type="hidden" name="itemType" value="song">
+                                            <button type="submit" class="button is-link">Ajouter à la playlist</button>
+                                        </form>
+                                    <?php endif; ?>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            <?php endforeach; ?>
+        </div>
+    </div>
 </section>
diff --git a/application/views/playlist_details.php b/application/views/playlist_details.php
new file mode 100644
index 0000000..87760cd
--- /dev/null
+++ b/application/views/playlist_details.php
@@ -0,0 +1,38 @@
+<section class="section">
+    <div class="container">
+        <h1 class="title">Détails de la Playlist</h1>
+
+        <?php if ($items): ?>
+            <div class="table-container" style="max-height: 400px; overflow-y: auto;">
+                <table class="table is-fullwidth is-striped">
+                    <thead>
+                        <tr>
+                            <th>Titre</th>
+                            <th>Artiste</th>
+                            <th>Album</th>
+                            <th>Actions</th>
+                        </tr>
+                    </thead>
+                    <tbody>
+                        <?php foreach ($items as $item): ?>
+                            <tr>
+                                <td><?= anchor("music/view/{$item->item_id}", $item->songName) ?></td>
+                                <td><?= $item->artistName ?></td>
+                                <td><?= $item->albumName ?></td>
+                                <td>
+                                    <form method="post" action="<?= site_url('playlist/deleteItem/'.$item->playlist_id.'/'.$item->item_id) ?>" style="display:inline;">
+                                        <button type="submit" class="button is-danger is-small">Supprimer</button>
+                                    </form>
+                                </td>
+                            </tr>
+                        <?php endforeach; ?>
+                    </tbody>
+                </table>
+            </div>
+        <?php else: ?>
+            <p>La playlist est vide.</p>
+        <?php endif; ?>
+
+        <a href="<?= site_url('playlist') ?>" class="button is-link">Retour aux playlists</a>
+    </div>
+</section>
\ No newline at end of file
diff --git a/application/views/playlists_list.php b/application/views/playlists_list.php
new file mode 100644
index 0000000..2c49e07
--- /dev/null
+++ b/application/views/playlists_list.php
@@ -0,0 +1,154 @@
+<section class="section">
+    <div class="container">
+        <h1 class="title">Mes Playlists</h1>
+
+        <?php if (isset($error)): ?>
+            <div class="notification is-danger">
+                <?= $error ?>
+            </div>
+        <?php endif; ?>
+
+        <?php if ($playlists): ?>
+            <div class="columns is-multiline">
+                <?php foreach ($playlists as $playlist): ?>
+                    <div class="column is-one-third">
+                        <div class="card">
+                            <div class="card-content">
+                                <div class="media">
+                                    <div class="media-content">
+                                        <p class="title is-4"><?= anchor("playlist/view/{$playlist->id}", $playlist->name) ?></p>
+                                    </div>
+                                    <div class="media-right buttons-right">
+                                        <?= form_open('playlist/duplicate/'.$playlist->id, ['style' => 'display:inline;']) ?>
+                                            <button type="submit" class="button is-info is-small">Dupliquer</button>
+                                        <?= form_close() ?>
+                                        <button class="button is-warning is-small" onclick="showRenameModal('<?= $playlist->id ?>', '<?= $playlist->name ?>')">Renommer</button>
+                                    </div>
+                                </div>
+                            </div>
+                            <footer class="card-footer">
+                                <?= form_open('playlist/delete/'.$playlist->id, ['class' => 'card-footer-item']) ?>
+                                    <button type="submit" class="button is-danger is-small">Supprimer</button>
+                                <?= form_close() ?>
+                            </footer>
+                        </div>
+                    </div>
+                <?php endforeach; ?>
+            </div>
+        <?php else: ?>
+            <p>Vous n'avez pas encore de playlists.</p>
+        <?php endif; ?>
+
+        <div class="box">
+            <form method="post" action="<?= site_url('playlist/add') ?>">
+                <div class="field">
+                    <label class="label">Nom de la playlist</label>
+                    <div class="control">
+                        <input type="text" name="name" class="input" placeholder="Nom de la playlist" required>
+                    </div>
+                </div>
+                <div class="field">
+                    <label class="label">Type de Playlist</label>
+                    <div class="control">
+                        <div class="select">
+                            <select name="type" id="playlistType" onchange="toggleRandomOptions()">
+                                <option value="empty">Vide</option>
+                                <option value="random">Aléatoire</option>
+                            </select>
+                        </div>
+                    </div>
+                </div>
+
+                <div id="randomOptions" style="display: none;">
+                    <div class="field">
+                        <label class="label">Nombre de chansons</label>
+                        <div class="control">
+                            <input type="number" name="numSongs" class="input" placeholder="Nombre de chansons">
+                        </div>
+                    </div>
+                    <div class="field">
+                        <label class="label">Artiste</label>
+                        <div class="control">
+                            <div class="select">
+                                <select name="artist">
+                                    <option value="">Tous</option>
+                                    <?php foreach($artists as $artist): ?>
+                                        <option value="<?= $artist->name ?>"><?= $artist->name ?></option>
+                                    <?php endforeach; ?>
+                                </select>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="field">
+                        <label class="label">Genre</label>
+                        <div class="control">
+                            <div class="select">
+                                <select name="genre">
+                                    <option value="">Tous</option>
+                                    <?php foreach($genres as $genre): ?>
+                                        <option value="<?= $genre->name ?>"><?= $genre->name ?></option>
+                                    <?php endforeach; ?>
+                                </select>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                <div class="field">
+                    <div class="control">
+                        <button type="submit" class="button is-link">Créer une playlist</button>
+                    </div>
+                </div>
+            </form>
+        </div>
+    </div>
+</section>
+
+<!-- Rename Modal -->
+<div id="renameModal" class="modal">
+    <div class="modal-background"></div>
+    <div class="modal-card">
+        <header class="modal-card-head">
+            <p class="modal-card-title">Renommer la Playlist</p>
+            <button class="delete" aria-label="close" onclick="closeRenameModal()"></button>
+        </header>
+        <section class="modal-card-body">
+            <form id="renameForm" method="post" action="<?= site_url('playlist/rename') ?>">
+                <div class="field">
+                    <label class="label">Nouveau Nom</label>
+                    <div class="control">
+                        <input type="hidden" name="playlistId" id="renamePlaylistId">
+                        <input type="text" name="newName" class="input" id="renameNewName" required>
+                    </div>
+                </div>
+                <div class="field">
+                    <div class="control">
+                        <button type="submit" class="button is-link">Renommer</button>
+                    </div>
+                </div>
+            </form>
+        </section>
+    </div>
+</div>
+
+<script>
+    function toggleRandomOptions() {
+        var playlistType = document.getElementById('playlistType').value;
+        var randomOptions = document.getElementById('randomOptions');
+        if (playlistType === 'random') {
+            randomOptions.style.display = 'block';
+        } else {
+            randomOptions.style.display = 'none';
+        }
+    }
+
+    function showRenameModal(playlistId, playlistName) {
+        document.getElementById('renamePlaylistId').value = playlistId;
+        document.getElementById('renameNewName').value = playlistName;
+        document.getElementById('renameModal').classList.add('is-active');
+    }
+
+    function closeRenameModal() {
+        document.getElementById('renameModal').classList.remove('is-active');
+    }
+</script>
diff --git a/application/views/select_playlist.php b/application/views/select_playlist.php
new file mode 100644
index 0000000..bb6b5f3
--- /dev/null
+++ b/application/views/select_playlist.php
@@ -0,0 +1,31 @@
+<section class="section">
+    <div class="container">
+        <h1 class="title is-4">Sélectionner une playlist</h1>
+
+        <?php if ($playlists): ?>
+            <form method="post" action="<?= site_url('playlist/addItems') ?>">
+                <input type="hidden" name="itemId" value="<?= $itemId ?>">
+                <input type="hidden" name="itemType" value="<?= $itemType ?>">
+                <div class="field">
+                    <label class="label">Choisir une playlist</label>
+                    <div class="control">
+                        <div class="select is-dark">
+                            <select name="playlistId">
+                                <?php foreach ($playlists as $playlist): ?>
+                                    <option value="<?= $playlist->id ?>"><?= $playlist->name ?></option>
+                                <?php endforeach; ?>
+                            </select>
+                        </div>
+                    </div>
+                </div>
+                <div class="field">
+                    <div class="control">
+                        <button type="submit" class="button is-link">Ajouter</button>
+                    </div>
+                </div>
+            </form>
+        <?php else: ?>
+            <p>Vous n'avez pas encore de playlists. Veuillez en créer une.</p>
+        <?php endif; ?>
+    </div>
+</section>
diff --git a/application/views/song_details.php b/application/views/song_details.php
index d72203e..56c653d 100644
--- a/application/views/song_details.php
+++ b/application/views/song_details.php
@@ -1,14 +1,28 @@
 <!DOCTYPE html>
 <html>
-<head>
-    <title><?= $song['songName'] ?> - Details</title>
-</head>
 <body>
-    <h1><?= $song['songName'] ?></h1>
-    <p><strong>Album:</strong> <?= anchor("music/view/{$song['albumId']}", $song['albumName']) ?> (<?= $song['year'] ?>)</p>
-    <p><strong>Artist:</strong> <?= $song['artistName'] ?></p>
-    <?php if(isset($song['jpeg']) && $song['jpeg'] != ''): ?>
-        <img src="data:image/jpeg;base64,<?= base64_encode($song['jpeg']) ?>" alt="<?= $song['albumName'] ?> Cover">
-    <?php endif; ?>
+    <section class="section">
+        <div class="container">
+            <h1 class="title"><?= $song['songName'] ?></h1>
+            <div class="columns">
+                <div class="column is-one-third">
+                    <figure class="image">
+                        <?php if(isset($song['jpeg']) && $song['jpeg'] != ''): ?>
+                            <img src="data:image/jpeg;base64,<?= base64_encode($song['jpeg']) ?>" alt="<?= $song['albumName'] ?> Cover">
+                        <?php else: ?>
+                            <img src="path_to_default_image" alt="Default Cover">
+                        <?php endif; ?>
+                    </figure>
+                </div>
+                <div class="column">
+                    <p><strong>Album:</strong> <?= anchor("albums/view/{$song['albumId']}", $song['albumName']) ?> (<?= $song['year'] ?>)</p>
+                    <p><strong>Artist:</strong> <?= $song['artistName'] ?></p>
+                    <p><strong>Disk Number:</strong> <?= $song['diskNumber'] ?></p>
+                    <p><strong>Track Number:</strong> <?= $song['number'] ?></p>
+                    <p><strong>Duration:</strong> <?= $song['duration'] ?> seconds</p>
+                </div>
+            </div>
+        </div>
+    </section>
 </body>
 </html>
diff --git a/assets/common.css b/assets/common.css
new file mode 100644
index 0000000..e69de29
diff --git a/assets/logo.png b/assets/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..866281803ea6a62a06b6992d340a504920e9b7db
GIT binary patch
literal 62470
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

literal 0
HcmV?d00001

diff --git a/assets/style.css b/assets/style.css
index df6266e..6dce49b 100644
--- a/assets/style.css
+++ b/assets/style.css
@@ -1,20 +1,38 @@
-section.list
-{
-	display : flex;
-	justify-content : space-between;
-	flex-wrap:wrap;
-}
-section.list > div 
-{
-width : 30%;
-}
-section.list img {
-	display:inline-block;
+/* style.css */
 
-}
-.short-text {
-	overflow: hidden;
-	white-space: nowrap;
-	text-overflow: ellipsis;
+.card {
+    display: flex;
+    flex-direction: column;
+    height: 100%;
 }
 
+.card-image {
+    flex-shrink: 0;
+}
+
+.card-content {
+    flex-grow: 1;
+}
+
+.card-footer {
+    flex-shrink: 0;
+}
+
+.album-title, .artist-title, .music-title {
+    display: -webkit-box;
+    -webkit-box-orient: vertical;
+    -webkit-line-clamp: 2; /* Limite à 2 lignes */
+    overflow: hidden;
+    text-overflow: ellipsis;
+    height: 3em; /* Ajuste en fonction de la taille de la police */
+}
+
+.columns {
+    justify-content: center; /* Centre les colonnes */
+}
+
+.card img {
+    object-fit: cover; /* Assure que les images couvrent bien les figures */
+    width: 100%;
+    height: auto;
+}