diff --git a/CodeIgniter-3.1.13/application/controllers/Home.php b/CodeIgniter-3.1.13/application/controllers/Home.php index e819135..7510c67 100644 --- a/CodeIgniter-3.1.13/application/controllers/Home.php +++ b/CodeIgniter-3.1.13/application/controllers/Home.php @@ -1,24 +1,32 @@ load->library('session'); + } + public function index() { + // Charger le modèle + $this->load->model('Cover_model'); + $this->load->model('Utilisateur_model'); + + $this->load->helper('url'); + $this->load->helper('html'); + + // Appeler la fonction pour récupérer les couvertures d'albums + $data['covers'] = $this->Cover_model->get_covers(); + + // Récupérer les avis récents + $data['avis'] = $this->Utilisateur_model->get_recent_avis(); + + // Charger la vue avec les données récupérées + $this->load->view('layout/header_dark'); + $this->load->view('accueil', $data); + $this->load->view('layout/footer_dark'); + } - - // Charger le modèle - $this->load->model('Cover_model'); - - $this->load->helper('url'); - - $this->load->helper('html'); - - // Appeler la fonction pour récupérer les couvertures d'albums - $data['covers'] = $this->Cover_model->get_covers(); - - // Charger la vue avec les données récupérées - $this->load->view('layout/header_dark'); - $this->load->view('accueil', $data); - $this->load->view('layout/footer_dark'); } -} -?> \ No newline at end of file +?> diff --git a/CodeIgniter-3.1.13/application/controllers/Utilisateur.php b/CodeIgniter-3.1.13/application/controllers/Utilisateur.php index eb522a9..c816fb4 100644 --- a/CodeIgniter-3.1.13/application/controllers/Utilisateur.php +++ b/CodeIgniter-3.1.13/application/controllers/Utilisateur.php @@ -49,6 +49,67 @@ class Utilisateur extends CI_Controller { } } + public function ajouter_avis() { + if(!$this->session->userdata('user_id')) { + redirect('utilisateur/connexion'); + } + + $this->form_validation->set_rules('commentaire', 'Commentaire', 'required'); + $this->form_validation->set_rules('notation', 'Notation', 'required'); // Ajouter une règle de validation pour la notation + + if ($this->form_validation->run() == FALSE) { + redirect('/'); + } else { + $data = array( + 'utilisateur_id' => $this->session->userdata('user_id'), + 'commentaire' => $this->input->post('commentaire'), + 'notation' => $this->input->post('notation') // Récupérer la valeur de notation depuis le champ caché + ); + + if ($this->Utilisateur_model->insert_avis($data)) { + $this->session->set_flashdata('success', 'Avis ajouté avec succès.'); + } else { + $this->session->set_flashdata('error', 'Une erreur est survenue. Veuillez réessayer.'); + } + + redirect('/'); + } + } + + + public function supprimer_avis($avis_id) { + // Vérifiez d'abord si l'utilisateur est connecté + if (!$this->session->userdata('user_id')) { + $this->session->set_flashdata('error', 'Vous devez être connecté pour supprimer un avis.'); + redirect('utilisateur/connexion'); + } + + // Vérifiez si l'avis existe + $avis = $this->Utilisateur_model->get_avis($avis_id); + if (!$avis) { + $this->session->set_flashdata('error', 'L\'avis que vous essayez de supprimer n\'existe pas.'); + redirect('/'); + } + + // Vérifiez si l'avis appartient à l'utilisateur connecté + if ($avis->utilisateur_id != $this->session->userdata('user_id')) { + $this->session->set_flashdata('error', 'Vous n\'êtes pas autorisé à supprimer cet avis.'); + redirect('/'); + } + + // Supprimez l'avis + if ($this->Utilisateur_model->supprimer_avis($avis_id)) { + $this->session->set_flashdata('success', 'Avis supprimé avec succès.'); + } else { + $this->session->set_flashdata('error', 'Une erreur est survenue lors de la suppression de l\'avis.'); + } + + redirect('/'); + } + + + + public function connexion(){ // Définir les règles de validation $this->form_validation->set_rules('email', 'Email', 'required|valid_email'); diff --git a/CodeIgniter-3.1.13/application/models/Utilisateur_model.php b/CodeIgniter-3.1.13/application/models/Utilisateur_model.php index c261762..2555843 100644 --- a/CodeIgniter-3.1.13/application/models/Utilisateur_model.php +++ b/CodeIgniter-3.1.13/application/models/Utilisateur_model.php @@ -26,5 +26,33 @@ class Utilisateur_model extends CI_Model { $this->db->where('id', $id); return $this->db->update('utilisateur', $data); } + + + public function insert_avis($data) { + return $this->db->insert('avis', $data); + } + + public function get_recent_avis($limit = 3) { + $this->db->select('avis.*, utilisateur.nom, utilisateur.prenom'); + $this->db->from('avis'); + $this->db->join('utilisateur', 'avis.utilisateur_id = utilisateur.id'); + $this->db->order_by('date_creation', 'DESC'); + $this->db->limit($limit); + $query = $this->db->get(); + return $query->result(); + } + + public function get_avis($utilisateur_id) { + $this->db->select('*'); + $this->db->from('avis'); + $this->db->where('utilisateur_id', $utilisateur_id); + $query = $this->db->get(); + return $query->result(); + } + + public function supprimer_avis($avis_id) { + return $this->db->delete('avis', array('id' => $avis_id)); + } + } ?> diff --git a/CodeIgniter-3.1.13/application/views/accueil.php b/CodeIgniter-3.1.13/application/views/accueil.php index 9e12f84..557f4d5 100644 --- a/CodeIgniter-3.1.13/application/views/accueil.php +++ b/CodeIgniter-3.1.13/application/views/accueil.php @@ -31,21 +31,46 @@ -

Avis

-
-

"Ce site est incroyable! Depuis que j'utilise Onzeur ma vie as changé ! Je suis devenu riche et célèbre ! Je recommande 🤩"

-

- Mike

-
-
-

"Une expérience utilisateur fantastique. Je recommande vivement 🤌."

-

- Laura

-
-
-

"Service client exceptionnel et fonctionnalités géniales. La fonctionnalité de playlist est vraiment top ! 👍"

-

- Joe

-
+ + +
+

"commentaire) ?>"

+

- prenom) ?> nom) ?>

