Commit de Louay : Modifications pour éviter des bugs

This commit is contained in:
stiti 2024-06-07 13:41:17 +02:00
parent 417b16011f
commit 3bc08d6bd2
4 changed files with 95 additions and 71 deletions

View File

@ -27,7 +27,7 @@ class Albums extends CI_Controller {
$total_pages = ceil($total_albums / $limit); $total_pages = ceil($total_albums / $limit);
// Vérifier si la page demandée est valide // Vérifier si la page demandée est valide
if ($page < 1 || $page > $total_pages) { if ($page < 1 || ($total_pages > 0 && $page > $total_pages)) {
redirect('errors/error_404'); redirect('errors/error_404');
return; return;
} }
@ -43,23 +43,23 @@ class Albums extends CI_Controller {
$data['order_by'] = $order_by; $data['order_by'] = $order_by;
$data['genre_id'] = $genre_id; $data['genre_id'] = $genre_id;
$data['artist_id'] = $artist_id; $data['artist_id'] = $artist_id;
$data['title']= 'Albums - Onzeur'; $data['title'] = 'Albums - Onzeur';
$data['css']='assets/css/style'; $data['css'] = 'assets/css/style';
// Récupérer les genres et les artistes pour les filtres // Récupérer les genres et les artistes pour les filtres
$data['genres'] = $this->model_music->getGenres(); $data['genres'] = $this->model_music->getGenres();
$data['artists'] = $this->model_music->getArtists(); $data['artists'] = $this->model_music->getArtists();
$this->load->view('layout/header_dark', $data); $this->load->view('layout/header_dark', $data);
$this->load->view('albums_list',$data); $this->load->view('albums_list', $data);
$this->load->view('layout/footer_dark'); $this->load->view('layout/footer_dark');
} }
public function view($id){ public function view($id){
[$album,$tracks] = $this->model_music->get_album_by_id($id); [$album,$tracks] = $this->model_music->get_album_by_id($id);
$data['album'] = $album; $data['album'] = $album;
$data['title'] = $album->name." - Details"; $data['title'] = $album->name . " - Details";
$data['css']='assets/css/album_view'; $data['css'] = 'assets/css/album_view';
$data['tracks'] = $tracks; $data['tracks'] = $tracks;
if ($this->session->userdata('user_id')) { if ($this->session->userdata('user_id')) {
$user_id = $this->session->userdata('user_id'); $user_id = $this->session->userdata('user_id');
@ -67,8 +67,7 @@ class Albums extends CI_Controller {
} }
$this->load->view('layout/header_dark', $data); $this->load->view('layout/header_dark', $data);
$this->load->view('album_view'); $this->load->view('album_view', $data);
$this->load->view('layout/footer_dark'); $this->load->view('layout/footer_dark');
} }
} }
?>

View File

