playlist unique au compte connecté

This commit is contained in:
Wilfried BRIGITTE 2024-06-12 18:17:31 +02:00
parent 43921099be
commit 4638bc989c
7 changed files with 72 additions and 55 deletions

View File

@ -23,7 +23,7 @@ defined('BASEPATH') OR exit('No direct script access allowed');
| a PHP script and you can easily do that on your own.
|
*/
$config['base_url'] = '/~boutaric/SAEWEB2.2/ci/';
$config['base_url'] = '/~brigitte/SAEWEB2.2/ci/';
/*
|--------------------------------------------------------------------------

View File

@ -6,6 +6,7 @@ class Albums extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->model('model_music');
$this->load->library('session');
}
public function index(){
@ -24,7 +25,8 @@ class Albums extends CI_Controller {
$search = $_POST['recherche'];
}
}
$playlists = $this->model_music->getPlaylist();
$mail = $this->session->userdata('mail');
$playlists = $this->model_music->getPlaylist($mail);
$albums = $this->model_music->searchAlbums($search, $selectedGenre);
$this->load->view('albums_list', ['albums' => $albums, 'playlists' => $playlists]);
$this->load->view('layout/footer');
@ -38,7 +40,8 @@ class Albums extends CI_Controller {
if (empty($songs)) {
$songs = [];
}
$playlists = $this->model_music->getPlaylist();
$mail = $this->session->userdata('mail');
$playlists = $this->model_music->getPlaylist($mail);
$this->load->view('layout/header');
$this->load->view('song_album_list', ['songs' => $songs, 'playlists' => $playlists]);
$this->load->view('layout/footer');

View File

@ -3,22 +3,25 @@ defined('BASEPATH') OR exit('No direct script access allowed');
class artistes extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->model('model_music');
}
public function index(){
$artistes = $this->model_music->getArtists();
$playlists = $this->model_music->getPlaylist();
$this->load->view('layout/header');
$this->load->view('artistes_list',['artistes'=>$artistes, 'playlists' => $playlists]);
$this->load->view('layout/footer');
}
public function __construct(){
parent::__construct();
$this->load->model('model_music');
$this->load->library('session');
}
public function index(){
$artistes = $this->model_music->getArtists();
$mail = $this->session->userdata('mail');
$playlists = $this->model_music->getPlaylist($mail);
$this->load->view('layout/header');
$this->load->view('artistes_list',['artistes'=>$artistes, 'playlists' => $playlists]);
$this->load->view('layout/footer');
}
public function view($AlbumsOfArtistId){
public function view($AlbumsOfArtistId){
$artistes = $this->model_music->getArtists();
$AlbumsOfArtists = $this->model_music->getAlbumsOfArtist($AlbumsOfArtistId);
$playlists = $this->model_music->getPlaylist();
$mail = $this->session->userdata('mail');
$playlists = $this->model_music->getPlaylist($mail);
$this->load->view('layout/header');
$this->load->view('albums_artist_list', ['AlbumsOfArtists' => $AlbumsOfArtists, 'playlists' => $playlists, 'artist_id' => $AlbumsOfArtistId, 'artistes' => $artistes]);
$this->load->view('layout/footer');

View File

@ -9,9 +9,9 @@ class Connexion extends CI_Controller{
$this->load->model('model_music');
}
public function index(){
$this->load->view('layout/header');
//$this->load->view('layout/header');
$this->load->view('login');
$this->load->view('layout/footer');
//$this->load->view('layout/footer');
}
public function login() {
@ -26,10 +26,11 @@ class Connexion extends CI_Controller{
$result = $this->model_music->getLogin($login,$password);
if (count($result) > 0) {
$this->session->set_userdata('logged', true);
$this->session->set_userdata('mail', $login);
$this->load->view('layout/header');
redirect('albums');
} else {
$this->load->view('layout/header');
//$this->load->view('layout/header');
$this->load->view('login');
$this->load->view('layout/footer');
echo "Invalid login or password";

View File

@ -6,10 +6,12 @@ class Playlist extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->model('model_music');
$this->load->library('session');
}
public function index(){
$playlists = $this->model_music->getPlaylist();
$mail = $this->session->userdata('mail');
$playlists = $this->model_music->getPlaylist($mail);
$this->load->view('layout/header');
$this->load->view('playlist_list', ['playlists' => $playlists]);
$this->load->view('layout/footer');
@ -25,7 +27,8 @@ class Playlist extends CI_Controller {
public function SongPlaylist($playlist_id){
$songPlaylists = $this->model_music->getSongOfPlaylist($playlist_id);
$songs = $this->model_music->getSongOfAlbum($playlist_id);
$playlists = $this->model_music->getPlaylist(); // Récupère toutes les playlists
$mail = $this->session->userdata('mail');
$playlists = $this->model_music->getPlaylist($mail); // Récupère toutes les playlists
$id_playlist = null; // Initialise $id_playlist à null
foreach ($playlists as $playlist_item) {
if ($playlist_item->id == $playlist_id) {
@ -37,7 +40,8 @@ class Playlist extends CI_Controller {
}
public function delete($playlist_id) {
$delete = $this->model_music->deletePlaylist($playlist_id);
$mail = $this->session->userdata('mail');
$delete = $this->model_music->deletePlaylist($playlist_id, $mail);
redirect('playlist');
}
@ -54,8 +58,9 @@ class Playlist extends CI_Controller {
}
public function createPlaylistController() {
$mail = $this->session->userdata('mail');
$name_playlist = $this->input->post('name_playlist');
$create = $this->model_music->createPlaylist($name_playlist);
$create = $this->model_music->createPlaylist($name_playlist, $mail);
redirect('playlist');
}
@ -67,11 +72,12 @@ class Playlist extends CI_Controller {
}
public function duplicate($playlist_id){
$mail = $this->session->userdata('mail');
// Charger le modèle si ce n'est pas déjà fait
$this->load->model('model_music');
// Dupliquer la playlist avec l'ID spécifié
$this->model_music->duplicatePlaylist($playlist_id);
$this->model_music->duplicatePlaylist($playlist_id, $mail);
// Rediriger l'utilisateur vers la page des playlists
redirect('playlist');

View File

@ -42,24 +42,26 @@ class Model_music extends CI_Model {
return $query->result();
}
public function getPlaylist(){
public function getPlaylist($mail){
$query = $this->db->query(
"SELECT playlist.id, playlist.name
FROM playlist
FROM playlist NATURAL JOIN Login
where playlist.mail = ?
Group by playlist.id
"
",
array($mail)
);
return $query->result();
}
public function deletePlaylist($playlist_id){
public function deletePlaylist($playlist_id, $mail){
$this->db->query(
"DELETE FROM SongPlaylist WHERE id = ?", array($playlist_id)
"DELETE FROM SongPlaylist WHERE id = ?" , array($playlist_id)
);
// Ensuite, supprimer l'enregistrement dans playlist
$this->db->query(
"DELETE FROM playlist WHERE id = ?", array($playlist_id)
"DELETE FROM playlist WHERE id = ? AND playlist.mail = ?", array($playlist_id, $mail)
);
}
@ -71,11 +73,12 @@ class Model_music extends CI_Model {
);
}
public function createPlaylist($name_playlist){
public function createPlaylist($name_playlist, $mail){
$name_playlist_escaped = $this->db->escape($name_playlist);
$query = $this->db->query(
"INSERT INTO playlist (name) VALUES ($name_playlist_escaped);
"
"INSERT INTO playlist (name, mail) VALUES (?, ?);
",
array($name_playlist_escaped, $mail)
);
}
@ -217,27 +220,28 @@ class Model_music extends CI_Model {
}
}
public function duplicatePlaylist($playlist_id){
// Récupérer les informations de la playlist à dupliquer
$playlist = $this->db->get_where('playlist', array('id' => $playlist_id))->row();
// Créer une nouvelle entrée pour la playlist avec les mêmes informations
$data = array(
'name' => $playlist->name . ' (Copy)',
);
$this->db->insert('playlist', $data);
// Récupérer l'ID de la nouvelle playlist
$new_playlist_id = $this->db->insert_id();
// Dupliquer les chansons de la playlist originale dans la nouvelle playlist
$this->db->query(
"INSERT INTO SongPlaylist (id, name)
SELECT ?, name
FROM SongPlaylist
WHERE id = ?",
array($new_playlist_id, $playlist_id));
public function duplicatePlaylist($playlist_id, $mail){
// Récupérer les informations de la playlist à dupliquer
$playlist = $this->db->get_where('playlist', array('id' => $playlist_id))->row();
// Créer une nouvelle entrée pour la playlist avec les mêmes informations
$data = array(
'name' => $playlist->name . ' (Copy)',
'mail' => $mail
);
$this->db->insert('playlist', $data);
// Récupérer l'ID de la nouvelle playlist
$new_playlist_id = $this->db->insert_id();
// Dupliquer les chansons de la playlist originale dans la nouvelle playlist
$this->db->query(
"INSERT INTO SongPlaylist (id, name)
SELECT ?, name
FROM SongPlaylist
WHERE id = ?",
array($new_playlist_id, $playlist_id));
}
}

View File

@ -17,7 +17,7 @@
</div>
<nav class="menu">
<ul>
<li><?= anchor('https://dwarves.iut-fbleau.fr/~boutaric/SAEWEB2.2/ci/','Home'); ?></li>
<li><?= anchor('https://dwarves.iut-fbleau.fr/~brigitte/SAEWEB2.2/ci/','Home'); ?></li>
<li><?= anchor('albums','Albums'); ?></li>
<li><?= anchor('artistes','Artistes'); ?> </li>
<?php if ($this->session->userdata('logged')): ?>