From a30a649d7a0ebbce0d33259c3a6bfca4249ea4ea Mon Sep 17 00:00:00 2001
From: keraudre <yann.keraudren@etu-upec.fr>
Date: Mon, 10 Jun 2024 15:17:52 +0200
Subject: [PATCH 1/7] correction de la page de connexion

---
 .../controllers/InscriptionController.php     |  4 +-
 codeigniter/application/views/connexion.php   | 63 +++++++++++++++----
 codeigniter/application/views/connexion2.php  | 12 ++++
 .../{inscription.php => inscription2.php}     |  0
 .../application/views/layout/header.php       | 12 ++--
 codeigniter/assets/style.css                  | 12 +++-
 6 files changed, 84 insertions(+), 19 deletions(-)
 create mode 100644 codeigniter/application/views/connexion2.php
 rename codeigniter/application/views/{inscription.php => inscription2.php} (100%)

diff --git a/codeigniter/application/controllers/InscriptionController.php b/codeigniter/application/controllers/InscriptionController.php
index 324dc8e..b99d932 100644
--- a/codeigniter/application/controllers/InscriptionController.php
+++ b/codeigniter/application/controllers/InscriptionController.php
@@ -10,7 +10,7 @@ class InscriptionController extends CI_Controller {
 
     public function inscription() {
         $this->load->view('layout/header');
-        $this->load->view('inscription');
+        $this->load->view('connexion');
         $this->load->view('layout/footer');
     }
 
@@ -38,7 +38,7 @@ class InscriptionController extends CI_Controller {
             $data['confirmation_message'] = "Inscription réussie ! Vous êtes maintenant inscrit.";
 
             $this->load->view('layout/header');
-            $this->load->view('inscription', $data);
+            $this->load->view('connexion', $data);
             $this->load->view('layout/footer');
         }
     }
diff --git a/codeigniter/application/views/connexion.php b/codeigniter/application/views/connexion.php
index dc92fbf..a94ba8b 100644
--- a/codeigniter/application/views/connexion.php
+++ b/codeigniter/application/views/connexion.php
@@ -1,12 +1,53 @@
-<h1>Se connecter</h1>
-<form action="authentifier" method="POST">
-    <label for="email">Email:</label>
-    <input type="email" id="email" name="email" required>
-    <label for="password">Mot de passe:</label>
-    <input type="password" id="password" name="password" required>
-    <button type="submit">Connexion</button>
-</form>
 
-<?php if(isset($error_msg)): ?>
-    <div class="error-message"><?= $error_msg ?></div>
-<?php endif; ?>
\ No newline at end of file
+<section class="connexion">
+
+     <div class="authentification">
+
+     <h3> Déjà abonné </h3>
+     
+     <form action="authentifier" method="POST">
+
+     <label for="email">Email:</label>
+     <input type="email" id="email" name="email" placeholder="Entrez votre email" required>
+     
+     <label for="password">Mot de passe:</label>
+     <input type="password" id="password" name="password" placeholder="Entrez votre mot de passe" required>
+     
+    <button type="submit">Connexion</button>
+     
+     </form>
+     
+     </div>
+
+     <div class="new">
+
+     <h3> Création de compte </h3>
+     
+     <form action="traitement" method="POST">
+     <label for="nom">Votre nom*</label>
+     <input type="text" id="nom" name="nom" placeholder="Entrez votre nom" required>
+
+     <label for="prenom">Votre prénom*</label>
+     <input type="text" id="prenom" name="prenom" placeholder="Entrez votre prénom" required>
+
+     <label for="pseudo">Votre pseudo*</label>
+     <input type="text" id="pseudo" name="pseudo" placeholder="Entrez votre pseudo" required>
+
+     <label for="email">Votre email*</label>
+     <input type="email" id="email" name="email" placeholder="Entrez votre adresse email" required>
+
+     <label for="pass">Votre mot de passe*</label>
+     <input type="password" id="pass" name="pass" placeholder="Entrez votre mdp" required>
+
+     <input type="submit" value="M'inscrire" name="ok">
+    
+     </form>
+
+<?php if(isset($confirmation_message)): ?>
+     <div class="confirmation-message"><?= $confirmation_message ?></div>
+<?php endif; ?>
+     
+     </div>
+</section>
+
+	
diff --git a/codeigniter/application/views/connexion2.php b/codeigniter/application/views/connexion2.php
new file mode 100644
index 0000000..dc92fbf
--- /dev/null
+++ b/codeigniter/application/views/connexion2.php
@@ -0,0 +1,12 @@
+<h1>Se connecter</h1>
+<form action="authentifier" method="POST">
+    <label for="email">Email:</label>
+    <input type="email" id="email" name="email" required>
+    <label for="password">Mot de passe:</label>
+    <input type="password" id="password" name="password" required>
+    <button type="submit">Connexion</button>
+</form>
+
+<?php if(isset($error_msg)): ?>
+    <div class="error-message"><?= $error_msg ?></div>
+<?php endif; ?>
\ No newline at end of file
diff --git a/codeigniter/application/views/inscription.php b/codeigniter/application/views/inscription2.php
similarity index 100%
rename from codeigniter/application/views/inscription.php
rename to codeigniter/application/views/inscription2.php
diff --git a/codeigniter/application/views/layout/header.php b/codeigniter/application/views/layout/header.php
index c539c92..aac08ac 100644
--- a/codeigniter/application/views/layout/header.php
+++ b/codeigniter/application/views/layout/header.php
@@ -19,13 +19,17 @@
 	</ul>
 	<ul>
 	  <li><?=anchor('albums','Albums');?></li>
