2024-06-19 16:40:06 +02:00

76 lines
2.5 KiB
PHP

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Albums extends CI_Controller {
private $sort = 'Tri'; // Variable privée pour définir l'ordre de tri par défaut
public function __construct(){
parent::__construct();
$this->load->model('model_music');
$this->load->helper('html');
$this->load->helper('url');
$this->load->helper('form');
}
// on affiche tous les albums
public function index(){
$albums = $this->model_music->getAlbums();
$genres = $this->model_music->getGenres();
$num_results = count($albums); // nombre total d'alubm recup
$this->load->view('layout/header');
$this->load->view('albums_list', [
'albums' => $albums,
'sort' => $this->sort,
'num_results' => $num_results,
'is_search' => false,
'genres' => $genres
]);
$this->load->view('layout/footer');
}
// afficher les détail d'un album spécifique (les musiques de l'albums)
public function view($id){
$tracks = $this->model_music->getTracksByAlbumId($id); // recuperer les pistes d'un album par son id
$this->load->view('layout/header');
$this->load->view('album_info', ['tracks' => $tracks]);
$this->load->view('layout/footer');
}
// trié en fonction d'un critère
public function tri(){
$Ctri = $this->input->get('Ctri'); // critère de trie via l'url
$trie = $this->model_music->get_tri_Albums($Ctri);
$genres = $this->model_music->getGenres();
$num_results = count($trie);
$this->load->view('layout/header');
$this->load->view('albums_list', [
'albums' => $trie,
'sort' => $this->sort,
'num_results' => $num_results,
'is_search' => false,
'genres' => $genres
]);
$this->load->view('layout/footer');
}
public function search(){
$query = $this->input->get('query');
$genre = $this->input->get('genre');
$albums = $this->model_music->searchAlbums($query, $genre);
$genres = $this->model_music->getGenres();
$num_results = count($albums);
$this->load->view('layout/header');
$this->load->view('albums_list', [
'albums' => $albums,
'sort' => $this->sort,
'num_results' => $num_results,
'is_search' => true,
'genres' => $genres
]);
$this->load->view('layout/footer');
}
}