From 3ae04250f09310fa0b07037c213b070912d413c8 Mon Sep 17 00:00:00 2001 From: Tajeddine Date: Wed, 3 Jun 2026 17:33:56 +0200 Subject: [PATCH] Vues affichages des listes par categorie/genre et fiche detaillee des jeux et creation de la page detail du jeu avec jointures gauches pour le developpeur et le poster --- .../application/config/config.php | 2 +- .../application/config/routes.php | 2 +- .../application/controllers/Category.php | 29 +++++++++ .../application/controllers/Game.php | 24 ++++++++ .../application/controllers/Genre.php | 28 +++++++++ .../application/controllers/Home.php | 18 ++++++ .../application/models/Category_model.php | 19 ++++++ .../application/models/Game_model.php | 61 +++++++++++++++++++ .../application/models/Genre_model.php | 18 ++++++ .../application/views/game_detail_view.php | 39 ++++++++++++ .../application/views/games_list_view.php | 29 +++++++++ .../views/genre_games_list_view.php | 29 +++++++++ .../application/views/home_view.php | 40 ++++++++++++ 13 files changed, 336 insertions(+), 2 deletions(-) create mode 100644 codeigniter-develop/application/controllers/Category.php create mode 100644 codeigniter-develop/application/controllers/Game.php create mode 100644 codeigniter-develop/application/controllers/Genre.php create mode 100644 codeigniter-develop/application/controllers/Home.php create mode 100644 codeigniter-develop/application/models/Category_model.php create mode 100644 codeigniter-develop/application/models/Game_model.php create mode 100644 codeigniter-develop/application/models/Genre_model.php create mode 100644 codeigniter-develop/application/views/game_detail_view.php create mode 100644 codeigniter-develop/application/views/games_list_view.php create mode 100644 codeigniter-develop/application/views/genre_games_list_view.php create mode 100644 codeigniter-develop/application/views/home_view.php diff --git a/codeigniter-develop/application/config/config.php b/codeigniter-develop/application/config/config.php index eeb2551..11d76cf 100644 --- a/codeigniter-develop/application/config/config.php +++ b/codeigniter-develop/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/~doucoure/sae_r301_gr12/'; +$config['base_url'] = 'https://dwarves.iut-fbleau.fr/~doucoure/sae_r301_gr12/codeigniter-develop/'; /* |-------------------------------------------------------------------------- diff --git a/codeigniter-develop/application/config/routes.php b/codeigniter-develop/application/config/routes.php index 4c70d92..98c68f9 100644 --- a/codeigniter-develop/application/config/routes.php +++ b/codeigniter-develop/application/config/routes.php @@ -49,6 +49,6 @@ defined('BASEPATH') OR exit('No direct script access allowed'); | Examples: my-controller/index -> my_controller/index | my-controller/my-method -> my_controller/my_method */ -$route['default_controller'] = 'welcome'; +$route['default_controller'] = 'home'; $route['404_override'] = ''; $route['translate_uri_dashes'] = FALSE; diff --git a/codeigniter-develop/application/controllers/Category.php b/codeigniter-develop/application/controllers/Category.php new file mode 100644 index 0000000..476d452 --- /dev/null +++ b/codeigniter-develop/application/controllers/Category.php @@ -0,0 +1,29 @@ +load->model('Game_model'); + $this->load->model('Category_model'); + + // 2. Récupérer les infos de la catégorie pour afficher son nom + $this->db->where('categoryId', $id); + $data['category'] = $this->db->get('category')->row_array(); + + if (empty($data['category'])) { + show_404(); + } + + // 3. Récupérer tous les jeux de cette catégorie + $data['games'] = $this->Game_model->get_by_category($id); + + // 4. Envoyer le tout à une nouvelle vue + $this->load->view('games_list_view', $data); + } +} \ No newline at end of file diff --git a/codeigniter-develop/application/controllers/Game.php b/codeigniter-develop/application/controllers/Game.php new file mode 100644 index 0000000..2341cb1 --- /dev/null +++ b/codeigniter-develop/application/controllers/Game.php @@ -0,0 +1,24 @@ +load->model('Game_model'); + + // 2. Récupérer les données du jeu cible + $data['game'] = $this->Game_model->get_by_id($id); + + if (empty($data['game'])) { + show_404(); + } + + // 3. Charger la vue de détail en lui poussant les données + $this->load->view('game_detail_view', $data); + } +} \ No newline at end of file diff --git a/codeigniter-develop/application/controllers/Genre.php b/codeigniter-develop/application/controllers/Genre.php new file mode 100644 index 0000000..ff03ae5 --- /dev/null +++ b/codeigniter-develop/application/controllers/Genre.php @@ -0,0 +1,28 @@ +load->model('Game_model'); + + // 2. Récupérer les informations du genre pour afficher son nom + $this->db->where('genreId', $id); + $data['genre'] = $this->db->get('genre')->row_array(); + + if (empty($data['genre'])) { + show_404(); + } + + // 3. Récupérer tous les jeux liés à ce genre + $data['games'] = $this->Game_model->get_by_genre($id); + + // 4. Envoyer les données à la vue + $this->load->view('genre_games_list_view', $data); + } +} \ No newline at end of file diff --git a/codeigniter-develop/application/controllers/Home.php b/codeigniter-develop/application/controllers/Home.php new file mode 100644 index 0000000..3bb31fe --- /dev/null +++ b/codeigniter-develop/application/controllers/Home.php @@ -0,0 +1,18 @@ +load->model('Category_model'); + $this->load->model('Genre_model'); + + // 2. Récupérer les données depuis les modèles + $data['categories'] = $this->Category_model->get_all(); + $data['genres'] = $this->Genre_model->get_all(); + + // 3. Charger la vue en lui passant les données + $this->load->view('home_view', $data); + } +} \ No newline at end of file diff --git a/codeigniter-develop/application/models/Category_model.php b/codeigniter-develop/application/models/Category_model.php new file mode 100644 index 0000000..8af2c1f --- /dev/null +++ b/codeigniter-develop/application/models/Category_model.php @@ -0,0 +1,19 @@ +load->database(); + } + + /** + * Récupère toutes les catégories de la base de données + */ + public function get_all() { + $query = $this->db->get('category'); + + return $query->result_array(); + } +} \ No newline at end of file diff --git a/codeigniter-develop/application/models/Game_model.php b/codeigniter-develop/application/models/Game_model.php new file mode 100644 index 0000000..13b9ec9 --- /dev/null +++ b/codeigniter-develop/application/models/Game_model.php @@ -0,0 +1,61 @@ +load->database(); + } + + /** + * Récupère les jeux appartenant à une catégorie spécifique + */ + public function get_by_category($category_id) { + $this->db->select('game.*'); + $this->db->from('game'); + + $this->db->join('game_category', 'game_category.gameId = game.gameId'); + + $this->db->where('game_category.categoryId', $category_id); + + $query = $this->db->get(); + return $query->result_array(); + } + + /** + * Récupère les jeux appartenant à un genre spécifique + */ + public function get_by_genre($genre_id) { + $this->db->select('game.*'); + $this->db->from('game'); + + $this->db->join('game_genre', 'game_genre.gameId = game.gameId'); + + $this->db->where('game_genre.genreId', $genre_id); + + $query = $this->db->get(); + return $query->result_array(); + } + + /** + * Récupère les détails complets d'un jeu (avec développeur et poster) + */ + public function get_by_id($game_id) { + + $this->db->select('game.*, developer.name as developer_name, poster.url as poster_url'); + $this->db->from('game'); + + $this->db->join('developer', 'developer.developerId = game.developerId', 'left'); + + $this->db->join('poster', 'poster.posterId = game.posterId', 'left'); + + $this->db->where('game.gameId', $game_id); + + $query = $this->db->get(); + + return $query->row_array(); + } + +} + diff --git a/codeigniter-develop/application/models/Genre_model.php b/codeigniter-develop/application/models/Genre_model.php new file mode 100644 index 0000000..5d206ad --- /dev/null +++ b/codeigniter-develop/application/models/Genre_model.php @@ -0,0 +1,18 @@ +load->database(); + } + + /** + * Récupère tous les genres de la base de données + */ + public function get_all() { + $query = $this->db->get('genre'); + return $query->result_array(); + } +} \ No newline at end of file diff --git a/codeigniter-develop/application/views/game_detail_view.php b/codeigniter-develop/application/views/game_detail_view.php new file mode 100644 index 0000000..ddab76c --- /dev/null +++ b/codeigniter-develop/application/views/game_detail_view.php @@ -0,0 +1,39 @@ + + + + + <?php echo html_escape($game['title']); ?> - Détails + + + +

