From 3ecd5c63e57b7b0e320d2efd84a7a5d6dcda0b75 Mon Sep 17 00:00:00 2001 From: Vincent <xefal77@gmail.com> Date: Wed, 5 Jun 2024 00:59:23 +0200 Subject: [PATCH] views artistes --- application/controllers/Artistes.php | 27 ++++++++++++++------------- application/models/Model_music.php | 16 +++++++++++++--- application/views/artists_list.php | 2 +- 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/application/controllers/Artistes.php b/application/controllers/Artistes.php index a7790ec..524557a 100644 --- a/application/controllers/Artistes.php +++ b/application/controllers/Artistes.php @@ -31,19 +31,20 @@ 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'); - } + $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'); + } + } diff --git a/application/models/Model_music.php b/application/models/Model_music.php index b7fc131..b79b646 100644 --- a/application/models/Model_music.php +++ b/application/models/Model_music.php @@ -123,27 +123,37 @@ 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, genre.name as genreName, artist.jpeg'); $this->db->from('artist'); - $this->db->join('album', 'album.artistid = artist.id', 'left'); - $this->db->join('genre', 'album.genreid = genre.id', 'left'); $this->db->where('artist.id', $artistId); $artistQuery = $this->db->get(); $artistDetails = $artistQuery->row(); - // Get artist's albums + // Get artist's albums with their songs $this->db->select('album.id as albumId, album.name as albumName, album.year'); $this->db->from('album'); $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'); + $this->db->join('song', 'track.songid = song.id'); + $this->db->where('track.albumid', $album->albumId); + $album->songs = $this->db->get()->result(); + } + return array('artist' => $artistDetails, 'albums' => $albums); } + + public function getSongDetails($songId) { // Get song details $this->db->select('song.name as songName, track.id as trackId, album.name as albumName, album.year, artist.name as artistName, genre.name as genreName, cover.jpeg'); diff --git a/application/views/artists_list.php b/application/views/artists_list.php index d4c3080..3992919 100644 --- a/application/views/artists_list.php +++ b/application/views/artists_list.php @@ -4,7 +4,7 @@ foreach($artists as $artist){ echo "<div><article>"; echo "<header class='short-text'>"; - echo anchor("artist/view/{$artist->artistId}","{$artist->artistName}"); + echo anchor("artistes/view/{$artist->artistId}","{$artist->artistName}"); echo "</header></article></div>"; } ?>