export images de la bannière

This commit is contained in:
Fred Tempez 2021-12-15 19:03:52 +01:00
parent 1b747ec1d0
commit 4ae440ccd9
1 changed files with 25 additions and 5 deletions

View File

@ -443,6 +443,7 @@ class theme extends common {
// Encodage des images en base64 // Encodage des images en base64
// Identifier les images // Identifier les images
/*
preg_match_all('/<img[^>]+>/i',$featureContent, $results); preg_match_all('/<img[^>]+>/i',$featureContent, $results);
foreach($results[0] as $value) { foreach($results[0] as $value) {
// Lire le contenu XML // Lire le contenu XML
@ -455,8 +456,7 @@ class theme extends common {
$featureContent = str_replace($src, $base64, $featureContent); $featureContent = str_replace($src, $base64, $featureContent);
} }
// Encodage des video en base64 // Encodage des videos en base64
// Identifier les images
preg_match_all('/<source[^>]+>/i',$featureContent, $results); preg_match_all('/<source[^>]+>/i',$featureContent, $results);
foreach($results[0] as $value) { foreach($results[0] as $value) {
// Lire le contenu XML // Lire le contenu XML
@ -467,8 +467,18 @@ class theme extends common {
$base64 = 'src="data:source/'. pathinfo($sx[0]['src'],PATHINFO_EXTENSION) . ';base64,'. base64_encode(file_get_contents($sx[0]['src'])).'"'; $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 // Effectuer le remplacement dans la chaine
$featureContent = str_replace($src, $base64, $featureContent); $featureContent = str_replace($src, $base64, $featureContent);
} }*/
/**
* Stocker les images incluses dans la bannière perso dans un tableau
*/
preg_match_all('/<img[^>]+>/i',$featureContent, $results);
foreach($results[0] as $value) {
// Lire le contenu XML
$sx = simplexml_load_string($value);
// Elément à remplacer
$files [] = str_replace('./site/file/source/','',(string) $sx[0]['src']);
}
// Sauvegarder // Sauvegarder
$this->setData(['theme', 'header', [ $this->setData(['theme', 'header', [
@ -491,7 +501,8 @@ class theme extends common {
'imageContainer' => $this->getInput('themeHeaderImageContainer'), 'imageContainer' => $this->getInput('themeHeaderImageContainer'),
'tinyHidden' => $this->getInput('themeHeaderTinyHidden', helper::FILTER_BOOLEAN), 'tinyHidden' => $this->getInput('themeHeaderTinyHidden', helper::FILTER_BOOLEAN),
'feature' => $this->getInput('themeHeaderFeature'), 'feature' => $this->getInput('themeHeaderFeature'),
'featureContent' => $featureContent 'featureContent' => $featureContent,
'featureFiles' => $files
]]); ]]);
// Modification de la position du menu selon la position de la bannière // Modification de la position du menu selon la position de la bannière
if ( $this->getData(['theme','header','position']) == 'site' ) if ( $this->getData(['theme','header','position']) == 'site' )
@ -809,7 +820,7 @@ class theme extends common {
} }
/** /**
* construction du zip * construction du zip Fonction appelée par export() et save()
* @param string $modele theme ou admin * @param string $modele theme ou admin
*/ */
private function zipTheme($modele) { private function zipTheme($modele) {
@ -826,16 +837,25 @@ class theme extends common {
$zip->addFile(self::DATA_DIR.'theme.json',self::DATA_DIR.'theme.json'); $zip->addFile(self::DATA_DIR.'theme.json',self::DATA_DIR.'theme.json');
$zip->addFile(self::DATA_DIR.'theme.css',self::DATA_DIR.'theme.css'); $zip->addFile(self::DATA_DIR.'theme.css',self::DATA_DIR.'theme.css');
$zip->addFile(self::DATA_DIR.'custom.css',self::DATA_DIR.'custom.css'); $zip->addFile(self::DATA_DIR.'custom.css',self::DATA_DIR.'custom.css');
// Traite l'image dans le body
if ($this->getData(['theme','body','image']) !== '' ) { if ($this->getData(['theme','body','image']) !== '' ) {
$zip->addFile(self::FILE_DIR.'source/'.$this->getData(['theme','body','image']), $zip->addFile(self::FILE_DIR.'source/'.$this->getData(['theme','body','image']),
self::FILE_DIR.'source/'.$this->getData(['theme','body','image']) self::FILE_DIR.'source/'.$this->getData(['theme','body','image'])
); );
} }
// Traite l'image dans le header
if ($this->getData(['theme','header','image']) !== '' ) { if ($this->getData(['theme','header','image']) !== '' ) {
$zip->addFile(self::FILE_DIR.'source/'.$this->getData(['theme','header','image']), $zip->addFile(self::FILE_DIR.'source/'.$this->getData(['theme','header','image']),
self::FILE_DIR.'source/'.$this->getData(['theme','header','image']) self::FILE_DIR.'source/'.$this->getData(['theme','header','image'])
); );
} }
// Traite les images du header perso
if (!empty($this->getData(['theme','header','featureFiles'])) ) {
foreach($this->getData(['theme','header','featureFiles']) as $value) {
$zip->addFile(self::FILE_DIR . 'source/' . $value,
self::FILE_DIR . 'source/' . $value );
}
}
break; break;
} }
$ret = $zip->close(); $ret = $zip->close();