← Retour à l'accueil

+ +
+ +
+ + Jaquette de <?php echo html_escape($game['title']); ?> + +
+ Aucune image
disponible
+
+ +
+ +
+

+
    +
  • Année de sortie :
  • +
  • Développeur : + +
  • +
+ +
+

Espace administration (Éditer / Supprimer)

+
+ +
+ + + \ No newline at end of file diff --git a/codeigniter-develop/application/views/games_list_view.php b/codeigniter-develop/application/views/games_list_view.php new file mode 100644 index 0000000..901bdbe --- /dev/null +++ b/codeigniter-develop/application/views/games_list_view.php @@ -0,0 +1,29 @@ + + + + + Jeux de la catégorie <?php echo html_escape($category['name']); ?> + + + +

← Retour à l'accueil

+ +

Jeux dans la catégorie : ""

+ + +

Aucun jeu trouvé dans cette catégorie pour le moment.

+ + + + + + \ No newline at end of file diff --git a/codeigniter-develop/application/views/genre_games_list_view.php b/codeigniter-develop/application/views/genre_games_list_view.php new file mode 100644 index 0000000..036bff6 --- /dev/null +++ b/codeigniter-develop/application/views/genre_games_list_view.php @@ -0,0 +1,29 @@ + + + + + Jeux du genre <?php echo html_escape($genre['name']); ?> + + + +

← Retour à l'accueil

+ +

Jeux du genre : ""

+ + +

Aucun jeu trouvé pour ce genre pour le moment.

+ + + + + + \ No newline at end of file diff --git a/codeigniter-develop/application/views/home_view.php b/codeigniter-develop/application/views/home_view.php new file mode 100644 index 0000000..bd36d7a --- /dev/null +++ b/codeigniter-develop/application/views/home_view.php @@ -0,0 +1,40 @@ + + + + + Univers Jeux Vidéo - Accueil + + + +

Bienvenue sur l'application Jeux Vidéo

+ +
+
+

Nos Catégories

+ +
+ +
+

Nos Genres

+ +
+
+ + + \ No newline at end of file