Commentaires

This commit is contained in:
Thomas FOLLEA 2024-06-19 16:40:06 +02:00
parent 3c647bb426
commit 47cf47a918
5 changed files with 43 additions and 40 deletions

@ -3,7 +3,7 @@ defined('BASEPATH') OR exit('No direct script access allowed');
class Albums extends CI_Controller {
private $sort = 'Tri';
private $sort = 'Tri'; // Variable privée pour définir l'ordre de tri par défaut
public function __construct(){
parent::__construct();
@ -13,10 +13,11 @@ class Albums extends CI_Controller {
$this->load->helper('form');
}
// on affiche tous les albums
public function index(){
$albums = $this->model_music->getAlbums();
$genres = $this->model_music->getGenres();
$num_results = count($albums);
$num_results = count($albums); // nombre total d'alubm recup
$this->load->view('layout/header');
$this->load->view('albums_list', [
'albums' => $albums,
@ -28,15 +29,17 @@ class Albums extends CI_Controller {
$this->load->view('layout/footer');
}
// afficher les détail d'un album spécifique (les musiques de l'albums)
public function view($id){
$tracks = $this->model_music->getTracksByAlbumId($id);
$tracks = $this->model_music->getTracksByAlbumId($id); // recuperer les pistes d'un album par son id
$this->load->view('layout/header');
$this->load->view('album_info', ['tracks' => $tracks]);
$this->load->view('layout/footer');
}
// trié en fonction d'un critère
public function tri(){
$Ctri = $this->input->get('Ctri');
$Ctri = $this->input->get('Ctri'); // critère de trie via l'url
$trie = $this->model_music->get_tri_Albums($Ctri);
$genres = $this->model_music->getGenres();
$num_results = count($trie);

@ -3,7 +3,7 @@ defined('BASEPATH') OR exit('No direct script access allowed');
class Artistes extends CI_Controller {
private $sort = 'Tri';
private $sort = 'Tri'; // Variable pour définir l'ordre de tri par défaut
public function __construct(){
parent::__construct();
@ -14,14 +14,14 @@ class Artistes extends CI_Controller {
}
public function index(){
$artistes = $this->model_music_artistes->getArtistes();
$artistes = $this->model_music_artistes->getArtistes(); // recuperer tout les artistes
$this->load->view('layout/header');
$this->load->view('artistes_list', ['artistes'=>$artistes]);
$this->load->view('layout/footer');
}
public function tri(){
$Ctri = $this->input->get('Ctri');
$Ctri = $this->input->get('Ctri'); // récupération du critère de trie depuis l'url
$trie = $this->model_music_artistes->get_tri_Artistes($Ctri);
$num_results = count($trie);
$this->load->view('layout/header');

@ -18,12 +18,12 @@ class ConnexionController extends CI_Controller {
public function authentifier() {
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$email = $_POST['email'];
$password = $_POST['password'];
$email = $_POST['email']; // recuère email depuis formulaire
$password = $_POST['password']; // idem mdp
if (!empty($email) && !empty($password)) {
$this->load->database();
// Utilisation d'une requête préparée pour éviter les injections SQL
// Utilisation d'une requête préparée
$query = $this->db->query("SELECT * FROM users WHERE email = ?", array($email));
$result = $query->row(); // Récupérer la première ligne de résultat
@ -50,7 +50,7 @@ class ConnexionController extends CI_Controller {
public function traitement() {
if(isset($_POST['ok'])){
if(isset($_POST['ok'])){ // verifie si le formulaire a été envoyé
$this->load->database();
@ -58,7 +58,7 @@ class ConnexionController extends CI_Controller {
$nom = strtoupper($this->input->post('nom'));
$pseudo = $this->input->post('pseudo');
$mdp = $this->input->post('pass');
$mdpcrypte = password_hash($mdp, PASSWORD_DEFAULT);
$mdpcrypte = password_hash($mdp, PASSWORD_DEFAULT); // cryptage du mot de passe
$email = $this->input->post('email');
$data = array(
'pseudo' => $pseudo,

@ -9,15 +9,15 @@ class Playlist extends CI_Controller {
$this->load->helper('html');
$this->load->helper('url');
$this->load->helper('form');
// verifier si il y a une sessions utilisateur en cours
if (!$this->session->userdata('user_id')) {
redirect('connexion');
}
}
public function index(){
$userId = $this->session->userdata('user_id');
// recupère toutes les playlist de l'utilisateur
$playlists = $this->model_music->getPlaylistsByUser($userId);
$this->load->view('layout/header');
$this->load->view('playlist_list', ['playlists' => $playlists]);
@ -25,6 +25,7 @@ class Playlist extends CI_Controller {
}
public function create(){
// récupère le nom choisis dans le formulaire
$name = $this->input->post('name');
$userId = $this->session->userdata('user_id');
$this->model_music->createPlaylist($name, $userId);
@ -37,12 +38,13 @@ class Playlist extends CI_Controller {
}
public function duplicate($id) {
// récupère données de la playlist grâce à son 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);
$newPlaylistId = $this->model_music->createPlaylist($newName, $userId); // création de nouvelle playlist avec les modifs
$songs = $this->model_music->getSongsByPlaylist($id); // récupère tout les sons de la playlist
foreach ($songs as $song) {
$this->model_music->addSongToPlaylist($newPlaylistId, $song->id);
}
@ -53,9 +55,10 @@ class Playlist extends CI_Controller {
}
public function view($id) {
// vérifier si la playlist apartient à l'utilisateur actuel
if($this->model_music->playlistOfUser($id)){
$songs = $this->model_music->getSongsByPlaylist($id);
$playlist = $this->model_music->getPlaylistById($id);
$songs = $this->model_music->getSongsByPlaylist($id); // récupère les chansons
$playlist = $this->model_music->getPlaylistById($id); // récupère les données
if ($playlist) {
$data['playlistName'] = $playlist->name;
$data['songs'] = $songs;
@ -89,8 +92,10 @@ class Playlist extends CI_Controller {
}
public function search_song(){
// Récupération de l'ID de la playlist et du nom de la chanson depuis le formulaire
$playlistId = $this->input->post('playlistId');
$songName = $this->input->post('songName');
// Recherche de la chanson par nom dans la base de données
$song = $this->model_music->findSongByName($songName);
if ($song) {
$this->model_music->addSongToPlaylist($playlistId, $song->id);
@ -99,7 +104,7 @@ class Playlist extends CI_Controller {
}
public function choose_playlist($songId) {
// Récupération de toutes les playlists de l'utilisateur actuel
$playlists = $this->model_music->getPlaylistsByUser($this->session->userdata('user_id'));
$this->load->view('layout/header');
$this->load->view('choose_playlist', ['playlists' => $playlists, 'songId' => $songId]);
@ -108,13 +113,13 @@ class Playlist extends CI_Controller {
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');
}
// Ajoute une chanson à une playlist spécifiée par formulaire
public function add_track() {
$songId = $this->input->post('songId');
$playlistId = $this->input->post('playlistId');

@ -101,7 +101,7 @@ class Model_music extends CI_Model {
return $query->result();
}
// vérifier que la playlist spécifié appartient à l'utilisateur connecté actuellement
public function playlistOfUser($id){
$user_id = $this->session->userdata('user_id');
$this->db->select('id');
@ -153,19 +153,21 @@ class Model_music extends CI_Model {
'name' => $name,
'userId' => $userId
);
$this->db->insert('playlist', $data);
return $this->db->insert_id();
$this->db->insert('playlist', $data); // Insère les données dans la table 'playlist'
return $this->db->insert_id(); // Renvoie l'ID de la dernière insertion
}
public function deletePlaylist($playlistId) {
$this->db->delete('playlist', array('id' => $playlistId));
$this->db->delete('playlistsong', array('playlistId' => $playlistId));
}
// récupère playlist d'un utilisateur avec userid
public function getPlaylistsByUser($userId) {
$query = $this->db->get_where('playlist', array('userId' => $userId));
return $query->result();
}
// récupère playlist par id de playlist
public function getPlaylistById($playlistId) {
$query = $this->db->get_where('playlist', array('id' => $playlistId), 1);
return $query->row(); // Renvoie la première ligne trouvée (la playlist correspondant à l'ID)
@ -210,21 +212,14 @@ class Model_music extends CI_Model {
$this->db->limit($numSongs);
$query = $this->db->get();
// Récupère les chansons sélectionnées aléatoirement
$songs = $query->result();
// Crée une nouvelle playlist avec le nom spécifié
$playlistId = $this->createPlaylist($playlistName, $userId);
// Ajoute chaque chanson à la playlist créée
foreach ($songs as $song) {
$this->addSongToPlaylist($playlistId, $song->id);
}
redirect('playlist/view/'.$playlistId);
}
}