diff --git a/CodeIgniter-3.1.13/application/config/config.php b/CodeIgniter-3.1.13/application/config/config.php index e3ce1e5..c4f49b2 100644 --- a/CodeIgniter-3.1.13/application/config/config.php +++ b/CodeIgniter-3.1.13/application/config/config.php @@ -23,7 +23,7 @@ defined('BASEPATH') OR exit('No direct script access allowed'); | a PHP script and you can easily do that on your own. | */ -$config['base_url'] = 'https://dwarves.iut-fbleau.fr/~orfao/SAE/SAE_2.02/CodeIgniter-3.1.13/'; +$config['base_url'] = 'https://dwarves.iut-fbleau.fr/~stiti/SAE_2.02/CodeIgniter-3.1.13/'; /* |-------------------------------------------------------------------------- diff --git a/CodeIgniter-3.1.13/application/controllers/Search.php b/CodeIgniter-3.1.13/application/controllers/Search.php index 4e9be37..985f5ff 100644 --- a/CodeIgniter-3.1.13/application/controllers/Search.php +++ b/CodeIgniter-3.1.13/application/controllers/Search.php @@ -5,18 +5,14 @@ class Search extends CI_Controller { public function __construct(){ parent::__construct(); - $this->load->model('Search_model'); - $this->load->helper('url'); - $this->load->helper('html'); + $this->load->model('Search_model'); + $this->load->helper(['url', 'html']); } public function index(){ - // Récupérer la requête de recherche depuis la barre de recherche $query = $this->input->get('query'); - // Vérifier que la requête de recherche n'est pas vide if (empty($query)) { - // Charger la vue avec un message d'erreur $data['query'] = $query; $data['musiques'] = []; $data['albums'] = []; @@ -24,33 +20,32 @@ class Search extends CI_Controller { $data['artistes'] = []; $data['error'] = "La requête de recherche ne peut pas être vide."; - $data['title']="Résultats de la recherche"; - $data['css']="assets/css/search_results"; + $data['title'] = "Résultats de la recherche"; + $data['css'] = "assets/css/search_results"; $this->load->view('layout/header_dark', $data); - $this->load->view('search_results',$data); + $this->load->view('search_results', $data); $this->load->view('layout/footer_dark'); return; } - // Faire une recherche dans les musiques, les albums, les genres et les artistes $musiques = $this->Search_model->searchMusiques($query); $albums = $this->Search_model->searchAlbums($query); $genres = $this->Search_model->searchGenres($query); $artistes = $this->Search_model->searchArtistes($query); - // Charger la vue avec les résultats de la recherche $data['query'] = $query; $data['musiques'] = $musiques; $data['albums'] = $albums; $data['genres'] = $genres; $data['artistes'] = $artistes; - $data['title']="Résultats de la recherche"; - $data['css']="assets/css/search_results"; + $data['title'] = "Résultats de la recherche"; + $data['css'] = "assets/css/search_results"; $this->load->view('layout/header_dark', $data); - $this->load->view('search_results',$data); + $this->load->view('search_results', $data); $this->load->view('layout/footer_dark'); } } +?> diff --git a/CodeIgniter-3.1.13/application/models/Search_model.php b/CodeIgniter-3.1.13/application/models/Search_model.php index 4b15113..cea12ec 100644 --- a/CodeIgniter-3.1.13/application/models/Search_model.php +++ b/CodeIgniter-3.1.13/application/models/Search_model.php @@ -22,7 +22,7 @@ class Search_model extends CI_Model { } public function searchAlbums($query){ - $sql = "SELECT album.id, album.name, album.year, artist.name as artistName, genre.name as genreName, cover.jpeg + $sql = "SELECT album.id, album.name, album.year, artist.id as artist_id, artist.name as artistName, genre.name as genreName, cover.jpeg FROM album JOIN artist ON album.artistid = artist.id JOIN genre ON album.genreid = genre.id @@ -32,6 +32,7 @@ class Search_model extends CI_Model { $query = $this->db->query($sql, array('%' . $query . '%')); return $query->result(); } + public function searchGenres($query){ $sql = "SELECT id, name FROM genre WHERE name LIKE ? ORDER BY name ASC"; @@ -45,3 +46,4 @@ class Search_model extends CI_Model { return $query->result(); } } +?> diff --git a/CodeIgniter-3.1.13/application/views/search_results.php b/CodeIgniter-3.1.13/application/views/search_results.php index cb4179a..13b6f48 100644 --- a/CodeIgniter-3.1.13/application/views/search_results.php +++ b/CodeIgniter-3.1.13/application/views/search_results.php @@ -1,72 +1,76 @@ -

Résultats de la recherche pour ""

+

Résultats de la recherche pour ""

- -

- + +

+ - -
-

Musiques

- -
- + +
+

Musiques

+ +
+ - -
-

Albums

- -
- + +
+

Albums

+ +
+ - -
-

Genres

- -
- + +
+

Genres

+ +
+ - -
-

Artistes

- -
- - -

Aucun résultat trouvé.

- + +
+

Artistes

+ +
+ + + +

Aucun résultat trouvé.

+ diff --git a/CodeIgniter-3.1.13/assets/css/search_results.css b/CodeIgniter-3.1.13/assets/css/search_results.css index 9529d42..0872cb0 100644 --- a/CodeIgniter-3.1.13/assets/css/search_results.css +++ b/CodeIgniter-3.1.13/assets/css/search_results.css @@ -5,60 +5,147 @@ body { background-color: #f8f8f8; } -.search-title { - color: #6a0dad; +.container { + max-width: 1200px; + margin: 0 auto; + padding: 20px; +} + +.title { + color: #6a0dad; text-align: center; margin-top: 20px; } -.error-message { - color: red; - margin-top: 5px; - font-size: 25px; - text-align: center; -} - .section { - margin-bottom: 30px; + margin-bottom: 40px; } .section-title { color: #6a0dad; - font-size: 1.5em; + font-size: 1.8em; + border-bottom: 2px solid #6a0dad; + padding-bottom: 10px; + margin-bottom: 20px; } -ul { +.music-list, .album-list, .genre-list, .artist-list { + list-style-type: none; padding: 0; } -ul li { +.music-list li, .album-list li, .genre-list li, .artist-list li { + background-color: #fff; + border-radius: 8px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); margin-bottom: 10px; + padding: 15px; + transition: transform 0.3s ease; } -ul li a { +.music-list li:hover, .album-list li:hover, .genre-list li:hover, .artist-list li:hover { + transform: translateY(-5px); +} + +.music-list li a, .album-list li a, .artist-list li a, .genre-list li a { color: #6a0dad; - text-decoration: none; transition: color 0.3s ease; } -ul li a:hover { +.music-list li a:hover, .album-list li a:hover, .artist-list li a:hover, .genre-list li a:hover { color: #4a0772; } +.error-message { + color: red; + text-align: center; + margin: 20px 0; +} + .no-results { text-align: center; - color: #777; /* Grey */ + font-size: 1.2em; + color: #888; +} + +.music-links { + margin-top: 10px; +} + +.music-links a { + display: inline-block; + margin-right: 10px; + padding: 5px 10px; + border-radius: 5px; + color: #fff; + text-decoration: none; + transition: background-color 0.3s ease; +} + +.music-links a.spotify { + background-color: #1DB954; +} + +.music-links a.deezer { + background-color: #6E44FF; +} + +.music-links a.youtube { + background-color: #FF0000; +} + +.music-links a.spotify:hover, .music-links a.deezer:hover, .music-links a.youtube:hover { + color: black; + background-color: rgba(255, 255, 255, 0.8); } -/* Responsive styles */ @media screen and (max-width: 768px) { - ul li { + .music-list li, .album-list li, .genre-list li, .artist-list li { width: 45%; + margin: 10px 0; } } @media screen and (max-width: 576px) { - ul li { + .music-list li, .album-list li, .genre-list li, .artist-list li { width: 100%; } } + +.filters button { + background-color: #8c00ff; + color: #fff; + border: none; + padding: 8px 16px; + border-radius: 4px; + cursor: pointer; +} + +.filters button:hover { + background-color: #6a0080; +} + +.pagination { + text-align: center; + margin-top: 20px; +} + +.pagination a { + display: inline-block; + padding: 8px 16px; + margin: 0 4px; + background-color: #6a0dad; + color: #fff; + border-radius: 4px; + text-decoration: none; + transition: background-color 0.3s ease; + margin-bottom: 10px; +} + +.pagination a:hover { + background-color: #4a0772; +} + +.pagination .active { + background-color: #29043e; +}