From c84533e60152d8c39c805ecc948cd72ef8349d34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Tue, 14 Dec 2021 18:26:28 +0100 Subject: [PATCH] =?UTF-8?q?banni=C3=A8re=20encodage=20en=2064?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/module/theme/theme.php | 49 +++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php index fc613bdc..8c647c82 100644 --- a/core/module/theme/theme.php +++ b/core/module/theme/theme.php @@ -440,7 +440,37 @@ class theme extends common { // Modification des URL des images dans la bannière perso $featureContent = $this->getInput('themeHeaderText', null); $featureContent = str_replace(helper::baseUrl(false,false), './', $featureContent); - // Si une image est positionnée, l'arrière en transparent. + + // Encodage des images en base64 + // Identifier les images + preg_match_all('/]+>/i',$featureContent, $results); + foreach($results[0] as $value) { + // Lire le contenu XML + $sx = simplexml_load_string($value); + // Elément à remplacer + $src = 'src="' . $sx[0]['src'] . '"'; + // Elément encodé en base64 + $base64 = 'src="data:image/'. pathinfo($sx[0]['src'],PATHINFO_EXTENSION) . ';base64,'. base64_encode(file_get_contents($sx[0]['src'])).'"'; + // Effectuer le remplacement dans la chaine + $featureContent = str_replace($src, $base64, $featureContent); + } + + // Encodage des video en base64 + // Identifier les images + preg_match_all('/]+>/i',$featureContent, $results); + foreach($results[0] as $value) { + // Lire le contenu XML + $sx = simplexml_load_string($value); + // Elément à remplacer + $src = 'src="' . $sx[0]['src'] . '"'; + // Elément encodé en base64 + $base64 = 'src="data:source/'. pathinfo($sx[0]['src'],PATHINFO_EXTENSION) . ';base64,'. base64_encode(file_get_contents($sx[0]['src'])).'"'; + // Effectuer le remplacement dans la chaine + $featureContent = str_replace($src, $base64, $featureContent); + } + + + // Sauvegarder $this->setData(['theme', 'header', [ 'backgroundColor' => $this->getInput('themeHeaderBackgroundColor'), 'font' => $this->getInput('themeHeaderFont'), @@ -806,23 +836,6 @@ class theme extends common { self::FILE_DIR.'source/'.$this->getData(['theme','header','image']) ); } - // Extraction des images de la bannière personnalisée - $images=[]; - $ii=0; - if( $this->getData(['theme','header','feature'])=== 'feature') { - $tab = str_word_count($this->getData(['theme','header','featureContent']), 1, './' ); - foreach( $tab as $key=>$value ){ - if( $value ==='src'){ - $images[$ii] = $tab [$key + 1]; - $ii++; - } - } - // ajout des images dans le zip - foreach( $images as $key=>$value){ - $value = str_replace( './site', 'site' , $value); - $zip->addFile( $value, $value ); - } - } break; } $ret = $zip->close();