fix: approche ultra-agressive contre les pages équipe

- Nouveau script team-block-script.js chargé en premier (config-business.json)
- Bloqueur absolu qui empêche tout autre script sur /team
- Page team.tsx encore plus agressive (remplacement useEffect)
- Double protection dans strategie-script.js
- Script principal bloqué si __blockTeamPages=true

Cette approche à couches multiples devrait définitivement résoudre :
- Les deux liens équipe (1 seul)
- L'affichage radar au lieu des visualisations
This commit is contained in:
syoul
2025-12-09 12:47:17 +01:00
parent 13a8730692
commit a5ace8b0fa
4 changed files with 76 additions and 22 deletions

View File

@@ -98,14 +98,33 @@ RUN echo "📊 Comptage des fichiers .md dans .techradar/data/radar" && \
# La page Next.js pour le routing, le HTML statique pour garantir l'affichage # La page Next.js pour le routing, le HTML statique pour garantir l'affichage
RUN mkdir -p .techradar/src/pages && \ RUN mkdir -p .techradar/src/pages && \
cat > .techradar/src/pages/team.tsx << 'EOF' cat > .techradar/src/pages/team.tsx << 'EOF'
export default function TeamPage() { import { useEffect } from 'react';
// Version ultra-simple pour éviter les erreurs de compilation
if (typeof window !== 'undefined') {
// Remplacer immédiatement le contenu par l'iframe
document.body.innerHTML = '<iframe src="/team.html" style="width:100vw;height:100vh;border:none;margin:0;padding:0;position:fixed;top:0;left:0;z-index:9999;"></iframe>';
}
return null; // Ne rien rendre côté serveur export default function TeamPage() {
useEffect(() => {
// Remplacement AGRESSIF du contenu
console.log('🔄 TEAM PAGE: Remplacement du contenu par iframe');
// Supprimer tout contenu existant
document.body.innerHTML = '';
// Créer l'iframe
const iframe = document.createElement('iframe');
iframe.src = '/team.html';
iframe.style.cssText = 'width:100vw;height:100vh;border:none;margin:0;padding:0;position:fixed;top:0;left:0;z-index:9999;background:#1a4d3a;';
iframe.title = 'Équipe & Technologies';
// Ajouter l'iframe
document.body.appendChild(iframe);
// Bloquer tout autre chargement
window.__teamPageLoaded = true;
console.log('✅ TEAM PAGE: Iframe chargé');
}, []);
// Ne rien rendre côté serveur
return null;
} }
EOF EOF
RUN echo "✅ Page team.tsx créée (version ultra-simplifiée)" && \ RUN echo "✅ Page team.tsx créée (version ultra-simplifiée)" && \

View File

@@ -1,19 +1,21 @@
// Script pour la gestion des pages de stratégie // SCRIPT ULTRA-PROTECTEUR CONTRE LES PAGES ÉQUIPE
(function() { (function() {
// PROTECTION ABSOLUE : Arrêter immédiatement si on détecte une page équipe // VÉRIFICATION ABSOLUE - S'EXÉCUTE AVANT TOUT
// Cette vérification doit être la PREMIÈRE chose exécutée if (window.location.pathname === '/team' ||
var isTeamPage = window.location.pathname === '/team' ||
window.location.pathname === '/team/' ||
window.location.pathname.startsWith('/team/') || window.location.pathname.startsWith('/team/') ||
window.location.href.includes('/team'); window.location.href.includes('/team')) {
console.log('🚫 INTERDICTION TOTALE - Page équipe détectée, arrêt du script');
if (isTeamPage) { // Bloquer complètement l'exécution
console.log('🚫 Script stratégie BLOQUÉ sur page équipe - arrêt immédiat'); window.__blockAllScripts = true;
return; return false;
} }
// Marquer qu'on n'est pas sur une page équipe // Marquer qu'on autorise les autres scripts
window.__notTeamPage = true; window.__allowScripts = true;
})();
// Script pour la gestion des pages de stratégie UNIQUEMENT SI AUTORISÉ
if (!window.__blockAllScripts && !window.__blockTeamPages) {
// PROTECTION : Ne pas interférer avec les pages Next.js // PROTECTION : Ne pas interférer avec les pages Next.js
function shouldSkipExecution() { function shouldSkipExecution() {
@@ -1069,4 +1071,7 @@ Interface de pilotage pour les responsables sécurité des PME.
} }
}, 5000); }, 5000);
} }
})(); }
// Fermeture du bloc conditionnel - script s'exécute uniquement si pas sur page équipe
}

View File

@@ -0,0 +1,30 @@
// SCRIPT ANTI-ÉQUIPE - CHARGÉ EN PREMIER
(function() {
'use strict';
// BLOQUER ABSOLUMENT TOUTES LES PAGES ÉQUIPE
if (window.location.pathname === '/team' ||
window.location.pathname === '/team/' ||
window.location.pathname.startsWith('/team/') ||
window.location.href.includes('/team')) {
console.log('🚫 BLOQUEUR ÉQUIPE ACTIF - Page équipe détectée');
// Empêcher tout autre script de s'exécuter
window.__blockTeamPages = true;
// Bloquer immédiatement tout chargement de script
var originalAppendChild = Element.prototype.appendChild;
Element.prototype.appendChild = function(child) {
if (child.tagName === 'SCRIPT' && child.src && child.src.includes('strategie-script.js')) {
console.log('🚫 Script strategie-script.js BLOQUÉ sur page équipe');
return child; // Ne pas l'ajouter
}
return originalAppendChild.call(this, child);
};
return; // Arrêt immédiat
}
console.log('✅ Page normale détectée - scripts autorisés');
})();

View File

@@ -3,7 +3,7 @@
"baseUrl": "", "baseUrl": "",
"editUrl": "https://git.open.us.org/syoul/TechradarDev/_edit/main/radar-business/{release}/{id}.md", "editUrl": "https://git.open.us.org/syoul/TechradarDev/_edit/main/radar-business/{release}/{id}.md",
"logoFile": "logo.svg", "logoFile": "logo.svg",
"jsFile": "/strategie-script.js", "jsFile": "/team-block-script.js",
"toggles": { "toggles": {
"showChart": true, "showChart": true,
"showTagFilter": true, "showTagFilter": true,