' . PHP_EOL; } } public static function loadJS(array $files): void { foreach ($files as $file) { echo '' . PHP_EOL; } } /** * Charge les scripts spécifiques à une page en fonction des données passées au renderer. * Attendu: $data est généralement $GLOBALS['view_data'] (tableau) et peut contenir 'page' et 'loaded_map'. */ public static function loadPageScripts(array $data = []): void { $mapping = [ 'projects' => '/assets/js/pages/projects.js', 'new_project' => '/assets/js/pages/new-project.js', // 'home' ne charge pas automatiquement l'éditeur sauf si une carte est chargée ]; $toLoad = []; if (!empty($data['page']) && isset($mapping[$data['page']])) { $toLoad[] = $mapping[$data['page']]; } // Cas particulier: page home avec map chargée (map editor) if (!empty($data['page']) && $data['page'] === 'home' && !empty($data['loaded_map'])) { $toLoad[] = '/assets/js/editor/map-editor.js'; } // Eviter les doublons $toLoad = array_values(array_unique($toLoad)); self::loadJS($toLoad); } } }