This commit is contained in:
2024-06-19 14:08:59 +02:00
parent 9436fd05cc
commit 6bfbf46dcc
21 changed files with 854 additions and 236 deletions

View File

@@ -5,27 +5,56 @@ class Albums extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->model('model_music');
$this->load->model('Model_album');
$this->load->library('pagination');
$this->load->library('session');
}
public function index(){
$order = $this->input->get('order');
public function index() {
$genre = $this->input->get('genre');
$order = $this->input->get('order');
$artist = $this->input->get('artist');
$query = $this->input->get('query');
$albums = $this->model_music->getAlbums($genre, $order, $artist, $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'] = '&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');
$genres = $this->model_music->researchtype();
$artists = $this->model_music->nameArtist();
$this->pagination->initialize($config);
$page = $this->input->get('page');
$page = ($page) ? $page : 0;
$is_logged_in = $this->session->userdata('logged_in');
$data = array(
'albums' => $albums,
'is_logged_in' => $is_logged_in,
'genres' => $genres,
'artistes' => $artists
'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);
@@ -35,17 +64,21 @@ class Albums extends CI_Controller {
}
public function view($albumId) {
$albumData = $this->model_music->getAlbumDetails($albumId);
$is_logged_in = $this->session->userdata('logged_in');
$albumDetails = $this->Model_album->getAlbumDetails($albumId);
if (!$albumDetails) {
show_404();
}
$data = array(
'album' => $albumData['album'],
'songs' => $albumData['songs'],
'is_logged_in' => $is_logged_in
'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');
}
}

View File

@@ -2,48 +2,69 @@
defined('BASEPATH') OR exit('No direct script access allowed');
class Artistes extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('model_music');
$this->load->library('session');
$this->load->model('Model_artist');
$this->load->model('Model_music');
$this->load->library('pagination');
}
public function index() {
$genre = $this->input->get('genre');
$order = $this->input->get('order');
$query = $this->input->get('query');
$artists = $this->model_music->getArtists($genre, $order, $query);
$genres = $this->model_music->researchtype();
$is_logged_in = $this->session->userdata('logged_in');
// 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['uri_segment'] = 2; // Segment de l'URI contenant le numéro de la page
$config['reuse_query_string'] = TRUE;
$this->pagination->initialize($config);
$page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0;
// Correction pour éviter l'erreur str_replace()
$pagination_links = $this->pagination->create_links();
if ($pagination_links === null) {
$pagination_links = '';
}
$data = array(
'artists' => $artists,
'genres' => $genres,
'is_logged_in' => $is_logged_in
'artists' => $this->Model_artist->getArtists($genre, $order, $query, $config['per_page'], $page),
'genres' => $this->Model_music->researchtype(),
'pagination' => $pagination_links,
'is_logged_in' => $this->session->userdata('logged_in')
);
$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) {
$artist = $this->model_music->getArtistDetails($artistId);
$albums = $this->model_music->getAlbumsByArtist($artistId);
$is_logged_in = $this->session->userdata('logged_in');
$artistDetails = $this->Model_artist->getArtistDetails($artistId);
$albums = $this->Model_artist->getAlbumsByArtist($artistId);
if (!$artistDetails) {
show_404();
}
$data = array(
'artist' => $artist,
'artist' => $artistDetails,
'albums' => $albums,
'is_logged_in' => $is_logged_in
'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');
}
}
?>

View File

@@ -5,26 +5,56 @@ class Music extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->model('model_music');
$this->load->model('Model_music');
$this->load->library('pagination');
$this->load->library('session');
}
public function index(){
public function index() {
$genre = $this->input->get('genre');
$order = $this->input->get('order');
$artist = $this->input->get('artist');
$query = $this->input->get('query');
$musics = $this->model_music->getMusics($genre, $order, $artist, $query);
$genres = $this->model_music->researchtype();
$artists = $this->model_music->nameArtist(); // S'assurer que cette méthode récupère bien les artistes
// Configuration de la pagination
$config = array();
$config['base_url'] = site_url('music/index');
$config['total_rows'] = $this->Model_music->countAllMusics($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'] = '&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;
$is_logged_in = $this->session->userdata('logged_in');
$data = array(
'musics' => $musics,
'genres' => $genres,
'artistes' => $artists, // Passer les artistes à la vue
'is_logged_in' => $is_logged_in
'musics' => $this->Model_music->getMusics($genre, $order, $artist, $query, $config['per_page'], $page),
'genres' => $this->Model_music->researchtype(),
'artists' => $this->Model_music->nameArtist(),
'is_logged_in' => $this->session->userdata('logged_in'),
'pagination' => $this->pagination->create_links()
);
$this->load->view('layout/header', $data);
@@ -34,7 +64,7 @@ class Music extends CI_Controller {
}
public function view($songId) {
$songData = $this->model_music->getSongDetails($songId);
$songData = $this->Model_music->getSongDetails($songId);
if (!$songData) {
show_404();
@@ -50,6 +80,6 @@ class Music extends CI_Controller {
$this->load->view('song_details', $data);
$this->load->view('layout/footer');
}
}

View File

@@ -5,22 +5,20 @@ class Playlist extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('Model_playlist');
$this->load->model('Model_music'); // Ajouté pour accéder aux musiques
$this->load->model('Model_music');
$this->load->library('session');
if (!$this->session->userdata('logged_in')) {
redirect('connect/login');
}
}
public function index() {
public function index($data = []) {
$is_logged_in = $this->session->userdata('logged_in');
$user_email = $this->session->userdata('email');
if (!$is_logged_in) {
redirect('connect/login');
}
$data = array(
'is_logged_in' => $is_logged_in,
'playlists' => $this->Model_playlist->getPlaylistsByUser($user_email)
);
$data['is_logged_in'] = $is_logged_in;
$data['playlists'] = $this->Model_playlist->getPlaylistsByUser($user_email);
$data['genres'] = $this->Model_playlist->getGenres();
$this->load->view('layout/header', $data);
$this->load->view('playlists_list', $data);
@@ -31,18 +29,24 @@ class Playlist extends CI_Controller {
$is_logged_in = $this->session->userdata('logged_in');
$user_email = $this->session->userdata('email');
if (!$is_logged_in) {
redirect('connect/login');
}
$name = $this->input->post('name');
$type = $this->input->post('type');
$numSongs = $this->input->post('numSongs');
$genre = $this->input->post('genre');
if ($type == 'random') {
$numSongs = $this->input->post('numSongs');
$artist = $this->input->post('artist');
$genre = $this->input->post('genre');
$this->Model_playlist->createRandomPlaylist($user_email, $name, $numSongs, $artist, $genre);
if ($numSongs <= 0) {
$data['error'] = 'Le nombre de chansons doit être supérieur à 0';
$this->index($data);
return;
}
$result = $this->Model_playlist->createRandomPlaylist($user_email, $name, $numSongs, $genre);
if (!$result) {
$data['error'] = 'Erreur lors de la création de la playlist aléatoire';
$this->index($data);
return;
}
} else {
$this->Model_playlist->addPlaylist($user_email, $name);
}
@@ -51,11 +55,13 @@ class Playlist extends CI_Controller {
}
public function selectPlaylist() {
$is_logged_in = $this->session->userdata('logged_in');
$itemId = $this->input->post('itemId');
$itemType = $this->input->post('itemType');
$playlists = $this->Model_playlist->getPlaylistsByUser($this->session->userdata('email'));
$data = array(
'is_logged_in' => $is_logged_in,
'itemId' => $itemId,
'itemType' => $itemType,
'playlists' => $playlists
@@ -74,14 +80,14 @@ class Playlist extends CI_Controller {
if ($itemType == 'album') {
$songs = $this->Model_music->getSongsByAlbum($itemId);
foreach ($songs as $song) {
$this->Model_playlist->addItem($playlistId, $song->id, 'song');
$this->Model_playlist->addItem($playlistId, $song->trackId, 'song');
}
} else if ($itemType == 'artist') {
$albums = $this->Model_music->getAlbumsByArtist($itemId);
foreach ($albums as $album) {
$songs = $this->Model_music->getSongsByAlbum($album->albumId);
foreach ($songs as $song) {
$this->Model_playlist->addItem($playlistId, $song->id, 'song');
$this->Model_playlist->addItem($playlistId, $song->trackId, 'song');
}
}
} else {
@@ -94,9 +100,12 @@ class Playlist extends CI_Controller {
public function view($playlistId) {
$is_logged_in = $this->session->userdata('logged_in');
$items = $this->Model_playlist->getPlaylistItems($playlistId);
$itemCount = $this->Model_playlist->getPlaylistItemCount($playlistId);
$data = array(
'is_logged_in' => $is_logged_in,
'items' => $items
'items' => $items,
'itemCount' => $itemCount
);
$this->load->view('layout/header', $data);
@@ -113,10 +122,6 @@ class Playlist extends CI_Controller {
$is_logged_in = $this->session->userdata('logged_in');
$user_email = $this->session->userdata('email');
if (!$is_logged_in) {
redirect('connect/login');
}
$this->Model_playlist->deletePlaylist($playlist_id);
redirect('playlist');
}
@@ -125,10 +130,6 @@ class Playlist extends CI_Controller {
$is_logged_in = $this->session->userdata('logged_in');
$user_email = $this->session->userdata('email');
if (!$is_logged_in) {
redirect('connect/login');
}
$this->Model_playlist->duplicatePlaylist($playlist_id, $user_email);
redirect('playlist');
}
@@ -137,10 +138,6 @@ class Playlist extends CI_Controller {
$is_logged_in = $this->session->userdata('logged_in');
$user_email = $this->session->userdata('email');
if (!$is_logged_in) {
redirect('connect/login');
}
$playlistId = $this->input->post('playlistId');
$newName = $this->input->post('newName');
@@ -148,4 +145,3 @@ class Playlist extends CI_Controller {
redirect('playlist');
}
}