function dms_serve_html($file) { header('Content-Type: text/html; charset=UTF-8'); header('X-Robots-Tag: index, follow'); http_response_code(200); $html = file_get_contents($file); // Détecter l'URL courante $uri = trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/'); $parts = array_values(array_filter(explode('/', $uri))); $slug = isset($parts[0]) ? $parts[0] : ''; $slug2 = isset($parts[1]) ? $parts[1] : ''; $schemas = dms_build_schemas($slug, $slug2); // Injecter juste avant if ($schemas) { $html = str_replace('', $schemas . '', $html); } echo $html; exit; } function dms_build_schemas($slug, $slug2) { $produits = ['fenetre-pvc','fenetre-aluminium','fenetre-bois','volets-roulants', 'volets-battants','porte-entree','porte-garage','pergola', 'store-banne','portail','vitrerie']; // ── BREADCRUMB ── $items = [['@type'=>'ListItem','position'=>1,'name'=>'Accueil','item'=>'https://dms-menuiseries.com/']]; $pos = 2; if (in_array($slug, $produits)) { $items[] = ['@type'=>'ListItem','position'=>$pos++, 'name'=>dms_label($slug), 'item'=>'https://dms-menuiseries.com/'.$slug.'/']; if ($slug2) { $items[] = ['@type'=>'ListItem','position'=>$pos++, 'name'=>dms_label($slug2), 'item'=>'https://dms-menuiseries.com/'.$slug.'/'.$slug2.'/']; } } elseif (strpos($slug,'menuisier-')===0 || strpos($slug,'menuiserie-')===0) { $items[] = ['@type'=>'ListItem','position'=>$pos++, 'name'=>dms_label($slug), 'item'=>'https://dms-menuiseries.com/'.$slug.'/']; } elseif (strpos($slug,'guide-')===0) { $items[] = ['@type'=>'ListItem','position'=>$pos++,'name'=>'Guides','item'=>'https://dms-menuiseries.com/guides/']; $items[] = ['@type'=>'ListItem','position'=>$pos++, 'name'=>dms_label($slug), 'item'=>'https://dms-menuiseries.com/'.$slug.'/']; } $breadcrumb = json_encode([ '@context'=>'https://schema.org', '@type'=>'BreadcrumbList', 'itemListElement'=>$items ], JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES); // ── FAQ ── $faqs = dms_faqs($slug, $slug2); $faqschema = ''; if ($faqs) { $questions = []; foreach ($faqs as $q => $a) { $questions[] = ['@type'=>'Question','name'=>$q, 'acceptedAnswer'=>['@type'=>'Answer','text'=>$a]]; } $faqschema = "\n" . json_encode([ '@context'=>'https://schema.org', '@type'=>'FAQPage', 'mainEntity'=>$questions ], JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES); } $out = "\n" . ''; if ($faqschema) $out .= "\n" . ''; return $out; } function dms_label($slug) { $map = [ 'fenetre-pvc'=>"Fenêtre PVC",'fenetre-aluminium'=>"Fenêtre Aluminium", 'fenetre-bois'=>"Fenêtre Bois",'volets-roulants'=>"Volets Roulants", 'volets-battants'=>"Volets Battants",'porte-entree'=>"Porte d'Entrée", 'porte-garage'=>"Porte de Garage",'pergola'=>"Pergola", 'store-banne'=>"Store Banne",'portail'=>"Portail",'vitrerie'=>"Vitrerie", 'menuiserie-isere'=>"Menuiserie Isère",'menuiserie-savoie'=>"Menuiserie Savoie", 'menuiserie-haute-savoie'=>"Menuiserie Haute-Savoie", ]; return isset($map[$slug]) ? $map[$slug] : ucwords(str_replace('-',' ',$slug)); } function dms_faqs($slug, $slug2) { $v = $slug2 ? ' à '.dms_label($slug2) : ' en Isère et Savoie'; if ($slug==='fenetre-pvc') return [ "Quel est le prix d'une fenêtre PVC{$v} ?" => "Entre 400 et 900€ pose incluse. DMS Menuiseries fabrique et pose sans sous-traitant.", "Quelle est la durée de vie d'une fenêtre PVC ?" => "30 à 40 ans avec un entretien minimal. Profilés français garantis 10 ans.", "Fenêtre PVC ou aluminium : que choisir ?" => "Le PVC est plus isolant et moins cher. L'aluminium est plus esthétique. Pour la montagne, le PVC offre le meilleur rapport qualité-prix.", ]; if ($slug==='fenetre-aluminium') return [ "Quel est le prix d'une fenêtre aluminium{$v} ?" => "Entre 600 et 1500€ pose incluse. Profilés à rupture de pont thermique, fabriqués en France.", "L'aluminium est-il isolant pour les hivers en montagne ?" => "Oui, avec des profilés RPT. DMS Menuiseries ne propose que des fenêtres alu RPT adaptées aux hivers rigoureux.", ]; if ($slug==='volets-roulants') return [ "Quel est le prix d'un volet roulant motorisé{$v} ?" => "Entre 500 et 1200€ pose incluse. Motorisations Somfy et BFT disponibles.", "Volet roulant solaire ou filaire ?" => "Le solaire ne nécessite pas de câblage, idéal en rénovation. Le filaire est plus puissant pour les grands volets.", "Peut-on motoriser un volet roulant existant ?" => "Oui, DMS Menuiseries peut motoriser vos volets existants. Devis gratuit sur place.", ]; if ($slug==='porte-entree') return [ "Quel est le prix d'une porte d'entrée{$v} ?" => "Entre 1200 et 3500€ pose incluse selon le matériau et le niveau de sécurité.", "Quelle porte d'entrée choisir pour la sécurité ?" => "Certification A2P BP1 minimum, serrure 3 points, vitrage sécurit feuilleté.", ]; if ($slug==='porte-garage') return [ "Quel est le prix d'une porte de garage{$v} ?" => "Entre 1500 et 3500€ pose incluse pour une sectionnelle motorisée.", "Porte sectionnelle ou basculante ?" => "La sectionnelle monte au plafond et libère l'espace devant. La basculante est moins chère.", ]; if ($slug==='pergola') return [ "Faut-il un permis pour une pergola{$v} ?" => "Déclaration préalable en dessous de 20 m², permis de construire au-delà.", "Quel est le prix d'une pergola bioclimatique{$v} ?" => "Entre 6000 et 15000€ selon dimensions et options. Sur mesure aluminium.", ]; if ($slug==='vitrerie') return [ "DMS Menuiseries intervient-il en urgence ?" => "Oui, pour tout vitrage cassé en Isère et Savoie. Appelez le 07 78 63 39 70.", "Quel est le prix d'un remplacement de vitre ?" => "Entre 150 et 500€ selon dimensions et type de vitrage. Devis sur place.", ]; if (strpos($slug,'menuisier-')===0 || strpos($slug,'menuiserie-')===0) { $ville = dms_label(str_replace(['menuisier-','menuiserie-'],'',$slug)); return [ "Comment choisir un menuisier à {$ville} ?" => "Vérifiez qu'il fabrique lui-même, sans sous-traitance, avec des avis vérifiés. DMS Menuiseries — 261 avis Google 4,9/5.", "DMS Menuiseries intervient-il à {$ville} ?" => "Oui, régulièrement. Devis gratuit sous 48h — 07 78 63 39 70.", "Quels sont les délais d'intervention à {$ville} ?" => "Rendez-vous sous 48-72h, pose sous 2 à 6 semaines après validation du devis.", ]; } return []; } Page not found - DMS Menuiseries

It looks like nothing was found at this location.