From 9436fd05cc1968ebb03d257f575565c71421e123 Mon Sep 17 00:00:00 2001 From: teissier <vi.teissier@gmail.com> Date: Sun, 16 Jun 2024 17:39:26 +0200 Subject: [PATCH] push --- application/controllers/Artistes.php | 35 +++--- application/controllers/Music.php | 18 ++- application/controllers/Playlist.php | 151 ++++++++++++++++++++++++ application/models/Model_music.php | 110 +++++++++++++----- application/models/Model_playlist.php | 98 ++++++++++++++++ application/views/album_details.php | 37 +++--- application/views/albums_list.php | 60 ++++++---- application/views/artist_details.php | 49 ++++---- application/views/artists_list.php | 38 ++++-- application/views/create.php | 91 ++++++++++----- application/views/layout/getter.php | 2 + application/views/layout/header.php | 86 ++++++-------- application/views/login.php | 67 ++++++----- application/views/logout.php | 8 -- application/views/musiques_list.php | 47 +++++--- application/views/playlist_details.php | 38 ++++++ application/views/playlists_list.php | 154 +++++++++++++++++++++++++ application/views/select_playlist.php | 31 +++++ application/views/song_details.php | 32 +++-- assets/common.css | 0 assets/logo.png | Bin 0 -> 62470 bytes assets/style.css | 52 ++++++--- 22 files changed, 928 insertions(+), 276 deletions(-) create mode 100644 application/controllers/Playlist.php create mode 100644 application/models/Model_playlist.php create mode 100644 application/views/playlist_details.php create mode 100644 application/views/playlists_list.php create mode 100644 application/views/select_playlist.php create mode 100644 assets/common.css create mode 100644 assets/logo.png diff --git a/application/controllers/Artistes.php b/application/controllers/Artistes.php index 524557a..d32b56d 100644 --- a/application/controllers/Artistes.php +++ b/application/controllers/Artistes.php @@ -3,13 +3,13 @@ defined('BASEPATH') OR exit('No direct script access allowed'); class Artistes extends CI_Controller { - public function __construct(){ + public function __construct() { parent::__construct(); $this->load->model('model_music'); $this->load->library('session'); } - public function index(){ + public function index() { $genre = $this->input->get('genre'); $order = $this->input->get('order'); $query = $this->input->get('query'); @@ -31,20 +31,19 @@ class Artistes extends CI_Controller { } public function view($artistId) { - $artistData = $this->model_music->getArtistDetails($artistId); - - $is_logged_in = $this->session->userdata('logged_in'); - $data = array( - 'artist' => $artistData['artist'], - 'albums' => $artistData['albums'], - 'is_logged_in' => $is_logged_in - ); - - $this->load->view('layout/header', $data); - $this->load->view('artist_details', $data); - $this->load->view('layout/footer'); - } - + $artist = $this->model_music->getArtistDetails($artistId); + $albums = $this->model_music->getAlbumsByArtist($artistId); + + $is_logged_in = $this->session->userdata('logged_in'); + $data = array( + 'artist' => $artist, + 'albums' => $albums, + 'is_logged_in' => $is_logged_in + ); + + $this->load->view('layout/header', $data); + $this->load->view('artist_details', $data); + $this->load->view('layout/footer'); + } } - - +?> diff --git a/application/controllers/Music.php b/application/controllers/Music.php index dec0599..2bd1d45 100644 --- a/application/controllers/Music.php +++ b/application/controllers/Music.php @@ -17,13 +17,13 @@ class Music extends CI_Controller { $musics = $this->model_music->getMusics($genre, $order, $artist, $query); $genres = $this->model_music->researchtype(); - $artists = $this->model_music->nameArtist(); + $artists = $this->model_music->nameArtist(); // S'assurer que cette méthode récupère bien les artistes $is_logged_in = $this->session->userdata('logged_in'); $data = array( 'musics' => $musics, 'genres' => $genres, - 'artists' => $artists, + 'artistes' => $artists, // Passer les artistes à la vue 'is_logged_in' => $is_logged_in ); @@ -33,17 +33,23 @@ class Music extends CI_Controller { $this->load->view('layout/footer'); } - public function view($trackId) { - $songData = $this->model_music->getSongDetails($trackId); - + public function view($songId) { + $songData = $this->model_music->getSongDetails($songId); + + if (!$songData) { + show_404(); + } + $is_logged_in = $this->session->userdata('logged_in'); $data = array( 'song' => $songData, 'is_logged_in' => $is_logged_in ); - + $this->load->view('layout/header', $data); $this->load->view('song_details', $data); $this->load->view('layout/footer'); } + + } diff --git a/application/controllers/Playlist.php b/application/controllers/Playlist.php new file mode 100644 index 0000000..2c57833 --- /dev/null +++ b/application/controllers/Playlist.php @@ -0,0 +1,151 @@ +<?php +defined('BASEPATH') OR exit('No direct script access allowed'); + +class Playlist extends CI_Controller { + public function __construct() { + parent::__construct(); + $this->load->model('Model_playlist'); + $this->load->model('Model_music'); // Ajouté pour accéder aux musiques + $this->load->library('session'); + } + + public function index() { + $is_logged_in = $this->session->userdata('logged_in'); + $user_email = $this->session->userdata('email'); + + if (!$is_logged_in) { + redirect('connect/login'); + } + + $data = array( + 'is_logged_in' => $is_logged_in, + 'playlists' => $this->Model_playlist->getPlaylistsByUser($user_email) + ); + + $this->load->view('layout/header', $data); + $this->load->view('playlists_list', $data); + $this->load->view('layout/footer'); + } + + public function add() { + $is_logged_in = $this->session->userdata('logged_in'); + $user_email = $this->session->userdata('email'); + + if (!$is_logged_in) { + redirect('connect/login'); + } + + $name = $this->input->post('name'); + $type = $this->input->post('type'); + + if ($type == 'random') { + $numSongs = $this->input->post('numSongs'); + $artist = $this->input->post('artist'); + $genre = $this->input->post('genre'); + $this->Model_playlist->createRandomPlaylist($user_email, $name, $numSongs, $artist, $genre); + } else { + $this->Model_playlist->addPlaylist($user_email, $name); + } + + redirect('playlist'); + } + + public function selectPlaylist() { + $itemId = $this->input->post('itemId'); + $itemType = $this->input->post('itemType'); + $playlists = $this->Model_playlist->getPlaylistsByUser($this->session->userdata('email')); + + $data = array( + 'itemId' => $itemId, + 'itemType' => $itemType, + 'playlists' => $playlists + ); + + $this->load->view('layout/header', $data); + $this->load->view('select_playlist', $data); + $this->load->view('layout/footer'); + } + + public function addItems() { + $playlistId = $this->input->post('playlistId'); + $itemId = $this->input->post('itemId'); + $itemType = $this->input->post('itemType'); + + if ($itemType == 'album') { + $songs = $this->Model_music->getSongsByAlbum($itemId); + foreach ($songs as $song) { + $this->Model_playlist->addItem($playlistId, $song->id, 'song'); + } + } else if ($itemType == 'artist') { + $albums = $this->Model_music->getAlbumsByArtist($itemId); + foreach ($albums as $album) { + $songs = $this->Model_music->getSongsByAlbum($album->albumId); + foreach ($songs as $song) { + $this->Model_playlist->addItem($playlistId, $song->id, 'song'); + } + } + } else { + $this->Model_playlist->addItem($playlistId, $itemId, 'song'); + } + + redirect('playlist/view/' . $playlistId); + } + + public function view($playlistId) { + $is_logged_in = $this->session->userdata('logged_in'); + $items = $this->Model_playlist->getPlaylistItems($playlistId); + $data = array( + 'is_logged_in' => $is_logged_in, + 'items' => $items + ); + + $this->load->view('layout/header', $data); + $this->load->view('playlist_details', $data); + $this->load->view('layout/footer'); + } + + public function deleteItem($playlistId, $itemId) { + $this->Model_playlist->deleteItem($playlistId, $itemId); + redirect('playlist/view/' . $playlistId); + } + + public function delete($playlist_id) { + $is_logged_in = $this->session->userdata('logged_in'); + $user_email = $this->session->userdata('email'); + + if (!$is_logged_in) { + redirect('connect/login'); + } + + $this->Model_playlist->deletePlaylist($playlist_id); + redirect('playlist'); + } + + public function duplicate($playlist_id) { + $is_logged_in = $this->session->userdata('logged_in'); + $user_email = $this->session->userdata('email'); + + if (!$is_logged_in) { + redirect('connect/login'); + } + + $this->Model_playlist->duplicatePlaylist($playlist_id, $user_email); + redirect('playlist'); + } + + public function rename() { + $is_logged_in = $this->session->userdata('logged_in'); + $user_email = $this->session->userdata('email'); + + if (!$is_logged_in) { + redirect('connect/login'); + } + + $playlistId = $this->input->post('playlistId'); + $newName = $this->input->post('newName'); + + $this->Model_playlist->renamePlaylist($playlistId, $newName); + redirect('playlist'); + } +} + diff --git a/application/models/Model_music.php b/application/models/Model_music.php index 8608426..6bda300 100644 --- a/application/models/Model_music.php +++ b/application/models/Model_music.php @@ -70,7 +70,6 @@ class Model_music extends CI_Model { $result = $this->db->get(); return $result->result(); } - public function getMusics($genre = '', $order = '', $artist = '', $query = '') { $this->db->select('album.name as albumName, album.id as albumId, year, artist.name as artistName, genre.name as genreName, jpeg, song.name as trackName, track.id as trackId'); @@ -81,29 +80,28 @@ class Model_music extends CI_Model { $this->db->join('genre', 'genre.id = album.genreid'); $this->db->join('cover', 'cover.id = album.coverid'); $this->db->limit(100); - + if (!empty($genre)) { $this->db->where('genre.name', $genre); } - + if (!empty($artist)) { $this->db->where('artist.name', $artist); } - + if ($order == 'asc' || $order == 'desc') { $this->db->order_by('song.name', $order); } - + if (!empty($query)) { $this->db->like('song.name', $query); } - + $result = $this->db->get(); return $result->result(); } public function getAlbumDetails($albumId) { - // Get album info $this->db->select('album.name as albumName, album.id, year, artist.name as artistName, genre.name as genreName, jpeg'); $this->db->from('album'); $this->db->join('artist', 'album.artistid = artist.id'); @@ -113,7 +111,6 @@ class Model_music extends CI_Model { $albumQuery = $this->db->get(); $albumDetails = $albumQuery->row(); - // Get album songs $this->db->select('song.name as trackName, track.id as trackId'); $this->db->from('track'); $this->db->join('song', 'track.songId = song.id'); @@ -124,22 +121,15 @@ class Model_music extends CI_Model { return array('album' => $albumDetails, 'songs' => $songs); } - public function getArtistDetails($artistId) { - // Get artist info - $this->db->select('artist.name as artistName, artist.id'); - $this->db->from('artist'); - $this->db->where('artist.id', $artistId); - $artistQuery = $this->db->get(); - $artistDetails = $artistQuery->row(); - - // Get artist's albums with their songs - $this->db->select('album.id as albumId, album.name as albumName, album.year'); + public function getAlbumsByArtist($artistId) { + $this->db->select('album.id as albumId, album.name as albumName, album.year, cover.jpeg, genre.name as genreName'); $this->db->from('album'); + $this->db->join('genre', 'album.genreid = genre.id'); + $this->db->join('cover', 'album.coverid = cover.id'); $this->db->where('album.artistid', $artistId); $albumsQuery = $this->db->get(); $albums = $albumsQuery->result(); - // Get songs for each album foreach ($albums as $album) { $this->db->select('track.id as trackId, song.name as songName'); $this->db->from('track'); @@ -148,26 +138,88 @@ class Model_music extends CI_Model { $album->songs = $this->db->get()->result(); } - return array('artist' => $artistDetails, 'albums' => $albums); + return $albums; } - - + + public function getArtistDetails($artistId) { + $this->db->select('artist.name as artistName, artist.id'); + $this->db->from('artist'); + $this->db->where('artist.id', $artistId); + $artistQuery = $this->db->get(); + return $artistQuery->row(); + } + public function getSongDetails($songId) { - $this->db->select('song.name as songName, song.id as songId, album.name as albumName, album.id as albumId, album.year, artist.name as artistName, artist.id as artistId, cover.jpeg'); + $this->db->select(' + song.name as songName, + song.id as songId, + album.name as albumName, + album.id as albumId, + album.year, + artist.name as artistName, + artist.id as artistId, + cover.jpeg, + track.diskNumber, + track.number, + track.duration + '); $this->db->from('track'); - $this->db->join('album', 'track.albumId = album.id'); - $this->db->join('song', 'song.id = track.songId'); + $this->db->join('album', 'track.albumid = album.id'); + $this->db->join('song', 'song.id = track.songid'); $this->db->join('artist', 'album.artistid = artist.id'); $this->db->join('cover', 'cover.id = album.coverid'); $this->db->where('track.id', $songId); - + $result = $this->db->get(); return $result->row_array(); } - // Suppression de la deuxième méthode researchtype + public function getSongsByAlbum($albumId) { + $this->db->select('track.id'); + $this->db->from('track'); + $this->db->where('track.albumid', $albumId); + $query = $this->db->get(); + return $query->result(); + } - public function research(){ - $result = $this->db->query(); + public function getSongsByArtist($artistId) { + $this->db->select('track.id'); + $this->db->from('track'); + $this->db->join('album', 'track.albumid = album.id'); + $this->db->where('album.artistid', $artistId); + $query = $this->db->get(); + return $query->result(); + } + + + public function getRandomSongs($numSongs, $artist = '', $genre = '') { + $this->db->select('track.id as trackId'); + $this->db->from('track'); + $this->db->join('album', 'track.albumid = album.id'); + $this->db->join('song', 'song.id = track.songid'); + $this->db->join('artist', 'album.artistid = artist.id'); + $this->db->join('genre', 'album.genreid = genre.id'); + + if (!empty($artist)) { + $this->db->where('artist.name', $artist); + } + + if (!empty($genre)) { + $this->db->where('genre.name', $genre); + } + + $this->db->order_by('RAND()'); + $this->db->limit($numSongs); + + $query = $this->db->get(); + return $query->result(); + } + + + public function getGenres() { + $this->db->select('id, name'); + $this->db->from('genre'); + $query = $this->db->get(); + return $query->result(); } } diff --git a/application/models/Model_playlist.php b/application/models/Model_playlist.php new file mode 100644 index 0000000..70a2b15 --- /dev/null +++ b/application/models/Model_playlist.php @@ -0,0 +1,98 @@ +<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); + +class Model_playlist extends CI_Model { + public function __construct() { + $this->load->database(); + } + + public function getPlaylistsByUser($userEmail) { + $this->db->select('*'); + $this->db->from('playlists'); + $this->db->where('user_email', $userEmail); + $query = $this->db->get(); + return $query->result(); + } + + public function addPlaylist($userEmail, $name) { + $data = array( + 'user_email' => $userEmail, + 'name' => $name + ); + $this->db->insert('playlists', $data); + return $this->db->insert_id(); + } + + public function addItem($playlistId, $itemId, $itemType) { + $data = array( + 'playlist_id' => $playlistId, + 'item_id' => $itemId, + 'item_type' => $itemType + ); + return $this->db->insert('playlist_items', $data); + } + + public function getPlaylistItems($playlistId) { + $this->db->select('playlist_items.item_id, song.name as songName, artist.name as artistName, album.name as albumName, playlist_items.playlist_id'); + $this->db->from('playlist_items'); + $this->db->join('track', 'track.id = playlist_items.item_id'); + $this->db->join('song', 'song.id = track.songid'); + $this->db->join('album', 'album.id = track.albumid'); + $this->db->join('artist', 'artist.id = album.artistid'); + $this->db->where('playlist_items.playlist_id', $playlistId); + + $result = $this->db->get(); + return $result->result(); + } + + public function deleteItem($playlistId, $itemId) { + $this->db->where('playlist_id', $playlistId); + $this->db->where('item_id', $itemId); + return $this->db->delete('playlist_items'); + } + + public function deletePlaylist($playlistId) { + $this->db->where('playlist_id', $playlistId); + $this->db->delete('playlist_items'); + + $this->db->where('id', $playlistId); + return $this->db->delete('playlists'); + } + + public function duplicatePlaylist($playlistId) { + $this->db->select('*'); + $this->db->from('playlists'); + $this->db->where('id', $playlistId); + $query = $this->db->get(); + $playlist = $query->row(); + + if ($playlist) { + $newPlaylistData = array( + 'user_email' => $playlist->user_email, + 'name' => $playlist->name . ' (Copie)' + ); + $this->db->insert('playlists', $newPlaylistData); + $newPlaylistId = $this->db->insert_id(); + + $this->db->select('*'); + $this->db->from('playlist_items'); + $this->db->where('playlist_id', $playlistId); + $query = $this->db->get(); + $items = $query->result(); + + foreach ($items as $item) { + $newItemData = array( + 'playlist_id' => $newPlaylistId, + 'item_id' => $item->item_id, + 'item_type' => $item->item_type + ); + $this->db->insert('playlist_items', $newItemData); + } + } + } + + public function renamePlaylist($playlistId, $newName) { + $data = array('name' => $newName); + $this->db->where('id', $playlistId); + return $this->db->update('playlists', $data); + } +} diff --git a/application/views/album_details.php b/application/views/album_details.php index 7f2fb1c..635cbf9 100644 --- a/application/views/album_details.php +++ b/application/views/album_details.php @@ -1,31 +1,38 @@ <!DOCTYPE html> <html> -<head> - <title><?= $album->albumName ?> - Details</title> - <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@1.0.0/css/bulma.min.css"> -</head> <body> <section class="section"> <div class="container"> - <h1 class="title"><?= $album->albumName ?></h1> - <div class="columns"> + <div class="columns is-vcentered"> <div class="column is-one-third"> - <figure class="image"> + <figure class="image is-square"> <img src="data:image/jpeg;base64,<?= base64_encode($album->jpeg) ?>" alt="<?= $album->albumName ?> Cover"> </figure> </div> <div class="column"> - <p><strong>Artist:</strong> <?= $album->artistName ?></p> + <h1 class="title"><?= $album->albumName ?></h1> + <p><strong>Artiste:</strong> <?= $album->artistName ?></p> <p><strong>Genre:</strong> <?= $album->genreName ?></p> - <p><strong>Year:</strong> <?= $album->year ?></p> + <p><strong>Année:</strong> <?= $album->year ?></p> </div> </div> - <h2 class="title is-4">Songs</h2> - <ul> - <?php foreach ($songs as $song): ?> - <li><?= anchor("music/view/{$song->trackId}", $song->trackName) ?></li> - <?php endforeach; ?> - </ul> + <h2 class="title is-4">Chansons</h2> + <div class="table-container"> + <table class="table is-striped is-fullwidth"> + <thead> + <tr> + <th>Titre</th> + </tr> + </thead> + <tbody> + <?php foreach ($songs as $song): ?> + <tr> + <td><?= anchor("music/view/{$song->trackId}", $song->trackName) ?></td> + </tr> + <?php endforeach; ?> + </tbody> + </table> + </div> </div> </section> </body> diff --git a/application/views/albums_list.php b/application/views/albums_list.php index 5a24b78..6b7cd2a 100644 --- a/application/views/albums_list.php +++ b/application/views/albums_list.php @@ -1,24 +1,44 @@ -<h5 class="title is-5 has-text-white">Liste des Albums</h5> -<section class="columns is-multiline"> - <?php foreach($albums as $album): ?> - <div class="column is-one-quarter"> - <div class="card"> - <div class="card-image"> - <figure class="image is-4by3"> - <img src="data:image/jpeg;base64,<?= base64_encode($album->jpeg) ?>" alt="<?= $album->name ?>"> - </figure> - </div> - <div class="card-content"> - <div class="media"> - <div class="media-content"> - <p class="title is-4"> - <?= anchor("albums/view/{$album->id}", $album->name) ?> - </p> - <p class="subtitle is-6"><?= "{$album->year} - {$album->artistName}" ?></p> +<!doctype html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>Liste des Albums - Dix heures</title> + <link rel="stylesheet" href="<?= base_url('assets/style.css') ?>"> +</head> +<body> + <section class="section"> + <div class="container"> + <h1 class="title is-4 has-text-dark">Liste des Albums</h1> + <div class="columns is-multiline is-centered"> + <?php foreach ($albums as $album): ?> + <div class="column is-one-quarter-desktop is-half-tablet is-full-mobile"> + <div class="card"> + <div class="card-image"> + <figure class="image is-4by3"> + <img src="data:image/jpeg;base64,<?= base64_encode($album->jpeg) ?>" alt="<?= $album->name ?>"> + </figure> + </div> + <div class="card-content"> + <div class="media"> + <div class="media-content"> + <p class="title is-4 album-title"><?= anchor("albums/view/{$album->id}", $album->name) ?></p> + <p class="subtitle is-6"><?= "{$album->year} - {$album->artistName}" ?></p> + <?php if (isset($is_logged_in) && $is_logged_in): ?> + <form method="post" action="<?= site_url('playlist/selectPlaylist') ?>"> + <input type="hidden" name="itemId" value="<?= $album->id ?>"> + <input type="hidden" name="itemType" value="album"> + <button type="submit" class="button is-link is-fullwidth">Ajouter à la playlist</button> + </form> + <?php endif; ?> + </div> + </div> + </div> </div> </div> - </div> + <?php endforeach; ?> </div> </div> - <?php endforeach; ?> -</section> + </section> +</body> +</html> diff --git a/application/views/artist_details.php b/application/views/artist_details.php index eb327ae..798c725 100644 --- a/application/views/artist_details.php +++ b/application/views/artist_details.php @@ -1,31 +1,36 @@ <!DOCTYPE html> <html> -<head> - <title><?= $album->albumName ?> - Details</title> - <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@1.0.0/css/bulma.min.css"> -</head> <body> <section class="section"> <div class="container"> - <h1 class="title has-text-white"><?= $album->albumName ?></h1> - <div class="columns"> - <div class="column is-one-third"> - <figure class="image is-square"> - <img src="data:image/jpeg;base64,<?= base64_encode($album->jpeg) ?>" alt="<?= $album->albumName ?> Cover"> - </figure> - </div> - <div class="column"> - <p><strong>Artist:</strong> <?= $album->artistName ?></p> - <p><strong>Genre:</strong> <?= $album->genreName ?></p> - <p><strong>Year:</strong> <?= $album->year ?></p> - </div> - </div> - <h2 class="title is-4 has-text-white">Songs</h2> - <ul> - <?php foreach ($songs as $song): ?> - <li><?= anchor("music/view/{$song->trackId}", $song->trackName) ?></li> + <h1 class="title"><?= $artist->artistName ?></h1> + <h2 class="title is-4">Albums</h2> + <?php if ($albums): ?> + <?php foreach ($albums as $album): ?> + <div class="box"> + <div class="columns"> + <div class="column is-one-third"> + <figure class="image"> + <img src="data:image/jpeg;base64,<?= base64_encode($album->jpeg) ?>" alt="<?= $album->albumName ?> Cover"> + </figure> + </div> + <div class="column"> + <h3 class="title is-5"><?= $album->albumName ?></h3> + <p><strong>Genre:</strong> <?= $album->genreName ?></p> + <p><strong>Year:</strong> <?= $album->year ?></p> + <h4 class="title is-6">Songs</h4> + <ul> + <?php foreach ($album->songs as $song): ?> + <li><?= anchor("music/view/{$song->trackId}", $song->songName) ?></li> + <?php endforeach; ?> + </ul> + </div> + </div> + </div> <?php endforeach; ?> - </ul> + <?php else: ?> + <p>No albums found for this artist.</p> + <?php endif; ?> </div> </section> </body> diff --git a/application/views/artists_list.php b/application/views/artists_list.php index 3992919..85d8a33 100644 --- a/application/views/artists_list.php +++ b/application/views/artists_list.php @@ -1,11 +1,27 @@ -<h5>Liste des Artistes</h5> -<section class="list"> -<?php -foreach($artists as $artist){ - echo "<div><article>"; - echo "<header class='short-text'>"; - echo anchor("artistes/view/{$artist->artistId}","{$artist->artistName}"); - echo "</header></article></div>"; -} -?> -</section> \ No newline at end of file +<section class="section"> + <div class="container"> + <h1 class="title is-4">Liste des Artistes</h1> + <div class="columns is-multiline"> + <?php foreach ($artists as $artist): ?> + <div class="column is-one-quarter-desktop is-half-tablet is-full-mobile"> + <div class="card artist-card"> + <div class="card-content"> + <div class="media"> + <div class="media-content"> + <p class="title is-4 artist-title"><?= anchor("artistes/view/{$artist->artistId}", $artist->artistName) ?></p> + <?php if (isset($is_logged_in) && $is_logged_in): ?> + <form method="post" action="<?= site_url('playlist/selectPlaylist') ?>"> + <input type="hidden" name="itemId" value="<?= $artist->artistId ?>"> + <input type="hidden" name="itemType" value="artist"> + <button type="submit" class="button is-link">Ajouter à la playlist</button> + </form> + <?php endif; ?> + </div> + </div> + </div> + </div> + </div> + <?php endforeach; ?> + </div> + </div> +</section> diff --git a/application/views/create.php b/application/views/create.php index 53d875f..c729345 100644 --- a/application/views/create.php +++ b/application/views/create.php @@ -1,32 +1,59 @@ -<?=validation_errors(); ?> -<?=form_open('connect/create')?> - <!-- Grid --> - <div class="grid"> - - <label for="prenom"> - Prénom - <input type="text" id="prenom" name="prenom" placeholder="Prénom" value="<?=set_value('prenom')?>" required> - </label> - - <label for="nom"> - Nom - <input type="text" id="nom" name="nom" placeholder="Nom" value="<?=set_value('nom')?>" required> - </label> - </div> - - <label for="email">Adresse mail</label> - <input type="email" id="email" name="email" placeholder="Email" value="<?=set_value('email')?>" required> - - <div class="grid"> - <label for="password">Password - <input type="password" id="password" name="password" placeholder="Password" value="<?=set_value('password')?>" required> - </label> - - <label for="cpassword">Confirmation password - <input type="password" id="cpassword" name="cpassword" placeholder="Confirmation Password" value="<?=set_value('cpassword')?>" required> - </label> - </div> - - <!-- Button --> - <button type="submit">Submit</button> -</form> +<!doctype html> +<html lang="en"> +<body> + <section class="hero is-fullheight"> + <div class="hero-body"> + <div class="container"> + <div class="columns is-centered"> + <div class="column is-5"> + <div class="box"> + <h1 class="title is-1 has-text-centered">Inscription</h1> + <?=validation_errors(); ?> + <?=form_open('connect/create')?> + <div class="field"> + <label class="label" for="prenom">Prénom</label> + <div class="control"> + <input class="input is-dark" type="text" id="prenom" name="prenom" placeholder="Prénom" value="<?=set_value('prenom')?>" required> + </div> + </div> + <div class="field"> + <label class="label" for="nom">Nom</label> + <div class="control"> + <input class="input is-dark" type="text" id="nom" name="nom" placeholder="Nom" value="<?=set_value('nom')?>" required> + </div> + </div> + <div class="field"> + <label class="label" for="email">Adresse mail</label> + <div class="control"> + <input class="input is-dark" type="email" id="email" name="email" placeholder="Email" value="<?=set_value('email')?>" required> + </div> + </div> + <div class="field"> + <label class="label" for="password">Mot de passe</label> + <div class="control"> + <input class="input is-dark" type="password" id="password" name="password" placeholder="Mot de passe" value="<?=set_value('password')?>" required> + </div> + </div> + <div class="field"> + <label class="label" for="cpassword">Confirmation mot de passe</label> + <div class="control"> + <input class="input is-dark" type="password" id="cpassword" name="cpassword" placeholder="Confirmation mot de passe" value="<?=set_value('cpassword')?>" required> + </div> + </div> + <div class="field"> + <div class="control"> + <button class="button is-primary is-fullwidth is-large" type="submit">S'inscrire</button> + </div> + </div> + <div class="has-text-centered"> + <p>Vous avez déjà un compte ? <a href="<?= site_url('connect/login') ?>" class="has-text-primary">Connexion</a></p> + </div> + </form> + </div> + </div> + </div> + </div> + </div> + </section> +</body> +</html> diff --git a/application/views/layout/getter.php b/application/views/layout/getter.php index 7342623..d1a5cfe 100644 --- a/application/views/layout/getter.php +++ b/application/views/layout/getter.php @@ -17,6 +17,7 @@ <!-- Div contenant les filtres, cachée par défaut --> <div id="filters" style="display: none;"> <form method="GET" action=""> + <?php if ($this->uri->segment(1) != 'artistes'): ?> <!-- Filtre par artiste --> <div class="field"> <label class="label" for="artist">Artiste</label> @@ -31,6 +32,7 @@ </div> </div> </div> + <?php endif; ?> <!-- Filtre par genre --> <div class="field"> diff --git a/application/views/layout/header.php b/application/views/layout/header.php index e6b1002..bec453e 100644 --- a/application/views/layout/header.php +++ b/application/views/layout/header.php @@ -1,58 +1,48 @@ <!doctype html> -<html lang="en" class="has-navbar-fixed-top"> +<html lang="en"> <head> - <meta charset="UTF-8" /> - <title>Dix heures</title> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title><?= $title ?? 'Dix heures' ?></title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@1.0.0/css/bulma.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> - <?= link_tag('assets/style.css') ?> - <style> - body { - background-color: #121212; - color: #FFFFFF; - } - .navbar { - background-color: #000000; - } - .navbar-item { - color: white; - } - .hero { - background-color: #282828; - color: white; - } - .card { - background-color: #1e1e1e; - color: white; - } - .button, .input, .select { - background-color: #282828; - color: white; - border-color: #282828; - } - .button:hover, .input:hover, .select:hover { - background-color: #3b3b3b; - border-color: #3b3b3b; - } - </style> + <link rel="stylesheet" href="<?= base_url('assets/style.css') ?>"> </head> <body> <nav class="navbar"> - <div class="navbar-brand"> - <a class="navbar-item" href="#">Dix heures</a> - </div> - <div class="navbar-menu"> - <div class="navbar-end"> - <a class="navbar-item" href="<?= site_url('albums') ?>">Albums</a> - <a class="navbar-item" href="<?= site_url('artistes') ?>">Artistes</a> - <a class="navbar-item" href="<?= site_url('music') ?>">Music</a> - <?php if (isset($is_logged_in) && $is_logged_in): ?> - <a class="navbar-item" href="<?= site_url('playlist') ?>">Playlist</a> - <a class="navbar-item" href="<?= site_url('connect/logout') ?>">Déconnexion</a> - <?php else: ?> - <a class="navbar-item" href="<?= site_url('connect/login') ?>">Connexion</a> - <?php endif; ?> + <div class="container"> + <div class="navbar-brand"> + <a class="navbar-item" href="#"> + <img src="<?= base_url('assets/logo.png') ?>" alt="Logo"> + </a> + <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" data-target="navbarBasicExample"> + <span aria-hidden="true"></span> + <span aria-hidden="true"></span> + <span aria-hidden="true"></span> + </a> + </div> + + <div id="navbarBasicExample" class="navbar-menu"> + <div class="navbar-start"> + <a class="navbar-item" href="<?= site_url('albums') ?>">Albums</a> + <a class="navbar-item" href="<?= site_url('artistes') ?>">Artistes</a> + <a class="navbar-item" href="<?= site_url('music') ?>">Musiques</a> + <?php if (isset($is_logged_in) && $is_logged_in): ?> + <a class="navbar-item" href="<?= site_url('playlist') ?>">Playlists</a> + <?php endif; ?> + </div> + + <div class="navbar-end"> + <div class="navbar-item"> + <?php if (isset($is_logged_in) && $is_logged_in): ?> + <a class="button is-light" href="<?= site_url('connect/logout') ?>">Déconnexion</a> + <?php else: ?> + <a class="button is-light" href="<?= site_url('connect/login') ?>">Connexion</a> + <a class="button is-primary" href="<?= site_url('connect/create') ?>">Inscription</a> + <?php endif; ?> + </div> + </div> </div> </div> </nav> - <main class="container"> + <main class="container" style="padding-top: 90px;"> <!-- Ajout de padding-top pour éviter que la navbar ne masque le contenu --> diff --git a/application/views/login.php b/application/views/login.php index ed4598c..6ac55b7 100644 --- a/application/views/login.php +++ b/application/views/login.php @@ -1,29 +1,44 @@ -<!DOCTYPE html> -<html> -<head> - <title>Login</title> -</head> +<!doctype html> +<html lang="fr"> <body> - <?= validation_errors(); ?> - - <?php if (isset($error)): ?> - <p style="color: red;"><?= $error ?></p> - <?php endif; ?> - - <?= form_open('connect/login') ?> - <!-- Grid --> - <div class="grid"> - <label for="email">Adresse mail</label> - <input type="email" id="email" name="email" placeholder="Email" value="<?= set_value('email') ?>" required> - - <label for="password">Password</label> - <input type="password" id="password" name="password" placeholder="Password" value="<?= set_value('password') ?>" required> - </div> - <!-- Button --> - <button type="submit">Submit</button> - - <?= anchor('connect/create', "Pas de compte ? Créez-en un !"); ?> - </form> + <section class="hero is-fullheight"> + <div class="hero-body"> + <div class="container"> + <div class="columns is-centered"> + <div class="column is-5"> + <div class="box"> + <h1 class="title is-1 has-text-centered">Connexion</h1> + <?= validation_errors(); ?> + <?php if (isset($error)): ?> + <p class="has-text-danger"><?= $error ?></p> + <?php endif; ?> + <?= form_open('connect/login') ?> + <div class="field"> + <label class="label" for="email">Adresse mail</label> + <div class="control"> + <input class="input is-dark" type="email" id="email" name="email" placeholder="Email" value="<?= set_value('email') ?>" required> + </div> + </div> + <div class="field"> + <label class="label" for="password">Mot de passe</label> + <div class="control"> + <input class="input is-dark" type="password" id="password" name="password" placeholder="Mot de passe" value="<?= set_value('password') ?>" required> + </div> + </div> + <div class="field"> + <div class="control"> + <button class="button is-primary is-fullwidth is-large" type="submit">Se connecter</button> + </div> + </div> + <div class="has-text-centered"> + <p>Vous n'avez pas de compte ? <a href="<?= site_url('connect/create') ?>" class="has-text-primary">Inscription</a></p> + </div> + </form> + </div> + </div> + </div> + </div> + </div> + </section> </body> </html> - diff --git a/application/views/logout.php b/application/views/logout.php index 7ac14d6..9c36dbc 100644 --- a/application/views/logout.php +++ b/application/views/logout.php @@ -2,14 +2,6 @@ defined('BASEPATH') OR exit('No direct script access allowed'); ?> <!doctype html> -<html lang="en" class="has-navbar-fixed-top"> -<head> - <meta charset="UTF-8" /> - <title>Dix heures</title> - <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css"/> - <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> - <?=link_tag('assets/style.css')?> -</head> <body> <main class='container'> <nav> diff --git a/application/views/musiques_list.php b/application/views/musiques_list.php index 8b35a8e..0e0440e 100644 --- a/application/views/musiques_list.php +++ b/application/views/musiques_list.php @@ -1,16 +1,33 @@ -<h5>Liste des musiques</h5> -<section class="list"> -<?php -foreach($musics as $music){ - echo "<div><article>"; - echo "<header class='short-text'>"; - if(isset($music->trackName)) { - echo anchor("music/view/{$music->trackId}", $music->trackName); - } - echo "</header>"; - echo '<img src="data:image/jpeg;base64,'.base64_encode($music->jpeg).'" />'; - echo "<footer class='short-text'>{$music->year} - {$music->artistName} - {$music->albumName}</footer> - </article></div>"; -} -?> +<section class="section"> + <div class="container"> + <h1 class="title is-4 has-text-dark">Liste des musiques</h1> + <div class="columns is-multiline"> + <?php foreach ($musics as $music): ?> + <div class="column is-one-quarter-desktop is-half-tablet is-full-mobile"> + <div class="card"> + <div class="card-image"> + <figure class="image is-4by3"> + <img src="data:image/jpeg;base64,<?= base64_encode($music->jpeg) ?>" alt="<?= $music->trackName ?>"> + </figure> + </div> + <div class="card-content"> + <div class="media"> + <div class="media-content"> + <p class="title is-4 music-title"><?= anchor("music/view/{$music->trackId}", $music->trackName) ?></p> + <p class="subtitle is-6"><?= "{$music->year} - {$music->artistName} - {$music->albumName}" ?></p> + <?php if (isset($is_logged_in) && $is_logged_in): ?> + <form method="post" action="<?= site_url('playlist/selectPlaylist') ?>"> + <input type="hidden" name="itemId" value="<?= $music->trackId ?>"> + <input type="hidden" name="itemType" value="song"> + <button type="submit" class="button is-link">Ajouter à la playlist</button> + </form> + <?php endif; ?> + </div> + </div> + </div> + </div> + </div> + <?php endforeach; ?> + </div> + </div> </section> diff --git a/application/views/playlist_details.php b/application/views/playlist_details.php new file mode 100644 index 0000000..87760cd --- /dev/null +++ b/application/views/playlist_details.php @@ -0,0 +1,38 @@ +<section class="section"> + <div class="container"> + <h1 class="title">Détails de la Playlist</h1> + + <?php if ($items): ?> + <div class="table-container" style="max-height: 400px; overflow-y: auto;"> + <table class="table is-fullwidth is-striped"> + <thead> + <tr> + <th>Titre</th> + <th>Artiste</th> + <th>Album</th> + <th>Actions</th> + </tr> + </thead> + <tbody> + <?php foreach ($items as $item): ?> + <tr> + <td><?= anchor("music/view/{$item->item_id}", $item->songName) ?></td> + <td><?= $item->artistName ?></td> + <td><?= $item->albumName ?></td> + <td> + <form method="post" action="<?= site_url('playlist/deleteItem/'.$item->playlist_id.'/'.$item->item_id) ?>" style="display:inline;"> + <button type="submit" class="button is-danger is-small">Supprimer</button> + </form> + </td> + </tr> + <?php endforeach; ?> + </tbody> + </table> + </div> + <?php else: ?> + <p>La playlist est vide.</p> + <?php endif; ?> + + <a href="<?= site_url('playlist') ?>" class="button is-link">Retour aux playlists</a> + </div> +</section> \ No newline at end of file diff --git a/application/views/playlists_list.php b/application/views/playlists_list.php new file mode 100644 index 0000000..2c49e07 --- /dev/null +++ b/application/views/playlists_list.php @@ -0,0 +1,154 @@ +<section class="section"> + <div class="container"> + <h1 class="title">Mes Playlists</h1> + + <?php if (isset($error)): ?> + <div class="notification is-danger"> + <?= $error ?> + </div> + <?php endif; ?> + + <?php if ($playlists): ?> + <div class="columns is-multiline"> + <?php foreach ($playlists as $playlist): ?> + <div class="column is-one-third"> + <div class="card"> + <div class="card-content"> + <div class="media"> + <div class="media-content"> + <p class="title is-4"><?= anchor("playlist/view/{$playlist->id}", $playlist->name) ?></p> + </div> + <div class="media-right buttons-right"> + <?= form_open('playlist/duplicate/'.$playlist->id, ['style' => 'display:inline;']) ?> + <button type="submit" class="button is-info is-small">Dupliquer</button> + <?= form_close() ?> + <button class="button is-warning is-small" onclick="showRenameModal('<?= $playlist->id ?>', '<?= $playlist->name ?>')">Renommer</button> + </div> + </div> + </div> + <footer class="card-footer"> + <?= form_open('playlist/delete/'.$playlist->id, ['class' => 'card-footer-item']) ?> + <button type="submit" class="button is-danger is-small">Supprimer</button> + <?= form_close() ?> + </footer> + </div> + </div> + <?php endforeach; ?> + </div> + <?php else: ?> + <p>Vous n'avez pas encore de playlists.</p> + <?php endif; ?> + + <div class="box"> + <form method="post" action="<?= site_url('playlist/add') ?>"> + <div class="field"> + <label class="label">Nom de la playlist</label> + <div class="control"> + <input type="text" name="name" class="input" placeholder="Nom de la playlist" required> + </div> + </div> + <div class="field"> + <label class="label">Type de Playlist</label> + <div class="control"> + <div class="select"> + <select name="type" id="playlistType" onchange="toggleRandomOptions()"> + <option value="empty">Vide</option> + <option value="random">Aléatoire</option> + </select> + </div> + </div> + </div> + + <div id="randomOptions" style="display: none;"> + <div class="field"> + <label class="label">Nombre de chansons</label> + <div class="control"> + <input type="number" name="numSongs" class="input" placeholder="Nombre de chansons"> + </div> + </div> + <div class="field"> + <label class="label">Artiste</label> + <div class="control"> + <div class="select"> + <select name="artist"> + <option value="">Tous</option> + <?php foreach($artists as $artist): ?> + <option value="<?= $artist->name ?>"><?= $artist->name ?></option> + <?php endforeach; ?> + </select> + </div> + </div> + </div> + <div class="field"> + <label class="label">Genre</label> + <div class="control"> + <div class="select"> + <select name="genre"> + <option value="">Tous</option> + <?php foreach($genres as $genre): ?> + <option value="<?= $genre->name ?>"><?= $genre->name ?></option> + <?php endforeach; ?> + </select> + </div> + </div> + </div> + </div> + + <div class="field"> + <div class="control"> + <button type="submit" class="button is-link">Créer une playlist</button> + </div> + </div> + </form> + </div> + </div> +</section> + +<!-- Rename Modal --> +<div id="renameModal" class="modal"> + <div class="modal-background"></div> + <div class="modal-card"> + <header class="modal-card-head"> + <p class="modal-card-title">Renommer la Playlist</p> + <button class="delete" aria-label="close" onclick="closeRenameModal()"></button> + </header> + <section class="modal-card-body"> + <form id="renameForm" method="post" action="<?= site_url('playlist/rename') ?>"> + <div class="field"> + <label class="label">Nouveau Nom</label> + <div class="control"> + <input type="hidden" name="playlistId" id="renamePlaylistId"> + <input type="text" name="newName" class="input" id="renameNewName" required> + </div> + </div> + <div class="field"> + <div class="control"> + <button type="submit" class="button is-link">Renommer</button> + </div> + </div> + </form> + </section> + </div> +</div> + +<script> + function toggleRandomOptions() { + var playlistType = document.getElementById('playlistType').value; + var randomOptions = document.getElementById('randomOptions'); + if (playlistType === 'random') { + randomOptions.style.display = 'block'; + } else { + randomOptions.style.display = 'none'; + } + } + + function showRenameModal(playlistId, playlistName) { + document.getElementById('renamePlaylistId').value = playlistId; + document.getElementById('renameNewName').value = playlistName; + document.getElementById('renameModal').classList.add('is-active'); + } + + function closeRenameModal() { + document.getElementById('renameModal').classList.remove('is-active'); + } +</script> diff --git a/application/views/select_playlist.php b/application/views/select_playlist.php new file mode 100644 index 0000000..bb6b5f3 --- /dev/null +++ b/application/views/select_playlist.php @@ -0,0 +1,31 @@ +<section class="section"> + <div class="container"> + <h1 class="title is-4">Sélectionner une playlist</h1> + + <?php if ($playlists): ?> + <form method="post" action="<?= site_url('playlist/addItems') ?>"> + <input type="hidden" name="itemId" value="<?= $itemId ?>"> + <input type="hidden" name="itemType" value="<?= $itemType ?>"> + <div class="field"> + <label class="label">Choisir une playlist</label> + <div class="control"> + <div class="select is-dark"> + <select name="playlistId"> + <?php foreach ($playlists as $playlist): ?> + <option value="<?= $playlist->id ?>"><?= $playlist->name ?></option> + <?php endforeach; ?> + </select> + </div> + </div> + </div> + <div class="field"> + <div class="control"> + <button type="submit" class="button is-link">Ajouter</button> + </div> + </div> + </form> + <?php else: ?> + <p>Vous n'avez pas encore de playlists. Veuillez en créer une.</p> + <?php endif; ?> + </div> +</section> diff --git a/application/views/song_details.php b/application/views/song_details.php index d72203e..56c653d 100644 --- a/application/views/song_details.php +++ b/application/views/song_details.php @@ -1,14 +1,28 @@ <!DOCTYPE html> <html> -<head> - <title><?= $song['songName'] ?> - Details</title> -</head> <body> - <h1><?= $song['songName'] ?></h1> - <p><strong>Album:</strong> <?= anchor("music/view/{$song['albumId']}", $song['albumName']) ?> (<?= $song['year'] ?>)</p> - <p><strong>Artist:</strong> <?= $song['artistName'] ?></p> - <?php if(isset($song['jpeg']) && $song['jpeg'] != ''): ?> - <img src="data:image/jpeg;base64,<?= base64_encode($song['jpeg']) ?>" alt="<?= $song['albumName'] ?> Cover"> - <?php endif; ?> + <section class="section"> + <div class="container"> + <h1 class="title"><?= $song['songName'] ?></h1> + <div class="columns"> + <div class="column is-one-third"> + <figure class="image"> + <?php if(isset($song['jpeg']) && $song['jpeg'] != ''): ?> + <img src="data:image/jpeg;base64,<?= base64_encode($song['jpeg']) ?>" alt="<?= $song['albumName'] ?> Cover"> + <?php else: ?> + <img src="path_to_default_image" alt="Default Cover"> + <?php endif; ?> + </figure> + </div> + <div class="column"> + <p><strong>Album:</strong> <?= anchor("albums/view/{$song['albumId']}", $song['albumName']) ?> (<?= $song['year'] ?>)</p> + <p><strong>Artist:</strong> <?= $song['artistName'] ?></p> + <p><strong>Disk Number:</strong> <?= $song['diskNumber'] ?></p> + <p><strong>Track Number:</strong> <?= $song['number'] ?></p> + <p><strong>Duration:</strong> <?= $song['duration'] ?> seconds</p> + </div> + </div> + </div> + </section> </body> </html> diff --git a/assets/common.css b/assets/common.css new file mode 100644 index 0000000..e69de29 diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..866281803ea6a62a06b6992d340a504920e9b7db GIT binary patch literal 62470 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�B(Elz1GoNSe#PR-#<TpS$V16DrW( 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	y9`@L%Fe6)mWuzTRm}DV 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 literal 0 HcmV?d00001 diff --git a/assets/style.css b/assets/style.css index df6266e..6dce49b 100644 --- a/assets/style.css +++ b/assets/style.css @@ -1,20 +1,38 @@ -section.list -{ - display : flex; - justify-content : space-between; - flex-wrap:wrap; -} -section.list > div -{ -width : 30%; -} -section.list img { - display:inline-block; +/* style.css */ -} -.short-text { - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; +.card { + display: flex; + flex-direction: column; + height: 100%; } +.card-image { + flex-shrink: 0; +} + +.card-content { + flex-grow: 1; +} + +.card-footer { + flex-shrink: 0; +} + +.album-title, .artist-title, .music-title { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; /* Limite à 2 lignes */ + overflow: hidden; + text-overflow: ellipsis; + height: 3em; /* Ajuste en fonction de la taille de la police */ +} + +.columns { + justify-content: center; /* Centre les colonnes */ +} + +.card img { + object-fit: cover; /* Assure que les images couvrent bien les figures */ + width: 100%; + height: auto; +}