footer.php 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <footer id="global-footer" class="bg-dark text-center text-lg-start" style="position: fixed; bottom: 0; left: 250px; right: 0; z-index: 1000;">
  2. <div class="text-center p-2" style="background-color: rgba(255, 255, 255, 0.1); color: white;">
  3. © 2025 Map Generator - Prêt à créer des cartes exceptionnelles
  4. </div>
  5. </footer>
  6. <?php AssetLoader::loadJS(['/assets/jquery.min.js', '/assets/bootstrap.min.js']); ?>
  7. <script>
  8. // Gestion des outils de la sidebar
  9. $(document).ready(function() {
  10. // Gestion des outils actifs
  11. $('.sidebar .nav-link').click(function(e) {
  12. e.preventDefault();
  13. $('.sidebar .nav-link').removeClass('active');
  14. $(this).addClass('active');
  15. // Ici vous pouvez ajouter la logique pour chaque outil
  16. const toolId = $(this).attr('id');
  17. console.log('Outil sélectionné:', toolId);
  18. });
  19. // Gestion des couleurs avec sélection visuelle
  20. $('.color-swatch').click(function() {
  21. $('.color-swatch').removeClass('selected');
  22. $(this).addClass('selected');
  23. const color = $(this).css('background-color');
  24. $('#customColor').val(rgbToHex(color));
  25. console.log('Couleur sélectionnée:', color);
  26. });
  27. $('#customColor').change(function() {
  28. $('.color-swatch').removeClass('selected');
  29. console.log('Couleur personnalisée:', $(this).val());
  30. });
  31. // Gestion des calques avec interactions
  32. $(document).on('click', '.layer-item .bi-eye', function() {
  33. $(this).toggleClass('text-muted');
  34. console.log('Visibilité du calque toggled');
  35. });
  36. $(document).on('click', '.layer-item .bi-trash', function() {
  37. if (confirm('Supprimer ce calque ?')) {
  38. $(this).closest('.layer-item').remove();
  39. console.log('Calque supprimé');
  40. }
  41. });
  42. // Gestion du zoom avec indicateur
  43. let zoomLevel = 100;
  44. $('#zoomIn').click(function() {
  45. zoomLevel = Math.min(zoomLevel + 25, 500);
  46. console.log('Zoom:', zoomLevel + '%');
  47. updateZoomDisplay();
  48. });
  49. $('#zoomOut').click(function() {
  50. zoomLevel = Math.max(zoomLevel - 25, 25);
  51. console.log('Zoom:', zoomLevel + '%');
  52. updateZoomDisplay();
  53. });
  54. function updateZoomDisplay() {
  55. // Ici vous pouvez ajouter la logique pour appliquer le zoom au canvas
  56. $('.canvas-container').css('transform', `scale(${zoomLevel/100})`);
  57. }
  58. // Gestion des actions d'annulation
  59. let history = [];
  60. let historyIndex = -1;
  61. $('#undoBtn').click(function() {
  62. if (historyIndex > 0) {
  63. historyIndex--;
  64. console.log('Annulé - Index:', historyIndex);
  65. }
  66. });
  67. $('#redoBtn').click(function() {
  68. if (historyIndex < history.length - 1) {
  69. historyIndex++;
  70. console.log('Rétabli - Index:', historyIndex);
  71. }
  72. });
  73. // Gestion du début du dessin
  74. $('#startDrawing').click(function() {
  75. $('.canvas-container').html(`
  76. <canvas id="mapCanvas" width="800" height="600" style="border: 1px solid #ccc; cursor: crosshair;"></canvas>
  77. <div class="mt-2 text-muted small">
  78. Utilisez les outils de la barre latérale pour dessiner sur votre carte
  79. </div>
  80. `);
  81. // Initialisation basique du canvas
  82. const canvas = document.getElementById('mapCanvas');
  83. const ctx = canvas.getContext('2d');
  84. ctx.fillStyle = 'white';
  85. ctx.fillRect(0, 0, canvas.width, canvas.height);
  86. console.log('Canvas initialisé');
  87. });
  88. // Gestion des boutons d'aperçu et publication
  89. $('#previewBtn').click(function() {
  90. alert('Mode aperçu activé - Les outils sont désactivés');
  91. });
  92. $('#publishBtn').click(function() {
  93. alert('Carte publiée avec succès !');
  94. });
  95. });
  96. // Fonction utilitaire pour convertir RGB en hex
  97. function rgbToHex(rgb) {
  98. const result = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/);
  99. if (!result) return rgb;
  100. return "#" +
  101. ("0" + parseInt(result[1], 10).toString(16)).slice(-2) +
  102. ("0" + parseInt(result[2], 10).toString(16)).slice(-2) +
  103. ("0" + parseInt(result[3], 10).toString(16)).slice(-2);
  104. }
  105. </script>
  106. </body>
  107. </html>