diff --git a/CodeIgniter-3.1.13/application/controllers/Playlist.php b/CodeIgniter-3.1.13/application/controllers/Playlist.php index 74aee88..62182ae 100644 --- a/CodeIgniter-3.1.13/application/controllers/Playlist.php +++ b/CodeIgniter-3.1.13/application/controllers/Playlist.php @@ -74,4 +74,39 @@ class Playlist extends CI_Controller { $this->model_music->DeletePlaylist($id); redirect('playlist'); } + + public function create_random_playlist() { + $this->form_validation->set_rules('num_tracks', 'num_tracks', 'required'); + $this->form_validation->set_rules('name', 'name', 'required'); + + $data['genres'] = $this->model_music->get_all_genres(); + $data['artists'] = $this->model_music->get_all_artists(); + $data['years'] = $this->model_music->get_all_years(); + + if ($this->form_validation->run() == FALSE){ + $this->load->view('layout/header'); + $this->load->view('random_Playlist',$data); + $this->load->view('layout/footer'); + }else{ + $genres = $this->input->post('genre'); + $artists = $this->input->post('artist'); + $years = $this->input->post('year'); + $nom = $this->input->post('name'); + $description = $this->input->post('Description'); + $userId = $this->session->userdata('userId'); + $num_tracks = (int) $this->input->post('num_tracks'); + $playlist = array( + 'name'=>$nom, + 'description'=>$description, + 'userId'=>$userId, + ); + $this->model_music->addPlayliste($playlist); + $idplaylist = $this->model_music->IdPLaylistByName($nom); + $tracks = $this->model_music->get_random_tracks($genres, $artists, $years, $num_tracks); + foreach ($tracks as $musique){ + $this->model_music->AddSongtoPlaylist($idplaylist, $musique->trackId); + } + redirect('playlist'); + } + } } \ No newline at end of file diff --git a/CodeIgniter-3.1.13/application/models/Model_music.php b/CodeIgniter-3.1.13/application/models/Model_music.php index 1020b7d..960a949 100644 --- a/CodeIgniter-3.1.13/application/models/Model_music.php +++ b/CodeIgniter-3.1.13/application/models/Model_music.php @@ -469,14 +469,17 @@ class Model_music extends CI_Model { } } - public function DuplicatePlaylist($idplaylist,$nomplaylist){ + public function IdPLaylistByName($nomPLaylist){ $this->db->select('Playlist.playlistId'); $this->db->from('Playlist'); - $this->db->where('name', $nomplaylist); + $this->db->where('name', $nomPLaylist); $query = $this->db->get(); $result = $query->row(); - $id = $result->playlistId; - print_r($id); + return $result->playlistId; + } + + public function DuplicatePlaylist($idplaylist,$nomplaylist){ + $id = $this->model_music->IdPLaylistByName($nomplaylist); $this->db->select('PlaylistSong.trackId'); $this->db->from('PlaylistSong'); @@ -495,4 +498,29 @@ class Model_music extends CI_Model { $this->db->where('playlistId',$idplaylist); $this->db->delete("Playlist"); } + + public function get_random_tracks($genres = [], $artists = [], $years = [], $num_tracks = 10) { + $this->db->select('track.id as trackId'); + $this->db->from('track'); + $this->db->join('album', 'album.id = track.albumId'); + $this->db->join('artist', 'album.artistId = artist.Id'); + $this->db->join('genre', 'genre.id = album.genreid'); + + if (!empty($genres)) { + $this->db->where_in('genre.name', $genres); + } + + if (!empty($artists)) { + $this->db->where_in('artist.name', $artists); + } + + if (!empty($years)) { + $this->db->where_in('year', $years); + } + + $this->db->order_by('RAND()'); + $this->db->limit($num_tracks); + $query = $this->db->get(); + return $query->result(); + } } diff --git a/CodeIgniter-3.1.13/application/views/albums_list.php b/CodeIgniter-3.1.13/application/views/albums_list.php index 26a50f6..76fa168 100644 --- a/CodeIgniter-3.1.13/application/views/albums_list.php +++ b/CodeIgniter-3.1.13/application/views/albums_list.php @@ -1,77 +1,5 @@ - - +
Filter Albums
@@ -133,12 +61,16 @@ if($page[count($page)-2] != 'viewAlbum'){ ?>
Albums list
= 0; $i--) { + if (in_array($page[$i], $valid_segments)) { + $url = implode('/', array_slice($page, $i)); + break; + } } foreach($albums as $album){ diff --git a/CodeIgniter-3.1.13/application/views/albums_view.php b/CodeIgniter-3.1.13/application/views/albums_view.php index 991af27..b32441c 100644 --- a/CodeIgniter-3.1.13/application/views/albums_view.php +++ b/CodeIgniter-3.1.13/application/views/albums_view.php @@ -1,86 +1,57 @@ -
-
-
+ +
+
+
coverImage) . '" style="width: 300px; height: 300px;" />'; ?>

- -

name; ?>

- - artist->name; ?> -

year; ?>

- +

name; ?>

+ artist->name; ?> +

year; ?>

-
+
"; - echo ""; - echo "
Titre
"; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - - echo "
Durée
"; - - echo ""; - foreach ($albums->songs as $index => $songName) { - $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}?page={$url}",""); - echo ""; - } - echo ""; - echo anchor("chansons/addSongtoPlaylist/{$albums->tracks[$index]->trackId}?page={$url}",""); - echo ""; - } - echo ""; - echo ""; - echo ""; - echo ""; - - echo "{$duration}"; - echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + foreach ($albums->songs as $index => $song) { + $artistName = $albums->artist->name; + $duration = isset($albums->tracks[$index]->duration) ? convertirSecondesEnMinutes($albums->tracks[$index]->duration) : ''; + echo ""; + echo ""; + echo ""; + echo "
TitreDuréeAction
{$song}{$duration}"; + if ($this->session->userdata('logged_in')){ + if($this->model_music->SongInPlaylist($albums->tracks[$index]->trackId)){ + echo anchor("chansons/deleteSongtoPlaylist/{$albums->tracks[$index]->trackId}",""); + } } - - - - echo "
"; + echo anchor("chansons/addSongtoPlaylist/{$albums->tracks[$index]->trackId}",""); + //echo "+"; + echo ""; + echo ""; + } + echo ""; - - - function convertirSecondesEnMinutes($secondes) { - $minutes = floor($secondes / 60); - $secondesRestantes = $secondes % 60; - return sprintf('%02d:%02d', $minutes, $secondesRestantes); - } + function convertirSecondesEnMinutes($secondes) { + $minutes = floor($secondes / 60); + $secondesRestantes = $secondes % 60; + return sprintf('%02d:%02d', $minutes, $secondesRestantes); + } ?>
-
\ No newline at end of file +
diff --git a/CodeIgniter-3.1.13/application/views/artistes_list.php b/CodeIgniter-3.1.13/application/views/artistes_list.php index 0e93a80..2967439 100644 --- a/CodeIgniter-3.1.13/application/views/artistes_list.php +++ b/CodeIgniter-3.1.13/application/views/artistes_list.php @@ -1,27 +1,4 @@ - +
diff --git a/CodeIgniter-3.1.13/application/views/playlist_list.php b/CodeIgniter-3.1.13/application/views/playlist_list.php index 42bfeff..df7b08b 100644 --- a/CodeIgniter-3.1.13/application/views/playlist_list.php +++ b/CodeIgniter-3.1.13/application/views/playlist_list.php @@ -2,7 +2,10 @@
"; -echo anchor("playlist/addplaylist",""); +if($this->session->userdata('logged_in')){ + echo anchor("playlist/addplaylist",""); + echo anchor("playlist/create_random_playlist",""); +} echo""; foreach($playlists as $playlist){ echo "
"; diff --git a/CodeIgniter-3.1.13/application/views/random_Playlist.php b/CodeIgniter-3.1.13/application/views/random_Playlist.php new file mode 100644 index 0000000..3cda548 --- /dev/null +++ b/CodeIgniter-3.1.13/application/views/random_Playlist.php @@ -0,0 +1,76 @@ + + + +
Différents critères
+ +
+
+ + + +
+ + + + + + + +
+ + +
+ +
+ + +
\ No newline at end of file diff --git a/CodeIgniter-3.1.13/assets/style.css b/CodeIgniter-3.1.13/assets/style.css index 3338ab0..fafe7da 100644 --- a/CodeIgniter-3.1.13/assets/style.css +++ b/CodeIgniter-3.1.13/assets/style.css @@ -56,4 +56,91 @@ section.list img { } .show-buttons .sort-buttons { display: block; +} + +body { + background-color: #13171f; + color: #ffffff; + font-family: Arial, sans-serif; +} + +.album-details { + display: flex; + align-items: flex-start; + padding: 20px; + background-color: #13171f; +} + +.album-content { + display: flex; + flex-direction: row; + width: 100%; +} + +.album-image { + margin-right: 50px; + text-align: center; + background-color: #13171f; + padding: 20px; + border-radius: 8px; +} + +.album-cover { + width: 300px; + height: 300px; +} + +.album-name { + font-size: 1.5em; + margin-top: 1em; +} + +.album-artist, +.album-year { + font-size: 1em; + margin-top: 0.5em; +} + +.album-songs { + flex-grow: 2; + padding: 20px; + background-color: #13171; + border-radius: 8px; +} + +table { + width: 100%; + border-collapse: collapse; + color: #ffffff; +} + +th, +td { + padding: 12px; + text-align: left; + border-bottom: 1px solid #333; + background-color: #444; + color: #fff; +} + +th { + background-color: #333; +} + +tr:nth-child(even) { + background-color: #2a2a2a; +} + +tr:hover { + background-color: #444; +} + +i { + background-color: #444; + color: #13171f; + border: none; + padding: 2px 10px; + cursor: pointer; + font-size: 14px; + border-radius: 4px; } \ No newline at end of file