85 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
defined('BASEPATH') OR exit('No direct script access allowed');
 | 
						|
 | 
						|
class Albums extends CI_Controller {
 | 
						|
 | 
						|
    public function __construct(){
 | 
						|
        parent::__construct();
 | 
						|
        $this->load->model('Model_album');
 | 
						|
        $this->load->library('pagination');
 | 
						|
        $this->load->library('session');
 | 
						|
    }
 | 
						|
 | 
						|
    public function index() {
 | 
						|
        $genre = $this->input->get('genre');
 | 
						|
        $order = $this->input->get('order');
 | 
						|
        $artist = $this->input->get('artist');
 | 
						|
        $query = $this->input->get('query');
 | 
						|
 | 
						|
        // Configuration de la pagination
 | 
						|
        $config = array();
 | 
						|
        $config['base_url'] = site_url('albums/index');
 | 
						|
        $config['total_rows'] = $this->Model_album->countAllAlbums($genre, $artist, $query);
 | 
						|
        $config['per_page'] = 16;
 | 
						|
        $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'] = '«';
 | 
						|
        $config['prev_tag_open'] = '<li class="page-item">';
 | 
						|
        $config['prev_tag_close'] = '</li>';
 | 
						|
        $config['next_link'] = '»';
 | 
						|
        $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(
 | 
						|
            'albums' => $this->Model_album->getAlbums($genre, $order, $artist, $query, $config['per_page'], $page),
 | 
						|
            'genres' => $this->Model_album->getGenres(),
 | 
						|
            'artists' => $this->Model_album->getArtists(),
 | 
						|
            '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('albums_list', $data);
 | 
						|
        $this->load->view('layout/footer');
 | 
						|
    }
 | 
						|
 | 
						|
    public function view($albumId) {
 | 
						|
        $albumDetails = $this->Model_album->getAlbumDetails($albumId);
 | 
						|
        
 | 
						|
        if (!$albumDetails) {
 | 
						|
            show_404();
 | 
						|
        }
 | 
						|
        
 | 
						|
        $data = array(
 | 
						|
            'album' => $albumDetails['album'],
 | 
						|
            'songs' => $albumDetails['songs'],
 | 
						|
            'is_logged_in' => $this->session->userdata('logged_in')
 | 
						|
        );
 | 
						|
    
 | 
						|
        $this->load->view('layout/header', $data);
 | 
						|
        $this->load->view('album_details', $data);
 | 
						|
        $this->load->view('layout/footer');
 | 
						|
    }
 | 
						|
    
 | 
						|
}
 |