From fc4a71158c23b73e0d19f19ee5b0f3a3c886a897 Mon Sep 17 00:00:00 2001 From: stiti Date: Fri, 31 May 2024 11:35:07 +0200 Subject: [PATCH] Ajout des ajouts --- .../application/controllers/Albums.php | 7 ++++ .../application/controllers/Musiques.php | 7 ++++ .../application/controllers/Playlists.php | 36 +++++++++++++++++++ .../application/models/Model_playlist.php | 1 + .../application/views/albums_list.php | 17 +++++++++ .../application/views/musiques_list.php | 19 ++++++++++ .../assets/css/musiques_list.css | 25 +++++++++++++ CodeIgniter-3.1.13/assets/css/style.css | 32 +++++++++++++++++ 8 files changed, 144 insertions(+) diff --git a/CodeIgniter-3.1.13/application/controllers/Albums.php b/CodeIgniter-3.1.13/application/controllers/Albums.php index cc6b8d8..2345a1d 100644 --- a/CodeIgniter-3.1.13/application/controllers/Albums.php +++ b/CodeIgniter-3.1.13/application/controllers/Albums.php @@ -6,8 +6,10 @@ class Albums extends CI_Controller { public function __construct(){ parent::__construct(); $this->load->model('model_music'); + $this->load->model('Model_playlist'); $this->load->helper('url'); $this->load->helper('html'); + $this->load->library('session'); } public function index($page = 1){ @@ -22,6 +24,11 @@ class Albums extends CI_Controller { $albums = $this->model_music->getAlbums($limit, $offset, $order_by, $genre_id, $artist_id); $total_albums = $this->model_music->get_total_albums($genre_id, $artist_id); + if ($this->session->userdata('user_id')) { + $user_id = $this->session->userdata('user_id'); + $data['user_playlists'] = $this->Model_playlist->get_user_playlists($user_id); + } + $data['total_pages'] = ceil($total_albums / $limit); $data['current_page'] = $page; $data['albums'] = $albums; diff --git a/CodeIgniter-3.1.13/application/controllers/Musiques.php b/CodeIgniter-3.1.13/application/controllers/Musiques.php index 81ee14c..c43df3c 100644 --- a/CodeIgniter-3.1.13/application/controllers/Musiques.php +++ b/CodeIgniter-3.1.13/application/controllers/Musiques.php @@ -6,9 +6,11 @@ class Musiques extends CI_Controller { public function __construct(){ parent::__construct(); $this->load->model('Model_music'); + $this->load->model('Model_playlist'); $this->load->library('pagination'); $this->load->helper('url'); $this->load->helper('html'); + $this->load->library('session'); } public function index($page = 1){ @@ -31,6 +33,11 @@ class Musiques extends CI_Controller { $genres = $this->Model_music->getGenres(); $artists = $this->Model_music->getArtists(); + if ($this->session->userdata('user_id')) { + $user_id = $this->session->userdata('user_id'); + $data['user_playlists'] = $this->Model_playlist->get_user_playlists($user_id); + } + $data['musiques'] = $musiques; $data['total_pages'] = $total_pages; $data['current_page'] = $current_page; diff --git a/CodeIgniter-3.1.13/application/controllers/Playlists.php b/CodeIgniter-3.1.13/application/controllers/Playlists.php index 34ea4d0..80ca60f 100644 --- a/CodeIgniter-3.1.13/application/controllers/Playlists.php +++ b/CodeIgniter-3.1.13/application/controllers/Playlists.php @@ -258,6 +258,25 @@ class Playlists extends CI_Controller { $this->load->view('layout/footer_dark'); } } + + public function add_album_to_playlist($album_id, $playlist_id) { + // Vérifiez si l'utilisateur est connecté + if (!$this->session->userdata('user_id')) { + redirect('utilisateur/connexion'); + } + + // Ajouter toutes les chansons de l'album à la playlist spécifiée + $songs = $this->Model_music->get_songs_by_album($album_id); + foreach ($songs as $song) { + $data = array( + 'playlist_id' => $playlist_id, + 'song_id' => $song->id + ); + $this->Model_playlist->add_song_to_playlist($data); + } + + redirect('playlists/view/' . $playlist_id); + } public function view($playlist_id) { // Vérifiez si la playlist est accessible à l'utilisateur actuellement connecté @@ -295,6 +314,23 @@ class Playlists extends CI_Controller { redirect('erreur/page_non_autorisee'); } } + + public function add_music_to_playlist($music_id, $playlist_id) { + // Vérifiez si l'utilisateur est connecté + if (!$this->session->userdata('user_id')) { + redirect('utilisateur/connexion'); + } + + // Ajoutez la musique à la playlist spécifiée + $data = array( + 'playlist_id' => $playlist_id, + 'song_id' => $music_id // Utilisez 'song_id' au lieu de 'music_id' + ); + $this->Model_playlist->add_song_to_playlist($data); + + // Redirigez l'utilisateur vers la vue de la playlist + redirect('playlists/view/' . $playlist_id); + } public function add_artist($playlist_id) { diff --git a/CodeIgniter-3.1.13/application/models/Model_playlist.php b/CodeIgniter-3.1.13/application/models/Model_playlist.php index 6313011..9a721d3 100644 --- a/CodeIgniter-3.1.13/application/models/Model_playlist.php +++ b/CodeIgniter-3.1.13/application/models/Model_playlist.php @@ -54,6 +54,7 @@ class Model_playlist extends CI_Model { return $this->db->insert('playlist_song', $data); } + public function song_exists_in_playlist($playlist_id, $song_id) { $this->db->where('playlist_id', $playlist_id); diff --git a/CodeIgniter-3.1.13/application/views/albums_list.php b/CodeIgniter-3.1.13/application/views/albums_list.php index 0c73b06..c7d986f 100644 --- a/CodeIgniter-3.1.13/application/views/albums_list.php +++ b/CodeIgniter-3.1.13/application/views/albums_list.php @@ -38,6 +38,14 @@ <?php echo $album->name; ?> + session->userdata('user_id')): ?> + + + @@ -57,3 +65,12 @@ + diff --git a/CodeIgniter-3.1.13/application/views/musiques_list.php b/CodeIgniter-3.1.13/application/views/musiques_list.php index ce0c455..5fa6beb 100644 --- a/CodeIgniter-3.1.13/application/views/musiques_list.php +++ b/CodeIgniter-3.1.13/application/views/musiques_list.php @@ -52,6 +52,16 @@ YouTube + + session->userdata('user_id')): ?> + + + + @@ -72,3 +82,12 @@ + diff --git a/CodeIgniter-3.1.13/assets/css/musiques_list.css b/CodeIgniter-3.1.13/assets/css/musiques_list.css index 8675b53..1ad23e9 100644 --- a/CodeIgniter-3.1.13/assets/css/musiques_list.css +++ b/CodeIgniter-3.1.13/assets/css/musiques_list.css @@ -198,3 +198,28 @@ footer.short-text { flex-direction: column; align-items: center; /* Center the items vertically */ } + +/* Style pour la liste déroulante */ +.select-playlist { + padding: 8px 15px; /* Rembourrage intérieur */ + font-size: 16px; /* Taille de la police */ + border: 1px solid #ccc; /* Bordure */ + border-radius: 4px; /* Coins arrondis */ + background-color: #f0f0f0; + margin-right: 10px; /* Marge à droite pour l'espace entre la liste déroulante et le bouton */ +} + +/* Style pour le bouton Ajouter à la playlist */ +.btn-add-to-playlist { + background-color: #6021aa; /* Couleur de fond */ + color: white; /* Couleur du texte */ + padding: 10px 20px; /* Rembourrage intérieur */ + border: none; /* Pas de bordure */ + border-radius: 4px; /* Coins arrondis */ + cursor: pointer; /* Curseur pointeur au survol */ + transition: background-color 0.3s; /* Animation de transition */ +} + +.btn-add-to-playlist:hover { + background-color: #461860; /* Couleur de fond au survol */ +} diff --git a/CodeIgniter-3.1.13/assets/css/style.css b/CodeIgniter-3.1.13/assets/css/style.css index fa82359..3d04afe 100644 --- a/CodeIgniter-3.1.13/assets/css/style.css +++ b/CodeIgniter-3.1.13/assets/css/style.css @@ -190,3 +190,35 @@ header.short-text a { color: #fff; transition: background-color 0.3s ease; } + +/* Style pour la liste déroulante */ +.select-playlist { + padding: 8px 15px; /* Rembourrage intérieur */ + font-size: 16px; /* Taille de la police */ + border: 1px solid #ccc; /* Bordure */ + border-radius: 4px; /* Coins arrondis */ + background-color: #f0f0f0; +} + +/* Style pour les options de la liste déroulante */ +.select-playlist option { + padding: 8px 15px; /* Rembourrage intérieur */ + font-size: 16px; /* Taille de la police */ + background-color: #fff; /* Couleur de fond */ + color: #333; /* Couleur du texte */ +} + +/* Style pour le bouton Ajouter à la playlist */ +.btn-add-to-playlist { + background-color: #6021aa; /* Couleur de fond */ + color: white; /* Couleur du texte */ + padding: 10px 20px; /* Rembourrage intérieur */ + border: none; /* Pas de bordure */ + border-radius: 4px; /* Coins arrondis */ + cursor: pointer; /* Curseur pointeur au survol */ + transition: background-color 0.3s; /* Animation de transition */ +} + +.btn-add-to-playlist:hover { + background-color: #461860; /* Couleur de fond au survol */ +}