diff --git a/CodeIgniter-3.1.13/application/controllers/Chansons.php b/CodeIgniter-3.1.13/application/controllers/Chansons.php index e358c59..e5ce341 100644 --- a/CodeIgniter-3.1.13/application/controllers/Chansons.php +++ b/CodeIgniter-3.1.13/application/controllers/Chansons.php @@ -52,7 +52,33 @@ class Chansons extends CI_Controller { }else{ $playlistId = $this->input->post('playlist_id'); $this->model_music->AddSongtoPlaylist($playlistId,$id); + redirect('chansons'); } } + + public function deleteSongtoPlaylist($id){ + $playlists = $this->model_music->getPlaylistIdSong($id); + + $this->form_validation->set_rules('playlist_id', 'playlist_id', 'required'); + + if ($this->form_validation->run() == FALSE){ + $this->load->view('layout/header'); + $this->load->view('deleteSongtoplaylist', ["playlists" => $playlists]); + $this->load->view('layout/footer'); + }else{ + $playlistId = $this->input->post('playlist_id'); + $this->model_music->DeleteSongtoPlaylist($playlistId,$id); + redirect('chansons'); + } + } + + public function view($id){ + $chansons = $this->model_music->get_song_playlist($id); + $data['chansons'] = $chansons; + + $this->load->view('layout/header'); + $this->load->view('chansons_list',$data); + $this->load->view('layout/footer'); + } } diff --git a/CodeIgniter-3.1.13/application/models/Model_music.php b/CodeIgniter-3.1.13/application/models/Model_music.php index 435893d..dbed74a 100644 --- a/CodeIgniter-3.1.13/application/models/Model_music.php +++ b/CodeIgniter-3.1.13/application/models/Model_music.php @@ -237,7 +237,7 @@ class Model_music extends CI_Model { $album->tracks = []; foreach ($songIds as $song) { - $this->db->select('song.name as songName, track.duration'); + $this->db->select('song.name as songName, track.duration, track.Id as trackId'); $this->db->from('track'); $this->db->join('song', 'track.songId = song.id'); $this->db->where('track.songId', $song->songId); @@ -313,6 +313,18 @@ class Model_music extends CI_Model { return $query = false; } + public function getPlaylistIdSong($id){ + $query = $this->db->query( + "SELECT Playlist.name, Playlist.playlistid + FROM Playlist + JOIN PlaylistSong ON Playlist.playlistid = PlaylistSong.playlistid + WHERE PlaylistSong.trackId = $id + ORDER BY Playlist.name + " + ); + return $query->result(); + } + public function addPlayliste($playlist){ $this->db->insert("Playlist",$playlist); return $this->db->insert_id(); @@ -324,4 +336,40 @@ class Model_music extends CI_Model { "trackId"=> $trackId); $this->db->insert("PlaylistSong",$tupple); } + + public function DeleteSongtoPlaylist($idplaylist, $trackId){ + $tupple = array( + "playlistId"=> $idplaylist, + "trackId"=> $trackId); + $this->db->delete("PlaylistSong",$tupple); + } + + public function get_song_playlist($id){ + $this->db->select('track.id as trackId, song.name,song.id,album.year,album.name as albumName, artist.name as artistName, genre.name as genreName'); + $this->db->from('Playlist'); + $this->db->join('PlaylistSong', 'PlaylistSong.playlistid = Playlist.playlistid'); + $this->db->join('track', 'PlaylistSong.trackid = track.id'); + $this->db->join('song', 'track.songId = song.id'); + $this->db->join('album', 'album.id = track.albumId'); + $this->db->join('artist', 'album.artistId = artist.Id'); + $this->db->join('genre', 'genre.id = album.genreid'); + $query = $this->db->get(); + return $query->result(); + } + + public function SongInPlaylist($id){ + $query = $this->db->query( + "SELECT PlaylistSong.trackId, Playlist.playlistId + FROM Playlist + JOIN PlaylistSong ON Playlist.playlistid = PlaylistSong.playlistid + WHERE PlaylistSong.trackid = $id + ORDER BY Playlist.name + " + ); + $query->result(); + if ($query->num_rows() > 0){ + return $query = true; + } + return $query = false; + } } diff --git a/CodeIgniter-3.1.13/application/views/addSongtoplaylist.php b/CodeIgniter-3.1.13/application/views/addSongtoplaylist.php index e4093ca..7c6eddb 100644 --- a/CodeIgniter-3.1.13/application/views/addSongtoplaylist.php +++ b/CodeIgniter-3.1.13/application/views/addSongtoplaylist.php @@ -11,7 +11,7 @@
diff --git a/CodeIgniter-3.1.13/application/views/albums_view.php b/CodeIgniter-3.1.13/application/views/albums_view.php index 3983d90..809c437 100644 --- a/CodeIgniter-3.1.13/application/views/albums_view.php +++ b/CodeIgniter-3.1.13/application/views/albums_view.php @@ -35,12 +35,22 @@ $artistName = $albums->artist->name; $duration = isset($albums->tracks[$index]->duration) ? convertirSecondesEnMinutes($albums->tracks[$index]->duration) : ''; echo "{$songName}"; - + echo ""; echo ""; echo ""; echo ""; echo ""; + if ($this->session->userdata('logged_in')){ + if($this->model_music->SongInPlaylist($albums->tracks[$index]->trackId)){ + echo ""; + echo anchor("chansons/deleteSongtoPlaylist/{$albums->tracks[$index]->trackId}",""); + echo ""; + } + echo ""; + echo anchor("chansons/addSongtoPlaylist/{$albums->tracks[$index]->trackId}",""); + echo ""; + } echo ""; echo ""; echo ""; diff --git a/CodeIgniter-3.1.13/application/views/chansons_list.php b/CodeIgniter-3.1.13/application/views/chansons_list.php index f51be70..59dc26f 100644 --- a/CodeIgniter-3.1.13/application/views/chansons_list.php +++ b/CodeIgniter-3.1.13/application/views/chansons_list.php @@ -148,7 +148,10 @@ foreach($chansons as $chanson){ echo "
"; echo anchor("chansons/view/{$chanson->id}","{$chanson->name}"); if($this->session->userdata('logged_in')){ - echo anchor("chansons/addSongtoPlaylist/{$chanson->trackId}",""); + if($this->model_music->SongInPlaylist($chanson->trackId)){ + echo anchor("chansons/deleteSongtoPlaylist/{$chanson->trackId}",""); + } + echo anchor("chansons/addSongtoPlaylist/{$chanson->trackId}",""); } echo "
"; echo ""; diff --git a/CodeIgniter-3.1.13/application/views/deleteSongtoplaylist.php b/CodeIgniter-3.1.13/application/views/deleteSongtoplaylist.php new file mode 100644 index 0000000..8303164 --- /dev/null +++ b/CodeIgniter-3.1.13/application/views/deleteSongtoplaylist.php @@ -0,0 +1,25 @@ +Supprimer une chanson à une playlist + +
+
Playlists
+
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+ + + \ No newline at end of file diff --git a/CodeIgniter-3.1.13/application/views/playlist_list.php b/CodeIgniter-3.1.13/application/views/playlist_list.php index 2cc7d1e..af45053 100644 --- a/CodeIgniter-3.1.13/application/views/playlist_list.php +++ b/CodeIgniter-3.1.13/application/views/playlist_list.php @@ -7,7 +7,7 @@ echo""; foreach($playlists as $playlist){ echo "
"; echo "
"; - echo anchor("playlist/view/{$playlist->playlistid}","{$playlist->name}"); + echo anchor("chansons/view/{$playlist->playlistid}","{$playlist->name}"); echo "
"; echo "
"; }