// Font
$this->sassVariables['font'] = $this->_font($this->theme->font);
// Colors
- $this->sassVariables['accent-color']=$this->theme->mainColor;
+ $this->sassVariables['accent-color'] = $this->theme->mainColor;
$this->sassVariables['neutral-color'] = $this->theme->neutralColor;
$this->sassVariables['ok-color'] = $this->theme->okColor;
$this->sassVariables['nok-color'] = $this->theme->nokColor;
// Main background
$this->sassVariables['background-color'] = Color::colorToCSS($this->theme->backgroundColor);
- $this->sassVariables['background-custom'] = $this->theme->backgroundCustom ? 'true' : 'false';
- $this->data->set('mainBackground', '');
- $this->data->set('mainBackgroundMobile', '');
+ $this->_addBackgrounds('background');
+ $this->_addBackgrounds('intro');
- if ($this->theme->backgroundCustom) {
- $this->_addBackgroundVariables('background-desktop', 'background', 'mainBackground');
- if ($this->theme->backgroundCustomMobile) {
- $this->_addBackgroundVariables('background-mobile', 'background', 'mainBackgroundMobile', 'Mobile');
+ $this->writeSass();
+ }
+
+ protected function _addBackgrounds($dataKey, $sassPrefix = null, $themePrefix = null)
+ {
+ $themePrefix = $themePrefix ?? $dataKey;
+ $sassPrefix = $sassPrefix ?? $dataKey;
+ $this->data->set($dataKey, 'Image');
+ $this->data->set($dataKey . 'ImageMobile', '');
+
+
+ if ($this->theme->{$dataKey . 'Custom'}) {
+ $this->_addBackgroundVariables($sassPrefix . '-desktop', $themePrefix, $dataKey);
+ if ($this->theme->{$dataKey . 'CustomMobile'}) {
+ $this->_addBackgroundVariables($sassPrefix . '-mobile', $themePrefix, $dataKey . 'Mobile', 'Mobile');
} else {
- $this->_addBackgroundVariables('background-mobile', 'background', 'mainBackgroundMobile');
+ $this->_addBackgroundVariables($sassPrefix . '-mobile', $themePrefix, $dataKey . 'Mobile');
}
}
-
-
- $this->writeSass();
}
protected function _addBackgroundVariables($sassPrefix, $themePrefix, $dataKey, $themeSuffix = '')
{
- $i=$this->data['theme']->{$themePrefix . 'Image' . $themeSuffix};
+ $i = $this->data['theme']->{$themePrefix . 'Image' . $themeSuffix};
$this->data->set($dataKey, $i);
- if(stristr($i,'.json')){
- $this->animations[$i]=file_get_contents($this->theme->getPageData()->getImageFile($themePrefix . 'Image' . $themeSuffix));
+ if (stristr($i, '.json')) {
+ $this->animations[$i] = file_get_contents($this->theme->getPageData()->getImageFile($themePrefix . 'Image' . $themeSuffix));
}
-
- switch ($this->data['theme']->{$themePrefix . 'Size' . $themeSuffix}) {
- case ThemeBackgroundSize::RATIO:
- $size = 'cover';
- break;
- case ThemeBackgroundSize::NONE:
- $size = 'none';
- break;
- default:
- case ThemeBackgroundSize::STRETCH:
- $size = 'fill';
- break;
-
- }
-
- $positionx = match ($this->data['theme']->{$themePrefix . 'HorizontalAlign' . $themeSuffix}) {
- HorizontalAlign::LEFT => '0%',
- HorizontalAlign::CENTER => '50%',
- HorizontalAlign::RIGHT => '100%',
- default => '50%',
- };
-
- $positiony = match ($this->data['theme']->{$themePrefix . 'VerticalAlign' . $themeSuffix}) {
- VerticalAlign::TOP => '0%',
- VerticalAlign::MIDDLE => '50%',
- VerticalAlign::BOTTOM => '100%',
- default => '50%',
- };
-
- $this->sassVariables[$sassPrefix . '-size'] = $size;
- $this->sassVariables[$sassPrefix . '-position-x'] = $positionx;
- $this->sassVariables[$sassPrefix . '-position-y'] = $positiony;
}
protected function _font($f)
$this->addField('', FormSeparator::class);
$this->addField('backgroundCustom', Checkbox::class, __('Définir un fond personnalisé ou animé'));
$this->addField('backgroundImage', FluidbookThemeImage::class, __('Image ou animation'), ['hint' => __('Taille recommandée : :size', ['size' => '1200 x 680px']), 'when' => ['backgroundCustom' => 1]]);
- $this->addField('backgroundSize', ThemeBackgroundSize::class, __('Affichage du fond'), ['when' => ['backgroundCustom' => 1]]);
- $this->addField('backgroundHorizontalAlign', HorizontalAlign::class, __('Alignement horizontal'), ['when' => ['backgroundCustom' => 1]]);
- $this->addField('backgroundVerticalAlign', VerticalAlign::class, __('Alignement vertical'), ['when' => ['backgroundCustom' => 1]]);
+// $this->addField('backgroundSize', ThemeBackgroundSize::class, __('Affichage du fond'), ['when' => ['backgroundCustom' => 1]]);
+// $this->addField('backgroundHorizontalAlign', HorizontalAlign::class, __('Alignement horizontal'), ['when' => ['backgroundCustom' => 1]]);
+// $this->addField('backgroundVerticalAlign', VerticalAlign::class, __('Alignement vertical'), ['when' => ['backgroundCustom' => 1]]);
$this->addField('', FormSeparator::class, '', ['when' => ['backgroundCustom' => 1]]);
$this->addField('backgroundCustomMobile', Checkbox::class, __('Définir un fond spécifique sur mobile'), ['when' => ['backgroundCustom' => 1]]);
$this->addField('backgroundImageMobile', FluidbookThemeImage::class, __('Image ou animation'), ['hint' => __('Taille recommandée : :size', ['size' => '390 x 844px']), 'when' => ['backgroundCustom' => 1, 'backgroundCustomMobile' => 1]]);
- $this->addField('backgroundSizeMobile', ThemeBackgroundSize::class, __('Affichage du fond'), ['when' => ['backgroundCustom' => 1, 'backgroundCustomMobile' => 1]]);
- $this->addField('backgroundHorizontalAlignMobile', HorizontalAlign::class, __('Alignement horizontal'), ['when' => ['backgroundCustom' => 1, 'backgroundCustomMobile' => 1]]);
- $this->addField('backgroundVerticalAlignMobile', VerticalAlign::class, __('Alignement vertical'), ['when' => ['backgroundCustom' => 1, 'backgroundCustomMobile' => 1]]);
+// $this->addField('backgroundSizeMobile', ThemeBackgroundSize::class, __('Affichage du fond'), ['when' => ['backgroundCustom' => 1, 'backgroundCustomMobile' => 1]]);
+// $this->addField('backgroundHorizontalAlignMobile', HorizontalAlign::class, __('Alignement horizontal'), ['when' => ['backgroundCustom' => 1, 'backgroundCustomMobile' => 1]]);
+// $this->addField('backgroundVerticalAlignMobile', VerticalAlign::class, __('Alignement vertical'), ['when' => ['backgroundCustom' => 1, 'backgroundCustomMobile' => 1]]);
}