Changeset 102888 in spip-zone for _plugins_/foundation_6/trunk
- Timestamp:
- Feb 16, 2017, 4:48:54 PM (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/foundation_6/trunk/foundation_6_fonctions.php
r102593 r102888 24 24 */ 25 25 function filtre_responsive_embed_dist($texte) { 26 include_spip('inc/foundation'); 27 // On détecte toute les iFrames et on les rends responsives. 28 return preg_replace_callback('%<iframe(.+)></iframe>%s', 'responsive', $texte); 26 27 if (!empty($texte)) { 28 $dom = new DomDocument; 29 30 // Charger le texte de l'article dans DOMDocument 31 $dom->LoadHTML($texte, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD | LIBXML_NOENT); 32 33 // Récupérer les iframes du document 34 $iframes = $dom->getElementsByTagName('iframe'); 35 36 // Créer la div qui contiendra l'iframe et lui ajouter les class 37 // foundation 38 $div = $dom->createElement('div'); 39 $div->setAttribute('class', 'responsive-embed flex-video'); 40 41 // On boucle sur toutes les iframes 42 foreach ($iframes as $iframe) { 43 // Faire une copie de la div responsive 44 $div_clone = $div->cloneNode(); 45 46 // Récupérer la largeur et la hauteur définie dans l'iFrame 47 $height = $iframe->getAttribute('height'); 48 $width = $iframe->getAttribute('width'); 49 50 // Définir s'il faut ajouter la class widescreen ou non 51 if ($height and $width) { 52 $ratio = intval($width)/intval($height); 53 $ratio_4_3 = 4/3; 54 55 if ($ratio > $ratio_4_3) { 56 $div_clone->setAttribute('class', 'responsive-embed flex-video widescreen'); 57 } 58 } 59 60 // Injecter la div à la place de l'iframe 61 $iframe->parentNode->replaceChild($div_clone, $iframe); 62 // Injecter l'iframe dans le div 63 $div_clone->appendChild($iframe); 64 } 65 66 return $dom->saveHTML(); 67 } 68 69 return $texte; 29 70 } 30 71
Note: See TracChangeset
for help on using the changeset viewer.