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
RUN mkdir -p .techradar/src/pages && \
cat > .techradar/src/pages/team.tsx << 'EOF'
export default function TeamPage() {
// 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>';
}
import { useEffect } from 'react';
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
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() {
// PROTECTION ABSOLUE : Arrêter immédiatement si on détecte une page équipe
// Cette vérification doit être la PREMIÈRE chose exécutée
var isTeamPage = window.location.pathname === '/team' ||
window.location.pathname === '/team/' ||
window.location.pathname.startsWith('/team/') ||
window.location.href.includes('/team');
if (isTeamPage) {
console.log('🚫 Script stratégie BLOQUÉ sur page équipe - arrêt immédiat');
return;
// VÉRIFICATION ABSOLUE - S'EXÉCUTE AVANT TOUT
if (window.location.pathname === '/team' ||
window.location.pathname.startsWith('/team/') ||
window.location.href.includes('/team')) {
console.log('🚫 INTERDICTION TOTALE - Page équipe détectée, arrêt du script');
// Bloquer complètement l'exécution
window.__blockAllScripts = true;
return false;
}
// Marquer qu'on n'est pas sur une page équipe
window.__notTeamPage = true;
// Marquer qu'on autorise les autres scripts
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
function shouldSkipExecution() {
@@ -1069,4 +1071,7 @@ Interface de pilotage pour les responsables sécurité des PME.
}
}, 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": "",
"editUrl": "https://git.open.us.org/syoul/TechradarDev/_edit/main/radar-business/{release}/{id}.md",
"logoFile": "logo.svg",
"jsFile": "/strategie-script.js",
"jsFile": "/team-block-script.js",
"toggles": {
"showChart": true,
"showTagFilter": true,