From 4b5b72f2c086dff0fe14b1f85a2dc84f466c11ad Mon Sep 17 00:00:00 2001
From: Vince <vi.teissier@gmail.com>
Date: Tue, 4 Jun 2024 16:18:03 +0200
Subject: [PATCH] test filtre 2/?

---
 application/controllers/Albums.php  | 50 +++++++++++++--------------
 application/models/Model_music.php  | 52 +++++++++++++++++------------
 application/views/layout/getter.php | 51 +++++++++++++++-------------
 3 files changed, 84 insertions(+), 69 deletions(-)

diff --git a/application/controllers/Albums.php b/application/controllers/Albums.php
index 25f419b..602c9a9 100644
--- a/application/controllers/Albums.php
+++ b/application/controllers/Albums.php
@@ -3,34 +3,34 @@ defined('BASEPATH') OR exit('No direct script access allowed');
 
 class Albums extends CI_Controller {
 
-	public function __construct(){
-		parent::__construct();
-		$this->load->model('model_music');
-		$this->load->library('session');
-	}
+    public function __construct(){
+        parent::__construct();
+        $this->load->model('model_music');
+        $this->load->library('session');
+    }
 
+    public function index(){
+        $order = $this->input->get('order');
+        $genre = $this->input->get('genre');
+        $artist = $this->input->get('artist');
+        $query = $this->input->get('query');
 
-	public function index(){
-		$genre = $this->input->get('genre');
-		$order = $this->input->get('order');
-		$artist = $this->input->get('artist');
+        $albums = $this->model_music->getAlbums($genre, $order, $artist);
 
-		$albums = $this->model_music->getAlbums($genre, $order, $artist);
-		$genres = $this->model_music->researchtype();
-		$artists = $this->model_music->nameArtist();
+        $genres = $this->model_music->researchtype();
+        $artists = $this->model_music->nameArtist();
 
-		$is_logged_in = $this->session->userdata('logged_in');
-		$data = array(
-			'albums' => $albums,
-			'is_logged_in' => $is_logged_in,
-			'genres' => $genres,
-			'artistes' => $artists
-		);
-		$this->load->view('layout/header',$data);
-		$this->load->view('layout/getter',$data);
-		$this->load->view('albums_list', $data);
-		$this->load->view('layout/footer');
-	}
+        $is_logged_in = $this->session->userdata('logged_in');
+        $data = array(
+            'albums' => $albums,
+            'is_logged_in' => $is_logged_in,
+            'genres' => $genres,
+            'artistes' => $artists
+        );
 
+        $this->load->view('layout/header', $data);
+        $this->load->view('layout/getter', $data);
+        $this->load->view('albums_list', $data);
+        $this->load->view('layout/footer');
+    }
 }
-
diff --git a/application/models/Model_music.php b/application/models/Model_music.php
index fed9d72..9541852 100644
--- a/application/models/Model_music.php
+++ b/application/models/Model_music.php
@@ -5,32 +5,42 @@ class Model_music extends CI_Model {
 		$this->load->database();
 	}
 
