162 lines
5.6 KiB
PHP
162 lines
5.6 KiB
PHP
<?php
|
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
|
|
|
class Playlist extends CI_Controller {
|
|
|
|
public function __construct(){
|
|
parent::__construct();
|
|
$this->load->model('model_music');
|
|
$this->load->helper('html');
|
|
$this->load->helper('url');
|
|
$this->load->helper('form');
|
|
if (!$this->session->userdata('user_id')) {
|
|
redirect('connexion');
|
|
}
|
|
}
|
|
|
|
public function index(){
|
|
|
|
|
|
$userId = $this->session->userdata('user_id');
|
|
$playlists = $this->model_music->getPlaylistsByUser($userId);
|
|
$this->load->view('layout/header');
|
|
$this->load->view('playlist_list', ['playlists' => $playlists]);
|
|
$this->load->view('layout/footer');
|
|
}
|
|
|
|
public function create(){
|
|
$name = $this->input->post('name');
|
|
$userId = $this->session->userdata('user_id');
|
|
$this->model_music->createPlaylist($name, $userId);
|
|
redirect('playlist');
|
|
}
|
|
|
|
public function delete($playlistId){
|
|
$this->model_music->deletePlaylist($playlistId);
|
|
redirect('playlist');
|
|
}
|
|
|
|
public function duplicate($id) {
|
|
$playlist = $this->model_music->getPlaylistById($id);
|
|
if ($playlist) {
|
|
$newName = $playlist->name . '_bis';
|
|
$userId = $this->session->userdata('user_id');
|
|
$newPlaylistId = $this->model_music->createPlaylist($newName, $userId);
|
|
$songs = $this->model_music->getSongsByPlaylist($id);
|
|
foreach ($songs as $song) {
|
|
$this->model_music->addSongToPlaylist($newPlaylistId, $song->id);
|
|
}
|
|
redirect('playlist/view/' . $newPlaylistId);
|
|
} else {
|
|
echo "Playlist non trouvée.";
|
|
}
|
|
}
|
|
|
|
public function view($id) {
|
|
if($this->model_music->playlistOfUser($id)){
|
|
$songs = $this->model_music->getSongsByPlaylist($id);
|
|
$playlist = $this->model_music->getPlaylistById($id);
|
|
if ($playlist) {
|
|
$data['playlistName'] = $playlist->name;
|
|
$data['songs'] = $songs;
|
|
$data['playlistId'] = $id;
|
|
$this->load->view('layout/header');
|
|
$this->load->view('playlist_view', $data);
|
|
$this->load->view('layout/footer');
|
|
} else {
|
|
echo "Playlist non trouvée.";
|
|
}
|
|
}else{
|
|
redirect('playlist');
|
|
}
|
|
|
|
|
|
}
|
|
|
|
public function add_song(){
|
|
$playlistId = $this->input->post('playlistId');
|
|
$songId = $this->input->post('songId');
|
|
$this->model_music->addSongToPlaylist($playlistId, $songId);
|
|
redirect('playlists/view/' . $playlistId);
|
|
}
|
|
|
|
|
|
public function remove_song(){
|
|
$playlistId = $this->input->post('playlistId');
|
|
$songId = $this->input->post('songId');
|
|
$this->model_music->removeSongFromPlaylist($playlistId, $songId);
|
|
redirect('playlist/view/' . $playlistId);
|
|
}
|
|
|
|
public function search_song(){
|
|
$playlistId = $this->input->post('playlistId');
|
|
$songName = $this->input->post('songName');
|
|
$song = $this->model_music->findSongByName($songName);
|
|
if ($song) {
|
|
$this->model_music->addSongToPlaylist($playlistId, $song->id);
|
|
}
|
|
redirect('playlist/view/' . $playlistId);
|
|
}
|
|
|
|
public function choose_playlist($songId) {
|
|
|
|
$playlists = $this->model_music->getPlaylistsByUser($this->session->userdata('user_id'));
|
|
$this->load->view('layout/header');
|
|
$this->load->view('choose_playlist', ['playlists' => $playlists, 'songId' => $songId]);
|
|
$this->load->view('layout/footer');
|
|
}
|
|
|
|
|
|
public function choix_playlist($albumId) {
|
|
|
|
$playlists = $this->model_music->getPlaylistsByUser($this->session->userdata('user_id'));
|
|
$this->load->view('layout/header');
|
|
$this->load->view('choix_playlist', ['playlists' => $playlists, 'albumId' => $albumId]);
|
|
$this->load->view('layout/footer');
|
|
}
|
|
|
|
public function add_track() {
|
|
$songId = $this->input->post('songId');
|
|
$playlistId = $this->input->post('playlistId');
|
|
if (!empty($songId) && !empty($playlistId)) {
|
|
$this->model_music->addSongToPlaylist($playlistId, $songId);
|
|
redirect('playlist/view/' . $playlistId);
|
|
} else {
|
|
echo "Erreur : Veuillez sélectionner une playlist.";
|
|
}
|
|
}
|
|
|
|
public function add_album_to_playlist() {
|
|
$albumId = $this->input->post('albumId');
|
|
$playlistId = $this->input->post('playlistId');
|
|
$songs = $this->model_music->getMusicsByAlbum($albumId);
|
|
foreach ($songs as $song) {
|
|
$this->model_music->addSongToPlaylist($playlistId, $song->songId);
|
|
}
|
|
redirect('playlist/view/' . $playlistId);
|
|
}
|
|
|
|
|
|
public function generate_random(){
|
|
$genres = $this->model_music->getGenres();
|
|
$this->load->view('layout/header');
|
|
$this->load->view('playlist_generate', ['genres' => $genres]);
|
|
$this->load->view('layout/footer');
|
|
|
|
$genre = $this->input->post('genre');
|
|
$numSongs = (int)$this->input->post('numSongs');
|
|
$playlistName = $this->input->post('playlistName');
|
|
$userId = $this->session->userdata('user_id');
|
|
|
|
if ($numSongs > 0 && !empty($playlistName)) {
|
|
$playlistId = $this->model_music->generate_random_playlist($numSongs, $playlistName, $userId, $genre);
|
|
redirect('playlist/view/' . $playlistId);
|
|
} else {
|
|
echo "Erreur : Veuillez entrer un nombre de chansons valide et un nom de playlist.";
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
?>
|