<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Artistes extends CI_Controller {
    public function __construct() {
        parent::__construct();
        $this->load->model('Model_artist');
        $this->load->model('Model_music');
        $this->load->library('pagination');
        $this->load->library('session');
    }

    public function index() {
        $genre = $this->input->get('genre');
        $order = $this->input->get('order');
        $query = $this->input->get('query');
    
        // Configuration de la pagination
        $config = array();
        $config['base_url'] = site_url('artistes');
        $config['total_rows'] = $this->Model_artist->get_total_artists($genre, $query);
        $config['per_page'] = 16; // Nombre d'artistes par page
        $config['page_query_string'] = TRUE;
        $config['reuse_query_string'] = TRUE;
        $config['query_string_segment'] = 'page';
        $config['full_tag_open'] = '<nav aria-label="Page navigation"><ul class="pagination">';
        $config['full_tag_close'] = '</ul></nav>';
        $config['first_link'] = 'First';
        $config['last_link'] = 'Last';
        $config['first_tag_open'] = '<li class="page-item">';
        $config['first_tag_close'] = '</li>';
        $config['prev_link'] = '&laquo';
        $config['prev_tag_open'] = '<li class="page-item">';
        $config['prev_tag_close'] = '</li>';
        $config['next_link'] = '&raquo';
        $config['next_tag_open'] = '<li class="page-item">';
        $config['next_tag_close'] = '</li>';
        $config['last_tag_open'] = '<li class="page-item">';
        $config['last_tag_close'] = '</li>';
        $config['cur_tag_open'] = '<li class="page-item active"><a href="#" class="page-link">';
        $config['cur_tag_close'] = '</a></li>';
        $config['num_tag_open'] = '<li class="page-item">';
        $config['num_tag_close'] = '</li>';
        $config['attributes'] = array('class' => 'page-link');
    
        $this->pagination->initialize($config);
    
        $page = $this->input->get('page');
        $page = ($page) ? $page : 0;
    
        $data = array(
            'artists' => $this->Model_artist->getArtists($genre, $order, $query, $config['per_page'], $page),
            'genres' => $this->Model_music->researchtype(),
            'is_logged_in' => $this->session->userdata('logged_in'),
            'pagination' => $this->pagination->create_links()
        );
    
        $this->load->view('layout/header', $data);
        $this->load->view('layout/getter', $data);
        $this->load->view('artists_list', $data);
        $this->load->view('layout/footer');
    }
    

    public function view($artistId) {
        $artistDetails = $this->Model_artist->getArtistDetails($artistId);
        $albums = $this->Model_artist->getAlbumsByArtist($artistId);
    
        if (!$artistDetails) {
            show_404();
        }
    
        $data = array(
            'artist' => $artistDetails,
            'albums' => $albums,
            'is_logged_in' => $this->session->userdata('logged_in')
        );
    
        $this->load->view('layout/header', $data);
        $this->load->view('artist_details', $data);
        $this->load->view('layout/footer');
    }
}
?>