diff --git a/CodeIgniter-3.1.13/application/controllers/Albums.php b/CodeIgniter-3.1.13/application/controllers/Albums.php index be9879e..010d835 100644 --- a/CodeIgniter-3.1.13/application/controllers/Albums.php +++ b/CodeIgniter-3.1.13/application/controllers/Albums.php @@ -8,18 +8,29 @@ class Albums extends CI_Controller { $this->load->model('model_music'); $this->load->helper('url'); } + public function index($page = 1){ $limit = 21; $offset = ($page - 1) * $limit; $albums = $this->model_music->getAlbums($limit, $offset); - + $total_albums = $this->model_music->get_total_albums(); $data['total_pages'] = ceil($total_albums / $limit); $data['current_page'] = $page; $data['albums'] = $albums; - + $this->load->view('layout/header_not_logged_dark'); $this->load->view('albums_list', $data); $this->load->view('layout/footer_dark'); } + + public function view($id){ + $album = $this->model_music->get_album_by_id($id); + $data['album'] = $album; + + $this->load->view('layout/header_not_logged_dark'); + $this->load->view('album_view', $data); + $this->load->view('layout/footer_dark'); + } } +?> diff --git a/CodeIgniter-3.1.13/application/models/Model_music.php b/CodeIgniter-3.1.13/application/models/Model_music.php index 5ca512d..461b4b2 100644 --- a/CodeIgniter-3.1.13/application/models/Model_music.php +++ b/CodeIgniter-3.1.13/application/models/Model_music.php @@ -1,22 +1,22 @@ -load->database(); - } + public function __construct(){ + $this->load->database(); + } - public function getAlbums($limit, $offset){ - $query = $this->db->query( - "SELECT album.name, album.id, year, artist.name as artistName, genre.name as genreName, jpeg - FROM album - JOIN artist ON album.artistid = artist.id - JOIN genre ON genre.id = album.genreid - JOIN cover ON cover.id = album.coverid - ORDER BY year - LIMIT $limit OFFSET $offset" + public function getAlbums($limit, $offset){ + $query = $this->db->query( + "SELECT album.id, album.name, album.year, artist.name as artistName, genre.name as genreName, cover.jpeg + FROM album + JOIN artist ON album.artistid = artist.id + JOIN genre ON album.genreid = genre.id + JOIN cover ON album.coverid = cover.id + ORDER BY album.year + LIMIT $limit OFFSET $offset" ); - return $query->result(); - } + return $query->result(); + } public function get_total_albums(){ $query = $this->db->query("SELECT COUNT(*) as total_albums FROM album"); @@ -24,4 +24,31 @@ class Model_music extends CI_Model { return $result->total_albums; } + public function get_album_by_id($id){ + // Fetch album details + $query = $this->db->query( + "SELECT album.id, album.name, album.year, artist.name as artistName, genre.name as genreName, cover.jpeg + FROM album + JOIN artist ON album.artistid = artist.id + JOIN genre ON album.genreid = genre.id + JOIN cover ON album.coverid = cover.id + WHERE album.id = ?", array($id) + ); + $album = $query->row(); + + if ($album) { + // Fetch album tracks + $query = $this->db->query( + "SELECT track.id, track.diskNumber, track.number, track.duration, song.name as songName + FROM track + JOIN song ON track.songid = song.id + WHERE track.albumid = ? + ORDER BY track.diskNumber, track.number", array($id) + ); + $album->tracks = $query->result(); + } + + return $album; + } } +?> diff --git a/CodeIgniter-3.1.13/application/views/album_view.php b/CodeIgniter-3.1.13/application/views/album_view.php new file mode 100644 index 0000000..0de9660 --- /dev/null +++ b/CodeIgniter-3.1.13/application/views/album_view.php @@ -0,0 +1,32 @@ + + + +
+ + + +Artiste : artistName; ?>
+Année : year; ?>
+Genre : genreName; ?>
+ + + tracks)): ?> +Aucune musique n'est disponible dans cette album...
+ +