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 "| Titre | ";
+ echo "Durée | ";
+ echo "Action | ";
+ echo "
";
+ foreach ($albums->songs as $index => $song) {
+ $artistName = $albums->artist->name;
+ $duration = isset($albums->tracks[$index]->duration) ? convertirSecondesEnMinutes($albums->tracks[$index]->duration) : '';
+ echo "";
+ echo "| {$song} | ";
+ echo "{$duration} | ";
+ echo "";
+ 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 "
tracks[$index]->trackId) . "' class='btn-plus'>+";
+ 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