-	public function getAlbums($genre = '', $order = '', $artist = '') {
-		$this->db->select('album.name, album.id, year, artist.name as artistName, genre.name as genreName, jpeg');
-		$this->db->from('album');
-		$this->db->join('artist', 'album.artistid = artist.id');
-		$this->db->join('genre', 'genre.id = album.genreid');
-		$this->db->join('cover', 'cover.id = album.coverid');
+	public function getAlbums($genre = '', $order = 'asc', $artist = '') {
+        $this->db->select('album.name, album.id, year, artist.name as artistName, genre.name as genreName, jpeg');
+        $this->db->from('album');
+        $this->db->join('artist', 'album.artistid = artist.id');
+        $this->db->join('genre', 'genre.id = album.genreid');
+        $this->db->join('cover', 'cover.id = album.coverid');
 
+        if(!empty($genre)){
+            $this->db->where('genre.name', $genre);
+        }
 
-		if(!empty($genre)){
-			$this->db->where('genre.name', $genre);
-		}
+        if(!empty($artist)){
+            $this->db->where('artist.name', $artist);
+        }
 
-		if(!empty($artist)){
-			$this->db->where('artist.name', $artist);
-		}
+        if($order == 'asc' || $order == 'desc'){
+            $this->db->order_by('album.name', $order);
+        }
 
+        $query = $this->db->get();
+        return $query->result();
+    }
 
-		
-		if($order == 'asc' || $order == 'desc'){
-			$this->db->order_by('album.name',$order );
-		}
-	
-		
-		$query = $this->db->get();
-		return $query->result();
-	}
+    public function researchtype(){
+        $this->db->select('name');
+        $this->db->from('genre');
+        $query = $this->db->get();
+        return $query->result();
+    }
+
+    public function nameArtist(){
+        $this->db->select('name');
+        $this->db->from('artist');
+        $query = $this->db->get();
+        return $query->result();
+    }
 	
 
 	public function getArtists($genre = '', $order = '') {
diff --git a/application/views/layout/getter.php b/application/views/layout/getter.php
index d0b35f7..75aeaa1 100644
--- a/application/views/layout/getter.php
+++ b/application/views/layout/getter.php
@@ -1,45 +1,50 @@
-<button onclick="toggleFilters()">Filtrer</button>
+<div>
+    <!-- Champ de recherche -->
+    <form method="GET" action="">
+        <input type="text" name="query" placeholder="Rechercher..." value="<?= isset($_GET['query']) ? $_GET['query'] : '' ?>">
+        <button type="submit">Rechercher</button>
+    </form>
 
+    <!-- Bouton pour afficher/masquer les filtres -->
+    <button type="button" onclick="toggleFilters()">Filtrer</button>
+    
+    <!-- Div contenant les filtres, cachée par défaut -->
     <div id="filters" style="display: none;">
         <form method="GET" action="">
-            <input type="text" name="query" placeholder="Rechercher..." value="<?= isset($_GET['query']) ? $_GET['query'] : '' ?>">
-        </form>
-
-        <form method="GET" action="">
-            <select name="artist" id="artist" onchange="submitForm()>
+            <!-- Filtre par artiste -->
+            <select name="artist" id="artist" onchange="this.form.submit()">
                 <option value=''>Tous</option>
                 <?php foreach($artistes as $artiste): ?>
                     <option value="<?= $artiste->name ?>" <?= isset($_GET['artist']) && $_GET['artist'] == $artiste->name ? 'selected' : '' ?>><?= $artiste->name ?></option>
                 <?php endforeach; ?>
             </select>
 
-            <select name="genre" id="genre" onchange="submitForm()>
+            <!-- Filtre par genre -->
+            <select name="genre" id="genre" onchange="this.form.submit()">
                 <option value=''>Tous</option>
                 <?php foreach($genres as $genre): ?>
                     <option value="<?= $genre->name ?>" <?= isset($_GET['genre']) && $_GET['genre'] == $genre->name ? 'selected' : '' ?>><?= $genre->name ?></option>
                 <?php endforeach; ?>
             </select>
 
-            <select name="order" id="order" onchange="submitForm()">
+            <!-- Filtre par ordre -->
+            <select name="order" id="order" onchange="this.form.submit()">
                 <option value="">Ordre :</option>
                 <option value="asc" <?= isset($_GET['order']) && $_GET['order'] == 'asc' ? 'selected' : '' ?>>Croissant</option>
-                <option value="desc" <?= isset($_GET['order']) && $_GET['order'] == 'desc' ? 'selected' : '' ?>>Decroissant</option>
+                <option value="desc" <?= isset($_GET['order']) && $_GET['order'] == 'desc' ? 'selected' : '' ?>>Décroissant</option>
             </select>
-
         </form>
     </div>
+</div>
 
-    <script>
-        function toggleFilters() {
-            var filters = document.getElementById('filters');
-            if (filters.style.display === 'none') {
-                filters.style.display = 'block';
-            } else {
-                filters.style.display = 'none';
-            }
+<script>
+    // Fonction pour afficher/masquer les filtres
+    function toggleFilters() {
+        var filters = document.getElementById('filters');
+        if (filters.style.display === 'none') {
+            filters.style.display = 'block';
+        } else {
+            filters.style.display = 'none';
         }
-
-        function submitForm() {
-            document.getElementById('filters').submit();
-        }
-    </script>
\ No newline at end of file
+    }
+</script>