HomeController.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. /**
  3. * Classe HomeController
  4. *
  5. * Gère les actions liées à la page d'accueil.
  6. */
  7. if (!class_exists('HomeController')) {
  8. class HomeController
  9. {
  10. /**
  11. * Affiche la page d'accueil.
  12. */
  13. public static function index()
  14. {
  15. $data = [
  16. 'title' => 'Bienvenue dans l\'application',
  17. 'content' => 'Ceci est le contenu principal de la page d\'accueil.',
  18. 'loaded_map' => null,
  19. 'map_data' => null
  20. ];
  21. // Vérifier si une carte doit être chargée
  22. if (isset($_GET['load']) && is_numeric($_GET['load'])) {
  23. $mapId = (int) $_GET['load'];
  24. $map = MapModel::findMap($mapId);
  25. if ($map) {
  26. $data['loaded_map'] = $map;
  27. $data['map_data'] = [
  28. 'id' => $mapId,
  29. 'name' => $map->getName(),
  30. 'width' => $map->getWidth(),
  31. 'height' => $map->getHeight(),
  32. 'created_at' => $map->getCreatedAt(),
  33. 'updated_at' => $map->getUpdatedAt(),
  34. 'statistics' => $map->getStatistics()
  35. ];
  36. $data['title'] = $map->getName() . ' - Map Generator';
  37. }
  38. }
  39. Renderer::render('home', $data);
  40. }
  41. /**
  42. * Affiche le formulaire de création d'un nouveau projet.
  43. */
  44. public static function newProject()
  45. {
  46. $data = [
  47. 'title' => 'Nouveau projet - Map Generator',
  48. 'page' => 'new_project'
  49. ];
  50. Renderer::render('projects/new', $data);
  51. }
  52. /**
  53. * Affiche la liste des projets (cartes) disponibles.
  54. */
  55. public static function projects()
  56. {
  57. // Récupérer la liste des cartes depuis la base de données
  58. $maps = MapModel::paginate(1, 20)['data']; // Récupérer les 20 premières cartes
  59. // Récupérer les statistiques globales
  60. $stats = MapModel::getGlobalStats();
  61. $data = [
  62. 'title' => 'Mes projets - Map Generator',
  63. 'page' => 'projects',
  64. 'maps' => $maps,
  65. 'stats' => $stats
  66. ];
  67. Renderer::render('projects/index', $data);
  68. }
  69. }
  70. }