-    <li><?=anchor('artistes','Artistes');?></li>
+          <li><?=anchor('artistes','Artistes');?></li>
     <?php if ($this->session->userdata('pseudo')) : // Vérifier si l'utilisateur est connecté ?>
-            <li><?= $this->session->userdata('pseudo'); ?></li> 
-            <li><?= anchor('deconnexion', 'Se déconnecter'); ?></li> 
+              
+              <li class="deroulant"><?= $this->session->userdata('pseudo'); ?></li>
+                  <ul class="sous">
+     
+     <li><?= anchor('deconnexion', 'Se déconnecter'); ?></li>
+         </ul>
+         </li>
         <?php else : ?>
             <li><?= anchor('connexion', 'Se connecter'); ?></li>
-            <li><?= anchor('inscription', 'Inscription'); ?></li>
         <?php endif; ?>
   </ul>
   </nav>
diff --git a/codeigniter/assets/style.css b/codeigniter/assets/style.css
index 1efafa1..47d9a6f 100644
--- a/codeigniter/assets/style.css
+++ b/codeigniter/assets/style.css
@@ -25,7 +25,7 @@ section.list img {
 nav {
     position: fixed;
     width: 100%;
-    
+    background-color: #283d5d;
     top: 0;
     right: 0; 
 }
@@ -42,8 +42,16 @@ main.container {
     margin-right : 20px;
 }
 
+.sous {
+    display: none;
+    box-shadow: 0px 1px 2px;
+    background-color: white;
+}
 
-
+nav > ul li:hover .sous{
+    display: block;
+}
+    
 section.connexion {
     display: flex;
     justify-content: space-between;

From f9e0d8d358268497b197e7970f49507dbb8ba180 Mon Sep 17 00:00:00 2001
From: keraudre <yann.keraudren@etu-upec.fr>
Date: Tue, 11 Jun 2024 12:28:08 +0200
Subject: [PATCH 2/7] =?UTF-8?q?modification=20style=20bouton=20d=C3=A9conn?=
 =?UTF-8?q?exion?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../application/views/layout/header.php       |  9 +++--
 codeigniter/assets/style.css                  | 38 +++++++++++++++----
 2 files changed, 35 insertions(+), 12 deletions(-)

diff --git a/codeigniter/application/views/layout/header.php b/codeigniter/application/views/layout/header.php
index aac08ac..f66bcb2 100644
--- a/codeigniter/application/views/layout/header.php
+++ b/codeigniter/application/views/layout/header.php
@@ -17,15 +17,16 @@
 	<ul>
 	  <li><strong>Music APP</strong></li>
 	</ul>
-	<ul>
+	<ul class="option">
 	  <li><?=anchor('albums','Albums');?></li>
           <li><?=anchor('artistes','Artistes');?></li>
-    <?php if ($this->session->userdata('pseudo')) : // Vérifier si l'utilisateur est connecté ?>
+              <li><?=anchor('playlist','Playlist');?></li>
+<?php if ($this->session->userdata('pseudo')) : /* Vérifier si l'utilisateur est connecté */ ?>
               
-              <li class="deroulant"><?= $this->session->userdata('pseudo'); ?></li>
+              <li class="deroulant"><a><?= $this->session->userdata('pseudo'); ?></a>
                   <ul class="sous">
      
-     <li><?= anchor('deconnexion', 'Se déconnecter'); ?></li>
+     <li class="menu"><a href="#"><?= anchor('deconnexion', 'Se déconnecter'); ?></a></li>
          </ul>
          </li>
         <?php else : ?>
diff --git a/codeigniter/assets/style.css b/codeigniter/assets/style.css
index 47d9a6f..008e8b6 100644
--- a/codeigniter/assets/style.css
+++ b/codeigniter/assets/style.css
@@ -34,24 +34,46 @@ main.container {
     margin-top: 60px;
 }
 
-.container ul {
-    left: 0;
-}
 
-.container li {
-    margin-right : 20px;
+.option {
+    margin-right : 20px!important;
 }
 
 .sous {
     display: none;
-    box-shadow: 0px 1px 2px;
-    background-color: white;
+    box-shadow: 0px 1px 2px #CCC;
+    background-color: #b4ccf0;
+    position: absolute;
 }
 
 nav > ul li:hover .sous{
-    display: block;
+    display: block ;
 }
+
+.deroulant a {
+    text-decoration: none;
+    color:white;
+}
+
+.deroulant > a::after {
+    content:"  ▼";
+    font-size: 15px;
     
+}
+
+.sous a:hover{
+    color: blue;
+    border-bottom: 2px solid gray;
+}
+
+
+
+		    
+
+
+
+
+
 section.connexion {
     display: flex;
     justify-content: space-between;

From 2640d39a4f00c3d38afc192d233f95b013c4c799 Mon Sep 17 00:00:00 2001
From: keraudre <yann.keraudren@etu-upec.fr>
Date: Tue, 11 Jun 2024 17:30:30 +0200
Subject: [PATCH 3/7] =?UTF-8?q?am=C3=A9lioration=20nav=20bar?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 codeigniter/assets/style.css | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/codeigniter/assets/style.css b/codeigniter/assets/style.css
index 008e8b6..7156934 100644
--- a/codeigniter/assets/style.css
+++ b/codeigniter/assets/style.css
@@ -41,8 +41,9 @@ main.container {
 
 .sous {
     display: none;
-    box-shadow: 0px 1px 2px #CCC;
-    background-color: #b4ccf0;
+    border-radius: 5px;
+    border: solid 1px black;
+    background-color: #283d5d;
     position: absolute;
 }
 
@@ -62,8 +63,7 @@ nav > ul li:hover .sous{
 }
 
 .sous a:hover{
-    color: blue;
-    border-bottom: 2px solid gray;
+    color: #1399fc;
 }
 
 

From 8dea4d69b39a53d9fbd2ebec47acf1e30bc381d7 Mon Sep 17 00:00:00 2001
From: follea <thomas.follea@gmail.com>
Date: Fri, 14 Jun 2024 14:56:16 +0200
Subject: [PATCH 4/7] maj

---
 .../application/controllers/Albums.php        |  6 ++++
 .../application/models/Model_music.php        | 14 ++++++++
 codeigniter/application/views/album_info.php  | 16 +++++++++
 codeigniter/assets/style.css                  | 36 ++++++++++++++-----
 4 files changed, 64 insertions(+), 8 deletions(-)
 create mode 100644 codeigniter/application/views/album_info.php

diff --git a/codeigniter/application/controllers/Albums.php b/codeigniter/application/controllers/Albums.php
index 98e3358..6c22014 100644
--- a/codeigniter/application/controllers/Albums.php
+++ b/codeigniter/application/controllers/Albums.php
@@ -21,5 +21,11 @@ class Albums extends CI_Controller {
 		$this->load->view('layout/footer');
 	}
 
+	public function view($id){
+        $tracks = $this->model_music->getTracksByAlbumId($id);
+        $this->load->view('layout/header');
+        $this->load->view('album_info', ['tracks' => $tracks]);
+        $this->load->view('layout/footer');
+    }
 }
 
diff --git a/codeigniter/application/models/Model_music.php b/codeigniter/application/models/Model_music.php
index 621da0f..0f19f4a 100644
--- a/codeigniter/application/models/Model_music.php
+++ b/codeigniter/application/models/Model_music.php
@@ -30,4 +30,18 @@ class Model_music extends CI_Model {
 		
 		return $query->result();
 	}
+
+	public function getTracksByAlbumId($albumId){
+        $query = $this->db->query(
+            "SELECT track.number, track.duration, song.name as songName 
+            FROM track 
+            JOIN album ON album.id = track.albumid
+            JOIN artist ON artist.id = album.artistId
+            JOIN song ON song.id = track.songId
+            WHERE track.albumId = ?
+			ORDER BY track.number",
+            array($albumId)
+        );
+        return $query->result();
+    }
 }
diff --git a/codeigniter/application/views/album_info.php b/codeigniter/application/views/album_info.php
new file mode 100644
index 0000000..e35a64c
--- /dev/null
+++ b/codeigniter/application/views/album_info.php
@@ -0,0 +1,16 @@
+<h5>Détail de l'Album :</h5>
+<section class="track-list">
+<?php
+if(!empty($tracks)) {
+    foreach($tracks as $track){
+        echo "<div><article>";
+        echo "<header class='track-id'>Id : {$track->number}</header>";
+        echo "<div class='track-name'>Nom  : {$track->songName}</div>";
+        echo "<footer class='track_time'>Durée (en secondes) : {$track->duration}</footer>";
+        echo "</article></div>";
+    }
+} else {
+    echo "<p>Aucune piste trouvée pour cet album.</p>";
+}
+?>
+</section>
diff --git a/codeigniter/assets/style.css b/codeigniter/assets/style.css
index 7156934..27a555f 100644
--- a/codeigniter/assets/style.css
+++ b/codeigniter/assets/style.css
@@ -66,14 +66,6 @@ nav > ul li:hover .sous{
     color: #1399fc;
 }
 
-
-
-		    
-
-
-
-
-
 section.connexion {
     display: flex;
     justify-content: space-between;
@@ -86,3 +78,31 @@ div.authentification {
 div.new {
     width: 45%;
 }
+
+/* Styles pour les détails des pistes */
+
+.track-list {
+    width: 100%;
+    margin: 0 auto;
+}
+
+.track-id {
+    display: flex;
+    justify-content: space-between;
+    padding: 10px;
+    border-bottom: 1px solid #ccc;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+}
+
+.track-name {
+    flex-grow: 1;
+    overflow: visible;
+    text-overflow: clip;
+}
+
+.track-time {
+    flex-shrink: 0;
+    margin-left: 20px;
+}

From f0a4f36a35d91f3631f42865c1a013ae6ade6093 Mon Sep 17 00:00:00 2001
From: keraudre <yann.keraudren@etu-upec.fr>
Date: Sat, 15 Jun 2024 19:27:24 +0200
Subject: [PATCH 5/7] correction du code et suppression des parties en trop

---
 codeigniter/application/config/routes.php     |  3 +-
 .../controllers/ConnexionController.php       | 33 +++++++++++++++++++
 codeigniter/application/views/connexion2.php  | 12 -------
 .../application/views/inscription2.php        | 24 --------------
 .../application/views/layout/header.php       | 23 +++++++------
 codeigniter/assets/style.css                  | 20 ++++++++++-
 6 files changed, 66 insertions(+), 49 deletions(-)
 delete mode 100644 codeigniter/application/views/connexion2.php
 delete mode 100644 codeigniter/application/views/inscription2.php

diff --git a/codeigniter/application/config/routes.php b/codeigniter/application/config/routes.php
index 3d780ab..35608bd 100644
--- a/codeigniter/application/config/routes.php
+++ b/codeigniter/application/config/routes.php
@@ -51,8 +51,7 @@ defined('BASEPATH') OR exit('No direct script access allowed');
 */
 $route['default_controller'] = 'albums';
 $route['connexion'] = 'ConnexionController/connexion';
-$route['inscription'] = 'InscriptionController/inscription';
-$route['traitement'] = 'InscriptionController/traitement';
+$route['traitement'] = 'ConnexionController/traitement';
 $route['authentifier'] = 'ConnexionController/authentifier';
 $route['deconnexion'] = 'ConnexionController/deconnexion';
 $route['404_override'] = '';
diff --git a/codeigniter/application/controllers/ConnexionController.php b/codeigniter/application/controllers/ConnexionController.php
index 2790c49..f521bbc 100644
--- a/codeigniter/application/controllers/ConnexionController.php
+++ b/codeigniter/application/controllers/ConnexionController.php
@@ -38,6 +38,39 @@ class ConnexionController extends CI_Controller {
         }
     }
 
+
+
+    public function traitement() {
+        if(isset($_POST['ok'])){
+            $this->load->database();
+    
+
+            $prenom = ucfirst(strtolower($this->input->post('prenom')));
+            $nom = strtoupper($this->input->post('nom'));
+            $pseudo = $this->input->post('pseudo');
+            $mdp = $this->input->post('pass');
+            $email = $this->input->post('email');
+    
+            $data = array(
+                'pseudo' => $pseudo,
+                'nom' => $nom,
+                'prenom' => $prenom,
+                'mdp' => $mdp,
+                'email' => $email
+            );
+    
+            $this->db->insert('users', $data);
+
+            $this->session->set_userdata('pseudo', $pseudo);
+            redirect('../index.php');
+    
+
+            $this->load->view('layout/header');
+            $this->load->view('connexion', $data);
+            $this->load->view('layout/footer');
+        }
+    }
+
     public function deconnexion() {
         $this->session->unset_userdata('pseudo'); 
         $this->session->sess_destroy(); 
diff --git a/codeigniter/application/views/connexion2.php b/codeigniter/application/views/connexion2.php
deleted file mode 100644
index dc92fbf..0000000
--- a/codeigniter/application/views/connexion2.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<h1>Se connecter</h1>
-<form action="authentifier" method="POST">
-    <label for="email">Email:</label>
-    <input type="email" id="email" name="email" required>
-    <label for="password">Mot de passe:</label>
-    <input type="password" id="password" name="password" required>
-    <button type="submit">Connexion</button>
-</form>
-
-<?php if(isset($error_msg)): ?>
-    <div class="error-message"><?= $error_msg ?></div>
-<?php endif; ?>
\ No newline at end of file
diff --git a/codeigniter/application/views/inscription2.php b/codeigniter/application/views/inscription2.php
deleted file mode 100644
index f7178e1..0000000
--- a/codeigniter/application/views/inscription2.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<h1>S'inscrire</h1>
-<form action="traitement" method="POST">
-    <label for="nom">Votre nom*</label>
-    <input type="text" id="nom" name="nom" placeholder="Entrez votre nom" required>
-
-    <label for="prenom">Votre prénom*</label>
-    <input type="text" id="prenom" name="prenom" placeholder="Entrez votre prénom" required>
-
-    <label for="pseudo">Votre pseudo*</label>
-    <input type="text" id="pseudo" name="pseudo" placeholder="Entrez votre pseudo" required>
-
-    <label for="email">Votre email*</label>
-    <input type="email" id="email" name="email" placeholder="Entrez votre adresse email" required>
-
-    <label for="pass">Votre mot de passe*</label>
-    <input type="password" id="pass" name="pass" placeholder="Entrez votre mdp" required>
-
-    <input type="submit" value="M'inscrire" name="ok">
-    
-</form>
-
-<?php if(isset($confirmation_message)): ?>
-    <div class="confirmation-message"><?= $confirmation_message ?></div>
-<?php endif; ?>
\ No newline at end of file
diff --git a/codeigniter/application/views/layout/header.php b/codeigniter/application/views/layout/header.php
index f66bcb2..adca933 100644
--- a/codeigniter/application/views/layout/header.php
+++ b/codeigniter/application/views/layout/header.php
@@ -17,22 +17,25 @@
 	<ul>
 	  <li><strong>Music APP</strong></li>
 	</ul>
-	<ul class="option">
-	  <li><?=anchor('albums','Albums');?></li>
-          <li><?=anchor('artistes','Artistes');?></li>
-              <li><?=anchor('playlist','Playlist');?></li>
+	<div class="options">
+     <ul>
+     <li class="bouton"><?=anchor('albums','Albums');?></li>
+          <li class="bouton"><?=anchor('artistes','Artistes');?></li>
+              <li class="bouton"><?=anchor('playlist','Playlist');?></li>
 <?php if ($this->session->userdata('pseudo')) : /* Vérifier si l'utilisateur est connecté */ ?>
               
-              <li class="deroulant"><a><?= $this->session->userdata('pseudo'); ?></a>
+                  <li class="deroulant"><a><?= $this->session->userdata('pseudo'); ?></a>
                   <ul class="sous">
      
-     <li class="menu"><a href="#"><?= anchor('deconnexion', 'Se déconnecter'); ?></a></li>
+     <li><a><?= anchor('profil', 'Profil'); ?></a></li>
+         <li><a><?= anchor('deconnexion', 'Se déconnecter'); ?></a></li>
          </ul>
          </li>
-        <?php else : ?>
-            <li><?= anchor('connexion', 'Se connecter'); ?></li>
-        <?php endif; ?>
-  </ul>
+<?php else : ?>
+         <li><?= anchor('connexion', 'Se connecter'); ?></li>
+<?php endif; ?>
+                </ul>
+      </div>
   </nav>
   </body>
 </html>
diff --git a/codeigniter/assets/style.css b/codeigniter/assets/style.css
index 7156934..9a83995 100644
--- a/codeigniter/assets/style.css
+++ b/codeigniter/assets/style.css
@@ -35,8 +35,17 @@ main.container {
 }
 
 
-.option {
+.options {
     margin-right : 20px!important;
+    width: 400px;
+    height: 73.5px;
+    
+}
+
+.bouton {
+    width: 25%;
+    text-align: center;
+    height: 73.5px;
 }
 
 .sous {
@@ -45,6 +54,15 @@ main.container {
     border: solid 1px black;
     background-color: #283d5d;
     position: absolute;
+    top :60px;
+    right: 13px;
+}
+
+
+.sous li{
+    float: none;
+    text-align: right;
+    width: 100%;
 }
 
 nav > ul li:hover .sous{

From b73c4e4526ab0c8ad0f4a70d452bc0e0776e5f39 Mon Sep 17 00:00:00 2001
From: keraudre <yann.keraudren@etu-upec.fr>
Date: Sun, 16 Jun 2024 02:41:12 +0200
Subject: [PATCH 6/7] ajout du bouton de tri sur certaine page

---
 .../application/controllers/Albums.php        | 13 +++-
 .../application/models/Model_music.php        | 13 ++++
 codeigniter/application/views/albums_list.php |  9 +++
 .../application/views/layout/header.php       | 20 +++---
 codeigniter/assets/style.css                  | 62 ++++++++++++-------
 5 files changed, 84 insertions(+), 33 deletions(-)

diff --git a/codeigniter/application/controllers/Albums.php b/codeigniter/application/controllers/Albums.php
index 6c22014..c903826 100644
--- a/codeigniter/application/controllers/Albums.php
+++ b/codeigniter/application/controllers/Albums.php
@@ -3,7 +3,8 @@ defined('BASEPATH') OR exit('No direct script access allowed');
 
 class Albums extends CI_Controller {
 
-    private $filter = 'default';
+    private $sort = 'Tri';
+
 
 	public function __construct(){
 		parent::__construct();
@@ -17,7 +18,7 @@ class Albums extends CI_Controller {
 
 		$albums = $this->model_music->getAlbums();
 		$this->load->view('layout/header');
-		$this->load->view('albums_list',['albums'=>$albums]);
+		$this->load->view('albums_list',['albums'=>$albums,'sort'=>$this->sort]);
 		$this->load->view('layout/footer');
 	}
 
@@ -27,5 +28,13 @@ class Albums extends CI_Controller {
         $this->load->view('album_info', ['tracks' => $tracks]);
         $this->load->view('layout/footer');
     }
+
+    public function tri(){
+        $Ctri = $this->input->get('Ctri');
+        $trie = $this->model_music->get_tri_Albums($Ctri);
+        $this->load->view('layout/header');
+		$this->load->view('albums_list',['albums'=>$trie, 'sort'=>$this->sort]);
+		$this->load->view('layout/footer');
+    }
 }
 
diff --git a/codeigniter/application/models/Model_music.php b/codeigniter/application/models/Model_music.php
index 0f19f4a..6f3ed79 100644
--- a/codeigniter/application/models/Model_music.php
+++ b/codeigniter/application/models/Model_music.php
@@ -44,4 +44,17 @@ class Model_music extends CI_Model {
         );
         return $query->result();
     }
+
+    public function get_tri_Albums($Ctri){
+        	$query = $this->db->query(
+			"SELECT album.name,album.id,year,artist.name as artistName, genre.name as genreName,jpeg 
+			FROM album 
+			JOIN artist ON album.artistid = artist.id
+			JOIN genre ON genre.id = album.genreid
+			JOIN cover ON cover.id = album.coverid
+			ORDER BY album.name $Ctri
+			"
+		);
+	return $query->result();
+	}
 }
diff --git a/codeigniter/application/views/albums_list.php b/codeigniter/application/views/albums_list.php
index 31ba141..cddd955 100644
--- a/codeigniter/application/views/albums_list.php
+++ b/codeigniter/application/views/albums_list.php
@@ -1,4 +1,13 @@
+
 <h5>Albums list</h5>
+    <ul class="tri"><h6 id ="tri"> <?php echo "$sort" ?> </h6>
+    <li class="sous_tri">
+     <ul><?=anchor('Albums/tri/?Ctri=ASC', 'Tri A-Z');?></ul>
+        <ul><?=anchor('Albums/tri/?Ctri=DESC', 'Tri Z-A');?></ul>
+    </li>
+    </ul>
+        
+        
 <section class="list">
 <?php
      
diff --git a/codeigniter/application/views/layout/header.php b/codeigniter/application/views/layout/header.php
index adca933..dda6178 100644
--- a/codeigniter/application/views/layout/header.php
+++ b/codeigniter/application/views/layout/header.php
@@ -17,22 +17,22 @@
 	<ul>
 	  <li><strong>Music APP</strong></li>
 	</ul>
-	<div class="options">
-     <ul>
-     <li class="bouton"><?=anchor('albums','Albums');?></li>
-          <li class="bouton"><?=anchor('artistes','Artistes');?></li>
-              <li class="bouton"><?=anchor('playlist','Playlist');?></li>
+	
+     <ul class="option">
+     <li><?=anchor('albums','Albums');?></li>
+          <li><?=anchor('artistes','Artistes');?></li>
+              <li><?=anchor('playlist','Playlist');?></li>
 <?php if ($this->session->userdata('pseudo')) : /* Vérifier si l'utilisateur est connecté */ ?>
               
                   <li class="deroulant"><a><?= $this->session->userdata('pseudo'); ?></a>
-                  <ul class="sous">
-     
-     <li><a><?= anchor('profil', 'Profil'); ?></a></li>
-         <li><a><?= anchor('deconnexion', 'Se déconnecter'); ?></a></li>
+                      <ul class="sous">
+
+     <li><?= anchor('profil', 'Profil'); ?></li>
+         <li><?=anchor('deconnexion', 'Se déconnecter'); ?></li>
          </ul>
          </li>
 <?php else : ?>
-         <li><?= anchor('connexion', 'Se connecter'); ?></li>
+         <li><?=anchor('connexion', 'Se connecter'); ?></li>
 <?php endif; ?>
                 </ul>
       </div>
diff --git a/codeigniter/assets/style.css b/codeigniter/assets/style.css
index 6662fb6..95ae073 100644
--- a/codeigniter/assets/style.css
+++ b/codeigniter/assets/style.css
@@ -37,47 +37,39 @@ main.container {
 
 .options {
     margin-right : 20px!important;
-    width: 400px;
-    height: 73.5px;
     
 }
 
-.bouton {
-    width: 25%;
-    text-align: center;
-    height: 73.5px;
-}
-
 .sous {
     display: none;
     border-radius: 5px;
     border: solid 1px black;
     background-color: #283d5d;
     position: absolute;
-    top :60px;
-    right: 13px;
+    top: 50px;
+    right: 12px;
+    text-align: center
 }
 
-
-.sous li{
-    float: none;
-    text-align: right;
-    width: 100%;
+.sous li {
+    display: block!important;
+    padding: 5px;
 }
 
-nav > ul li:hover .sous{
-    display: block ;
+nav > ul li:hover .sous {
+    display: block;
 }
 
 .deroulant a {
     text-decoration: none;
-    color:white;
+    color: white;
+    display: inline-block;
 }
 
 .deroulant > a::after {
-    content:"  ▼";
-    font-size: 15px;
-    
+    content: " ▼ ";
+    font-size: 17px;
+
 }
 
 .sous a:hover{
@@ -124,3 +116,31 @@ div.new {
     flex-shrink: 0;
     margin-left: 20px;
 }
+
+#tri {
+    text-align: right;
+}
+/* mise en forme du tri */
+
+
+/*.sous_tri {
+    display: none;
+    position: absolute;
+    text-align: right;
+    background-color: black;
+}
+
+.tri  {
+    color: #a4acba;
+    text-align: right;
+    display: inline-block;
+}
+
+.tri:hover sous_tri {
+    display: block;
+}
+
+
+.sous_tri a:hover{
+    color: #1399fc;
+}*/

From 1bd8d93ce58f04d7fc10d62db226dd012b1f7560 Mon Sep 17 00:00:00 2001
From: follea <thomas.follea@gmail.com>
Date: Mon, 17 Jun 2024 13:37:47 +0200
Subject: [PATCH 7/7] ajout recherche album

---
 .../application/controllers/Albums.php        | 28 +++++++++++++------
 .../application/models/Model_music.php        | 13 +++++++++
 codeigniter/application/views/albums_list.php | 28 ++++++++++++++-----
 codeigniter/assets/style.css                  | 28 +++++++++++++++++++
 4 files changed, 81 insertions(+), 16 deletions(-)

diff --git a/codeigniter/application/controllers/Albums.php b/codeigniter/application/controllers/Albums.php
index c903826..25a0fe9 100644
--- a/codeigniter/application/controllers/Albums.php
+++ b/codeigniter/application/controllers/Albums.php
@@ -14,13 +14,12 @@ class Albums extends CI_Controller {
 		$this->load->helper('form');
 	}
 	public function index(){
-
-
-		$albums = $this->model_music->getAlbums();
-		$this->load->view('layout/header');
-		$this->load->view('albums_list',['albums'=>$albums,'sort'=>$this->sort]);
-		$this->load->view('layout/footer');
-	}
+        $albums = $this->model_music->getAlbums();
+        $num_results = count($albums);
+        $this->load->view('layout/header');
+        $this->load->view('albums_list', ['albums' => $albums, 'sort' => $this->sort, 'num_results' => $num_results, 'is_search' => false]);
+        $this->load->view('layout/footer');
+    }
 
 	public function view($id){
         $tracks = $this->model_music->getTracksByAlbumId($id);
@@ -32,9 +31,20 @@ class Albums extends CI_Controller {
     public function tri(){
         $Ctri = $this->input->get('Ctri');
         $trie = $this->model_music->get_tri_Albums($Ctri);
+        $num_results = count($trie);
         $this->load->view('layout/header');
-		$this->load->view('albums_list',['albums'=>$trie, 'sort'=>$this->sort]);
-		$this->load->view('layout/footer');
+        $this->load->view('albums_list', ['albums' => $trie, 'sort' => $this->sort, 'num_results' => $num_results, 'is_search' => false]);
+        $this->load->view('layout/footer');
     }
+
+	public function search(){
+        $query = $this->input->get('query');
+        $albums = $this->model_music->searchAlbums($query);
+        $num_results = count($albums);
+        $this->load->view('layout/header');
+        $this->load->view('albums_list', ['albums' => $albums, 'sort' => $this->sort, 'num_results' => $num_results, 'is_search' => true]);
+        $this->load->view('layout/footer');
+    }
+	
 }
 
diff --git a/codeigniter/application/models/Model_music.php b/codeigniter/application/models/Model_music.php
index 6f3ed79..682b9be 100644
--- a/codeigniter/application/models/Model_music.php
+++ b/codeigniter/application/models/Model_music.php
@@ -57,4 +57,17 @@ class Model_music extends CI_Model {
 		);
 	return $query->result();
 	}
+
+	public function searchAlbums($query){
+        $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');
+        $this->db->like('album.name', $query);
+        $this->db->or_like('artist.name', $query);
+        $this->db->order_by('album.id', 'ASC');
+        $query = $this->db->get();
+        return $query->result();
+    }
 }
diff --git a/codeigniter/application/views/albums_list.php b/codeigniter/application/views/albums_list.php
index cddd955..b766535 100644
--- a/codeigniter/application/views/albums_list.php
+++ b/codeigniter/application/views/albums_list.php
@@ -1,12 +1,26 @@
-
 <h5>Albums list</h5>
-    <ul class="tri"><h6 id ="tri"> <?php echo "$sort" ?> </h6>
-    <li class="sous_tri">
-     <ul><?=anchor('Albums/tri/?Ctri=ASC', 'Tri A-Z');?></ul>
-        <ul><?=anchor('Albums/tri/?Ctri=DESC', 'Tri Z-A');?></ul>
-    </li>
+<div class="sorting-search">
+<form action="<?= site_url('Albums/tri'); ?>" method="get" class="tri-form">
+            <button type="submit" name="Ctri" value="ASC" class="tri-button">Tri A-Z</button>
+            <button type="submit" name="Ctri" value="DESC" class="tri-button">Tri Z-A</button>
+        </form>
     </ul>
-        
+    <form action="<?= site_url('Albums/search'); ?>" method="get" class="search-form">
+        <input type="text" name="query" placeholder="Chercher des albums" class="search-input">
+        <button type="submit" class="search-button">Rechercher</button>
+    </form>
+	
+	<?php if(isset($is_search) && $is_search): ?>
+        <form action="<?= site_url('Albums'); ?>" method="get" class="back-form">
+            <button type="submit" class="back-button">Retour à la liste complète</button>
+        </form>
+    <?php endif; ?>
+</div>
+
+
+<?php if(isset($is_search) && $is_search): ?>
+    <p>Nombre de résultats : <?php echo $num_results; ?></p>
+<?php endif; ?>
         
 <section class="list">
 <?php
diff --git a/codeigniter/assets/style.css b/codeigniter/assets/style.css
index 95ae073..7ceda3b 100644
--- a/codeigniter/assets/style.css
+++ b/codeigniter/assets/style.css
@@ -144,3 +144,31 @@ div.new {
 .sous_tri a:hover{
     color: #1399fc;
 }*/
+
+.sorting-search {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    margin-bottom: 20px;
+    width: 100%;
+}
+
+.tri-container {
+    display: flex;
+    align-items: center;
+}
+
+.search-container {
+    display: flex;
+    align-items: center;
+}
+
+.search-input {
+    width: 200px;
+    padding: 5px;
+    margin-right: 10px;
+}
+
+.back-form {
+    display: inline-block;
+}