views artistes

This commit is contained in:
Vincent 2024-06-05 00:59:23 +02:00
parent a302916138
commit 3ecd5c63e5
3 changed files with 28 additions and 17 deletions
application

@ -31,19 +31,20 @@ class Artistes extends CI_Controller {
} }
public function view($artistId) { public function view($artistId) {
$artistData = $this->model_music->getArtistDetails($artistId); $artistData = $this->model_music->getArtistDetails($artistId);
$is_logged_in = $this->session->userdata('logged_in'); $is_logged_in = $this->session->userdata('logged_in');
$data = array( $data = array(
'artist' => $artistData['artist'], 'artist' => $artistData['artist'],
'albums' => $artistData['albums'], 'albums' => $artistData['albums'],
'is_logged_in' => $is_logged_in 'is_logged_in' => $is_logged_in
); );
$this->load->view('layout/header', $data); $this->load->view('layout/header', $data);
$this->load->view('artist_details', $data); $this->load->view('artist_details', $data);
$this->load->view('layout/footer'); $this->load->view('layout/footer');
} }
} }

@ -123,27 +123,37 @@ class Model_music extends CI_Model {
return array('album' => $albumDetails, 'songs' => $songs); return array('album' => $albumDetails, 'songs' => $songs);
} }
public function getArtistDetails($artistId) { public function getArtistDetails($artistId) {
// Get artist info // Get artist info
$this->db->select('artist.name as artistName, artist.id, genre.name as genreName, artist.jpeg'); $this->db->select('artist.name as artistName, artist.id, genre.name as genreName, artist.jpeg');
$this->db->from('artist'); $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); $this->db->where('artist.id', $artistId);
$artistQuery = $this->db->get(); $artistQuery = $this->db->get();
$artistDetails = $artistQuery->row(); $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->select('album.id as albumId, album.name as albumName, album.year');
$this->db->from('album'); $this->db->from('album');
$this->db->where('album.artistid', $artistId); $this->db->where('album.artistid', $artistId);
$albumsQuery = $this->db->get(); $albumsQuery = $this->db->get();
$albums = $albumsQuery->result(); $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); return array('artist' => $artistDetails, 'albums' => $albums);
} }
public function getSongDetails($songId) { public function getSongDetails($songId) {
// Get song details // 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'); $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');

@ -4,7 +4,7 @@
foreach($artists as $artist){ foreach($artists as $artist){
echo "<div><article>"; echo "<div><article>";
echo "<header class='short-text'>"; 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>"; echo "</header></article></div>";
} }
?> ?>