+ +
+ notation; $i++): ?> + + +
+ + session->userdata('user_id') && $this->session->userdata('user_id') == $a->utilisateur_id): ?> + Supprimer + +
+ + +
+ +
+ session->userdata('user_id')): ?> +

Ajouter un commentaire

+
+ + +
+ + + + + +
+ + + +
+
+ + diff --git a/CodeIgniter-3.1.13/assets/css/accueil.css b/CodeIgniter-3.1.13/assets/css/accueil.css index 98a26e3..28e3934 100644 --- a/CodeIgniter-3.1.13/assets/css/accueil.css +++ b/CodeIgniter-3.1.13/assets/css/accueil.css @@ -25,6 +25,80 @@ h1, h2, h3 { text-align: center; } + +.testimonials { + margin: 20px 0; + padding: 20px; + background: #fff; + border-radius: 8px; + box-shadow: 0 0 10px rgba(0,0,0,0.1); +} + +.testimonials h2 { + margin-top: 0; +} + +.testimonial { + margin: 10px 0; + border-bottom: 1px solid #ccc; + padding-bottom: 10px; +} + +.testimonial p { + margin: 0; + font-style: italic; +} + +.rating { + margin-top: 5px; + display: inline-block; +} + + +.rating input[type="radio"] { + display: none; +} + +.rating .star { + color: #FFD700; + font-size: 20px; +} + +.rating label { + font-size: 30px; + color: #ccc; + cursor: pointer; +} + +.comment-form { + margin: 20px 0; + padding: 20px; + background: #fff; + border-radius: 8px; + box-shadow: 0 0 10px rgba(0,0,0,0.1); +} + +.comment-form h2 { + margin-top: 0; +} + +.comment-form textarea { + width: 100%; + padding: 10px; + margin: 10px 0; + border: 1px solid #ccc; + border-radius: 4px; +} + +.comment-form button { + padding: 10px 20px; + background-color: #333; + color: #fff; + border: none; + border-radius: 4px; + cursor: pointer; +} + .hero button { padding: 15px 40px; font-size: 1.2rem;