vraiment bon travail
This commit is contained in:
parent
17a95f32ce
commit
be76f14c4a
codeigniter/application
28
codeigniter/application/controllers/Music.php
Normal file
28
codeigniter/application/controllers/Music.php
Normal file
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
class Music extends CI_Controller {
|
||||
|
||||
public function __construct(){
|
||||
parent::__construct();
|
||||
$this->load->model('model_music');
|
||||
$this->load->helper('html');
|
||||
$this->load->helper('url');
|
||||
$this->load->helper('form');
|
||||
}
|
||||
|
||||
public function index(){
|
||||
$musics = $this->model_music->getMusics();
|
||||
$this->load->view('layout/header');
|
||||
$this->load->view('musics_list', ['musics' => $musics]);
|
||||
$this->load->view('layout/footer');
|
||||
}
|
||||
|
||||
public function view($albumId){
|
||||
// Récupérer les musiques pour un album spécifique
|
||||
$musics = $this->model_music->getMusicsByAlbum($albumId);
|
||||
$this->load->view('layout/header');
|
||||
$this->load->view('album_musics', ['musics' => $musics]);
|
||||
$this->load->view('layout/footer');
|
||||
}
|
||||
}
|
@ -1,33 +1,77 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class Model_music extends CI_Model {
|
||||
public function __construct(){
|
||||
$this->load->database();
|
||||
}
|
||||
public function __construct(){
|
||||
$this->load->database();
|
||||
}
|
||||
|
||||
public function getAlbums(){
|
||||
$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
|
||||
"
|
||||
);
|
||||
return $query->result();
|
||||
}
|
||||
public function getAlbums(){
|
||||
$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"
|
||||
);
|
||||
return $query->result();
|
||||
}
|
||||
|
||||
public function getArtistes(){
|
||||
$query = $this->db->query(
|
||||
"SELECT artist.id AS artistId, artist.name AS artistName, album.name AS albumName, album.year, cover.jpeg
|
||||
FROM album
|
||||
INNER JOIN artist ON album.artistId = artist.id
|
||||
JOIN cover ON cover.id = album.coverId
|
||||
GROUP BY artist.name, album.year
|
||||
"
|
||||
);
|
||||
|
||||
return $query->result();
|
||||
}
|
||||
public function getArtistes(){
|
||||
$query = $this->db->query(
|
||||
"SELECT artist.id AS artistId, artist.name AS artistName, album.name AS albumName, album.id AS albumId, album.year, cover.jpeg
|
||||
FROM album
|
||||
INNER JOIN artist ON album.artistId = artist.id
|
||||
JOIN cover ON cover.id = album.coverId
|
||||
GROUP BY artist.name, album.year"
|
||||
);
|
||||
return $query->result();
|
||||
}
|
||||
|
||||
public function getMusics(){
|
||||
$query = $this->db->query(
|
||||
"SELECT
|
||||
track.id AS trackId,
|
||||
track.number AS trackNumber,
|
||||
track.duration AS trackDuration,
|
||||
track.diskNumber AS diskNumber,
|
||||
album.id AS albumId,
|
||||
album.name AS albumName,
|
||||
album.year AS albumYear,
|
||||
artist.name AS artistName,
|
||||
song.id AS songId,
|
||||
song.name AS songName,
|
||||
cover.jpeg AS coverImage
|
||||
FROM track
|
||||
JOIN album ON track.albumId = album.id
|
||||
JOIN artist ON album.artistId = artist.id
|
||||
JOIN song ON track.songId = song.id
|
||||
JOIN cover ON album.coverId = cover.id
|
||||
ORDER BY album.id, track.diskNumber, track.number"
|
||||
);
|
||||
return $query->result();
|
||||
}
|
||||
|
||||
public function getMusicsByAlbum($albumId){
|
||||
$query = $this->db->query(
|
||||
"SELECT
|
||||
track.id AS trackId,
|
||||
track.number AS trackNumber,
|
||||
track.duration AS trackDuration,
|
||||
track.diskNumber AS diskNumber,
|
||||
album.id AS albumId,
|
||||
album.name AS albumName,
|
||||
artist.name AS artistName,
|
||||
song.id AS songId,
|
||||
song.name AS songName
|
||||
FROM track
|
||||
JOIN album ON track.albumId = album.id
|
||||
JOIN artist ON album.artistId = artist.id
|
||||
JOIN song ON track.songId = song.id
|
||||
WHERE album.id = ?
|
||||
ORDER BY track.diskNumber, track.number",
|
||||
array($albumId)
|
||||
);
|
||||
return $query->result();
|
||||
}
|
||||
}
|
||||
|
17
codeigniter/application/views/album_musics.php
Normal file
17
codeigniter/application/views/album_musics.php
Normal file
@ -0,0 +1,17 @@
|
||||
<h5>Liste des Musiques de l'Album</h5>
|
||||
<section class="list">
|
||||
<?php
|
||||
foreach ($musics as $music) {
|
||||
|
||||
echo "<div><article>";
|
||||
echo "<ul>";
|
||||
echo "<li>Durée: {$music->trackDuration} secondes</li>";
|
||||
echo "<li>$music->songName</li>";
|
||||
echo "</ul>";
|
||||
echo "</article></div>";
|
||||
}
|
||||
?>
|
||||
</section>
|
||||
|
||||
|
||||
// songs/view/{$music->songId},
|
@ -1,15 +1,14 @@
|
||||
<h5>Albums list</h5>
|
||||
<section class="list">
|
||||
<?php
|
||||
|
||||
foreach($albums as $album){
|
||||
echo "<div><article>";
|
||||
echo "<header class='short-text'>";
|
||||
echo anchor("albums/view/{$album->id}","{$album->name}");
|
||||
echo "</header>";
|
||||
echo '<img src="data:image/jpeg;base64,'.base64_encode($album->jpeg).'" />';
|
||||
echo "<footer class='short-text'>{$album->year} - {$album->artistName}</footer>
|
||||
</article></div>";
|
||||
echo "<div><article>";
|
||||
echo "<header class='short-text'>";
|
||||
echo anchor("music/view/{$album->id}", "{$album->name}");
|
||||
echo "</header>";
|
||||
echo '<img src="data:image/jpeg;base64,'.base64_encode($album->jpeg).'" />';
|
||||
echo "<footer class='short-text'>{$album->year} - {$album->artistName}</footer>
|
||||
</article></div>";
|
||||
}
|
||||
?>
|
||||
</section>
|
||||
|
@ -10,6 +10,7 @@ foreach ($artistes as $artist) {
|
||||
}
|
||||
$artistAlbums[$artist->artistName][] = array(
|
||||
'albumName' => $artist->albumName,
|
||||
'albumId' => $artist->albumId,
|
||||
'year' => $artist->year
|
||||
);
|
||||
}
|
||||
@ -21,7 +22,7 @@ foreach ($artistAlbums as $artistName => $albums) {
|
||||
echo "</header>";
|
||||
echo "<ul>";
|
||||
foreach ($albums as $album) {
|
||||
echo "<li>" . $album['albumName'] . " - " . $album['year'] . "</li>";
|
||||
echo "<li>" . anchor("music/view/{$album['albumId']}", $album['albumName']) . " - " . $album['year'] . "</li>";
|
||||
}
|
||||
echo "</ul>";
|
||||
echo "</article></div>";
|
||||
|
Loading…
x
Reference in New Issue
Block a user