@ -14,11 +14,6 @@ class Musiques extends CI_Controller {
} }
public function index($page = 1){ public function index($page = 1){
$this->load->model('Model_music');
$this->load->library('pagination');
$this->load->helper('url');
$this->load->helper('html');
$limit = 30; $limit = 30;
$offset = ($page - 1) * $limit; $offset = ($page - 1) * $limit;
$sort = $this->input->get('sort'); $sort = $this->input->get('sort');
@ -26,7 +21,7 @@ class Musiques extends CI_Controller {
$artist_id = $this->input->get('artist_id'); $artist_id = $this->input->get('artist_id');
$musiques = $this->Model_music->getMusiques($limit, $offset, $sort, 'ASC', $genre_id, $artist_id); $musiques = $this->Model_music->getMusiques($limit, $offset, $sort, 'ASC', $genre_id, $artist_id);
$total_musiques = $this->Model_music->get_total_musiques(); $total_musiques = $this->Model_music->get_total_musiques_filtered($genre_id, $artist_id); // Utiliser la nouvelle méthode ici
$total_pages = ceil($total_musiques / $limit); $total_pages = ceil($total_musiques / $limit);
// Vérifier si la page demandée est valide // Vérifier si la page demandée est valide

View File

@ -166,6 +166,32 @@ class Model_music extends CI_Model {
return $this->db->get()->result(); return $this->db->get()->result();
} }
public function get_total_musiques_filtered($genre_id = null, $artist_id = null) {
$where_clause = '';
$params = array();
if ($genre_id) {
$where_clause .= " WHERE genre.id = ?";
$params[] = $genre_id;
}
if ($artist_id) {
$where_clause .= ($where_clause == '') ? ' WHERE' : ' AND';
$where_clause .= " artist.id = ?";
$params[] = $artist_id;
}
$query = $this->db->query("
SELECT COUNT(*) as total
FROM song
JOIN track ON song.id = track.songid
JOIN album ON track.albumid = album.id
JOIN artist ON album.artistid = artist.id
JOIN genre ON album.genreid = genre.id
$where_clause
", $params);
return $query->row()->total;
}
public function get_random_songs($limit, $genre = null, $artist = null) { public function get_random_songs($limit, $genre = null, $artist = null) {
$this->db->select('song.id, song.name'); $this->db->select('song.id, song.name');
$this->db->from('song'); $this->db->from('song');

View File

@ -1,7 +1,6 @@
<h1 class="title">Listes des albums</h1>
<h1 class="title">Listes des albums</h1> <div class="filters">
<div class="filters">
<form method="GET" action="<?php echo base_url('index.php/albums/index'); ?>"> <form method="GET" action="<?php echo base_url('index.php/albums/index'); ?>">
<label for="genre">Genre:</label> <label for="genre">Genre:</label>
<select name="genre_id" id="genre"> <select name="genre_id" id="genre">
@ -27,9 +26,12 @@
<button type="submit">Filtrer</button> <button type="submit">Filtrer</button>
</form> </form>
</div> </div>
<section class="list"> <section class="list">
<?php if (empty($albums)): ?>
<p>Aucun album trouvé pour cette sélection.</p>
<?php else: ?>
<?php foreach($albums as $album): ?> <?php foreach($albums as $album): ?>
<div> <div>
<article> <article>
@ -40,7 +42,8 @@
<footer class="short-text"><?php echo $album->year; ?> - <?php echo $album->artistName; ?> <footer class="short-text"><?php echo $album->year; ?> - <?php echo $album->artistName; ?>
<?php if ($this->session->userdata('user_id')): ?> <?php if ($this->session->userdata('user_id')): ?>
<?php if (!empty($user_playlists)): ?> <?php if (!empty($user_playlists)): ?>
<br><br><select id="playlist_<?php echo $album->id; ?>" class="select-playlist"> <br><br>
<select id="playlist_<?php echo $album->id; ?>" class="select-playlist">
<?php foreach ($user_playlists as $playlist) : ?> <?php foreach ($user_playlists as $playlist) : ?>
<option value="<?php echo $playlist->id; ?>"><?php echo $playlist->name; ?></option> <option value="<?php echo $playlist->id; ?>"><?php echo $playlist->name; ?></option>
<?php endforeach; ?> <?php endforeach; ?>
@ -52,9 +55,10 @@
</article> </article>
</div> </div>
<?php endforeach; ?> <?php endforeach; ?>
</section> <?php endif; ?>
</section>
<div class="pagination"> <div class="pagination">
<?php if ($current_page > 1): ?> <?php if ($current_page > 1): ?>
<a class="fleche" href="<?php echo base_url('index.php/albums/index/'.($current_page-1).'?order_by='.$order_by.'&genre_id='.$genre_id.'&artist_id='.$artist_id); ?>"><</a> <a class="fleche" href="<?php echo base_url('index.php/albums/index/'.($current_page-1).'?order_by='.$order_by.'&genre_id='.$genre_id.'&artist_id='.$artist_id); ?>"><</a>
<?php endif; ?> <?php endif; ?>
@ -66,7 +70,7 @@
<?php if ($current_page < $total_pages): ?> <?php if ($current_page < $total_pages): ?>
<a class="fleche" href="<?php echo base_url('index.php/albums/index/'.($current_page+1).'?order_by='.$order_by.'&genre_id='.$genre_id.'&artist_id='.$artist_id); ?>">></a> <a class="fleche" href="<?php echo base_url('index.php/albums/index/'.($current_page+1).'?order_by='.$order_by.'&genre_id='.$genre_id.'&artist_id='.$artist_id); ?>">></a>
<?php endif; ?> <?php endif; ?>
</div> </div>
</body> </body>
<script> <script>
function addToPlaylist(albumId) { function addToPlaylist(albumId) {