diff --git a/core/class/template.class.php b/core/class/template.class.php
index 5522201e..a629247b 100644
--- a/core/class/template.class.php
+++ b/core/class/template.class.php
@@ -1,6 +1,6 @@
';
// Label
@@ -449,7 +449,7 @@ class template {
$lang = 'fr';
}
}
- return ' '',
'name' => $nameId,
'selected' => '',
- 'fonts' => false
+ 'fonts' => []
], $attributes);
+ // Stocker les fontes et remettre à zéro le tableau des fontes transmis pour éviter une erreur de sprintAttributes
+ if (empty($attributes['fonts']) === false) {
+ $fonts = $attributes['fonts'];
+ $attributes['fonts'] = [];
+ }
// Sauvegarde des données en cas d'erreur
if($attributes['before'] AND array_key_exists($attributes['id'], common::$inputBefore)) {
$attributes['selected'] = common::$inputBefore[$attributes['id']];
@@ -628,7 +633,7 @@ class template {
'help' => $attributes['help']
]);
}
- // Notice
+ // Notice
$notice = '';
if(array_key_exists($attributes['id'], common::$inputNotices)) {
$notice = common::$inputNotices[$attributes['id']];
@@ -640,12 +645,14 @@ class template {
helper::sprintAttributes($attributes)
);
foreach($options as $value => $text) {
- $html .= $attributes['fonts'] === true ? sprintf(
+ // Select des liste de fontes
+ $html .= isset($fonts) ? sprintf(
'',
$value,
$attributes['selected'] == $value ? ' selected' : '', // Double == pour ignorer le type de variable car $_POST change les types en string
- $text,
+ $fonts[$value],
$text
+ // Select standard
) : sprintf(
'',
$value,
diff --git a/core/core.php b/core/core.php
index 8833f8ad..0441d5e4 100644
--- a/core/core.php
+++ b/core/core.php
@@ -183,14 +183,9 @@ class common {
'font-family' => 'Arial, Helvetica, sans-serif',
'resource' => 'websafe'
],
- 'arial-black' => [
- 'name' => 'Arial Black',
- 'font-family' => '\'Arial Black\', Gadget, sans-serif',
- 'resource' => 'websafe'
- ],
- 'courrier' => [
- 'name' => 'Courier',
- 'font-family' => 'Courier, \'Liberation Mono\', monospace',
+ 'arvo'=> [
+ 'name' => 'Arvo',
+ 'font-family' => 'Arvo, sans-serif',
'resource' => 'websafe'
],
'courrier-new' => [
@@ -213,11 +208,21 @@ class common {
'font-family' => 'Impact, Charcoal, sans-serif',
'resource' => 'websafe'
],
+ 'lora'=> [
+ 'name' => 'Lora',
+ 'font-family' => 'Lora, serif',
+ 'resource' => 'websafe'
+ ],
'lucida' => [
'name' => 'Lucida',
'font-family' => '\'Lucida Sans Unicode\', \'Lucida Grande\', sans-serif',
'resource' => 'websafe'
],
+ 'roboto'=> [
+ 'name' => 'Roboto',
+ 'font-family' => 'Roboto, sans-serif',
+ 'resource' => 'websafe'
+ ],
'tahoma' => [
'name' => 'Tahoma',
'font-family' => 'Tahoma, Geneva, sans-serif',
@@ -1321,9 +1326,6 @@ class common {
*/
echo '
';
$this->showContent();
- if (file_exists(self::DATA_DIR . 'body.inc.html')) {
- include(self::DATA_DIR . 'body.inc.html');
- }
echo '
';
/**
* Barre droite
@@ -2105,14 +2107,18 @@ class common {
// Import des styles liés à la page
if($this->output['style']) {
echo '';
+ // Import de la feuille de style des pages admin
if (strpos($this->output['style'], 'admin.css') >= 1 ) {
echo '';
}
echo '';
}
- // Import des fontes liées au thème
- if (file_exists(self::DATA_DIR.'fonts/fonts.html')) {
- include_once(self::DATA_DIR.'fonts/fonts.html');
+ // Import des fontes
+ if ( file_exists(self::DATA_DIR . 'fonts/fonts.html') ){
+ include_once(self::DATA_DIR . 'fonts/fonts.html');
+ }
+ if ( file_exists(self::DATA_DIR . 'fonts/fonts.css') ){
+ echo '';
}
}
@@ -2283,73 +2289,18 @@ class core extends common {
// Version
$css = '/*' . md5(json_encode($this->getData(['theme']))) . '*/';
-
/**
* Import des polices de caractères
- * A partir du CDN
- * ou dans le dossier site/file/source/fonts
- * ou pas du tout si fonte webSafe
*/
- // Fonts disponibles
- $fontsAvailable ['files'] = $this->getData(['fonts', 'files']);
- $fontsAvailable ['imported'] = $this->getData(['fonts', 'imported']);
- $fontsAvailable ['websafe'] = self::$fontsWebSafe;
-
- // Fontes installées
- $fonts = [ $this->getData(['theme', 'text', 'font']),
- $this->getData(['theme', 'title', 'font']),
- $this->getData(['theme', 'header', 'font']),
- $this->getData(['theme', 'menu', 'font']),
- $this->getData(['theme', 'footer', 'font'])
- ];
- // Suppression des polices identiques
- $fonts = array_unique($fonts);
-
- /**
- * Charge les fontes websafe
- */
- foreach ($fonts as $fontId) {
- if ( isset($fontsAvailable['websafe'][$fontId])) {
- $fonts [$fontId] = $fontsAvailable['websafe'][$fontId]['font-family'];
- }
- }
-
- /**
- * Chargement des polices en ligne dans un fichier fonts.html inclus dans main.php
- */
- $fontFile = '';
- $gf = false;
- foreach ($fonts as $fontId) {
- if ( isset($fontsAvailable['imported'][$fontId])) {
- $fontFile .= '';
- // Tableau pour la construction de la feuille de style
- $fonts [$fontId] = $fontsAvailable['imported'][$fontId]['font-family'];
- $gf = strpos($fontsAvailable['imported'][$fontId]['resource'], 'fonts.googleapis.com') === false ? $gf || false : $gf || true;
- }
- }
- // Ajoute le préconnect des fontes Google.
- $fontFile = $gf ? '' . $fontFile
- : $fontFile;
- // Enregistre la personnalisation
- file_put_contents(self::DATA_DIR.'fonts/fonts.html', $fontFile);
-
- /**
- * Fontes installées localement
- */
- foreach ($fonts as $fontId) {
- // Validité du tableau :
- if ( isset($fontsAvailable['files'][$fontId]) ) {
- if (file_exists(self::DATA_DIR . 'fonts/' . $fontId) ) {
- // Chargement de la police
- //$formatFont = explode('.', self::DATA_DIR . 'fonts/' . $fontName);
- $css .= '@font-face {font-family:"' . $fontsAvailable['files'][$fontId]['font-family'] . '";';
- $css .= 'src: url("' . helper::baseUrl(false) . self::DATA_DIR . 'fonts/' .$fontsAvailable['files'][$fontId]['resource'] . '");}';
- // Tableau pour la construction de la feuille de style
- $fonts [$fontId] = $fontsAvailable['files'][$fontId]['font-family'];
- } else {
- // Le fichier de font n'est pas disponible, fonte par défaut
- $fonts [$fontId] = 'verdana';
+ $f ['files'] = $this->getData(['fonts', 'files']);
+ $f ['imported'] = $this->getData(['fonts', 'imported']);
+ $f ['websafe'] = self::$fontsWebSafe;
+ // Construit un tableau avec leur ID et leur famille
+ foreach(['websafe', 'imported', 'files'] as $type) {
+ if (is_array($f[$type])) {
+ foreach ($f[$type] as $fontId => $fontValue ) {
+ $fonts[$fontId] = $fontValue['font-family'];
}
}
}
@@ -2520,12 +2471,6 @@ class core extends common {
$css .= '#footerText > p {text-align:' . $this->getData(['theme', 'footer', 'textAlign']) . '}';
$css .= '#footerCopyright{text-align:' . $this->getData(['theme', 'footer', 'copyrightAlign']) . '}';
- // Enregistre les fontes
- if (!is_dir(self::DATA_DIR . 'fonts')) {
- mkdir(self::DATA_DIR . 'fonts');
- }
- file_put_contents(self::DATA_DIR . 'fonts/fonts.html', $fontFile);
-
// Enregistre la personnalisation
file_put_contents(self::DATA_DIR.'theme.css', $css);
@@ -2544,60 +2489,18 @@ class core extends common {
// Version
$css = '/*' . md5(json_encode($this->getData(['admin']))) . '*/';
- // Fonts disponibles
- $fontsAvailable ['files'] = $this->getData(['fonts', 'files']);
- $fontsAvailable ['imported'] = $this->getData(['fonts', 'imported']);
- $fontsAvailable ['websafe'] = self::$fontsWebSafe;
-
/**
* Import des polices de caractères
- * A partir du CDN ou dans le dossier site/file/source/fonts
*/
- $fonts = [ $this->getData(['admin', 'fontText']),
- $this->getData(['admin', 'fontTitle']),
- ];
- // Suppression des polices identiques
- $fonts = array_unique($fonts);
- /**
- * Charge les fontes websafe
- */
- foreach ($fonts as $fontId) {
- if ( isset($fontsAvailable['websafe'][$fontId])) {
- $fonts [$fontId] = $fontsAvailable['websafe'][$fontId]['font-family'];
- }
- }
-
- /**
- * Chargement des polices en ligne dans un fichier fonts.html inclus dans main.php
- */
- $fontFile = '';
- foreach ($fonts as $fontId) {
- if ( isset($fontsAvailable['imported'][$fontId])) {
- $fontFile .= '';
- // Tableau pour la construction de la feuille de style
- $fonts [$fontId] = $fontsAvailable['imported'][$fontId]['font-family'];
- }
- }
- // Enregistre la personnalisation
- file_put_contents(self::DATA_DIR.'fonts/fonts.html', $fontFile);
-
- /**
- * Fontes installées localement
- */
- foreach ($fonts as $fontId) {
- // Validité du tableau :
- if ( isset($fontsAvailable['files'][$fontId]) ) {
- if (file_exists(self::DATA_DIR . 'fonts/' . $fontId) ) {
- // Chargement de la police
- //$formatFont = explode('.', self::DATA_DIR . 'fonts/' . $fontName);
- $css .= '@font-face {font-family:"' . $fontsAvailable['files'][$fontId]['font-family'] . '";';
- $css .= 'src: url("' . helper::baseUrl(false) . self::DATA_DIR . 'fonts/' .$fontsAvailable['files'][$fontId]['resource'] . '");}';
- // Tableau pour la construction de la feuille de style
- $fonts [$fontId] = $fontsAvailable['files'][$fontId]['font-family'];
- } else {
- // Le fichier de font n'est pas disponible, fonte par défaut
- $fonts [$fontId] = 'verdana';
+ $f ['files'] = $this->getData(['fonts', 'files']);
+ $f ['imported'] = $this->getData(['fonts', 'imported']);
+ $f ['websafe'] = self::$fontsWebSafe;
+ // Construit un tableau avec leur ID et leur famille
+ foreach(['websafe', 'imported', 'files'] as $type) {
+ if (is_array($f[$type])) {
+ foreach ($f[$type] as $fontId => $fontValue ) {
+ $fonts[$fontId] = $fontValue['font-family'];
}
}
}
diff --git a/core/include/update.inc.php b/core/include/update.inc.php
index bb2b1749..f1f0a102 100644
--- a/core/include/update.inc.php
+++ b/core/include/update.inc.php
@@ -705,11 +705,6 @@ if ($this->getData(['core', 'dataVersion']) < 11400) {
'font-family' => 'Arimo, sans-serif',
'resource' => 'https://fonts.cdnfonts.com/css/arimo'
],
- 'arvo'=> [
- 'name' => 'Arvo',
- 'font-family' => 'Arvo, sans-serif',
- 'resource' => 'https://fonts.cdnfonts.com/css/arvo'
- ],
'dancing-script' => [
'name' => 'Dancing Script',
'font-family' => '\'Dancing Script\', sans-serif',
@@ -733,7 +728,7 @@ if ($this->getData(['core', 'dataVersion']) < 11400) {
'fira-sans' => [
'name' => 'Fira Sans',
'font-family' => '\'Fira Sans\', sans-serif',
- 'resource' => 'https://fonts.cdnfonts.com/css/fira'
+ 'resource' => 'https://fonts.cdnfonts.com/css/fira-sans'
],
'liberation-sans'=> [
'name' => 'Liberation Sans',
@@ -755,11 +750,6 @@ if ($this->getData(['core', 'dataVersion']) < 11400) {
'font-family' => 'Lato, sans-serif',
'resource' => 'https://fonts.cdnfonts.com/css/lato'
],
- 'lora'=> [
- 'name' => 'Lora',
- 'font-family' => 'Lora, serif',
- 'resource' => 'https://fonts.cdnfonts.com/css/lora'
- ],
'old-standard-tt-3'=> [
'name' => 'Old Standard TT',
'font-family' => '\'Old Standard TT\', serif',
@@ -790,11 +780,6 @@ if ($this->getData(['core', 'dataVersion']) < 11400) {
'font-family' => 'Rancho, sans-serif',
'resource' => 'https://fonts.cdnfonts.com/css/rancho'
],
- 'roboto'=> [
- 'name' => 'Roboto',
- 'font-family' => 'Roboto, sans-serif',
- 'resource' => 'https://fonts.cdnfonts.com/css/roboto'
- ],
'ubuntu'=> [
'name' => 'Ubuntu',
'font-family' => 'Ubuntu, sans-serif',
@@ -811,7 +796,8 @@ if ($this->getData(['core', 'dataVersion']) < 11400) {
$files = $this->getData(['fonts', 'files']);
if (is_array($files)) {
foreach ($files as $fontId => $fontName) {
- if (file_exists(self::DATA_DIR . 'fonts/' . $fontName)) {
+ if ( gettype($fontName) === 'string'
+ && file_exists(self::DATA_DIR . 'fonts/' . $fontName)) {
$this->setData(['fonts', 'files', $fontId, [
'name' => ucfirst($fontId),
'font-family'=> '\'' . ucfirst($fontId) . '\', sans-serif',
@@ -825,11 +811,13 @@ if ($this->getData(['core', 'dataVersion']) < 11400) {
$imported = $this->getData(['fonts', 'imported']);
if (is_array($imported)) {
foreach ($imported as $fontId => $fontUrl) {
- $this->setData(['fonts', 'imported', $fontId, [
- 'name' => ucfirst($fontId),
- 'font-family'=> '\'' . ucfirst($fontId) . '\', sans-serif',
- 'resource' => 'https:\\fonts.cdnfonts.com\css' . $fontUrl
- ]]);
+ if ( gettype($fontUrl) === 'string' ) {
+ $this->setData(['fonts', 'imported', $fontId, [
+ 'name' => ucfirst($fontId),
+ 'font-family'=> '\'' . ucfirst($fontId) . '\', sans-serif',
+ 'resource' => 'https:\\fonts.cdnfonts.com\css' . $fontUrl
+ ]]);
+ }
}
}
// Importation des fontes exemples
@@ -861,7 +849,7 @@ if ($this->getData(['core', 'dataVersion']) < 11400) {
*/
// Suppression de la variable URL dans core
- //$this->deleteData(['core', 'baseUrl']);
+ $this->deleteData(['core', 'baseUrl']);
// Mise à jour
$this->setData(['core', 'dataVersion', 11400]);
diff --git a/core/layout/blank.php b/core/layout/blank.php
index 789b1af6..6e2d1852 100644
--- a/core/layout/blank.php
+++ b/core/layout/blank.php
@@ -13,7 +13,8 @@
-
+
+
showContent(); ?>
showScript(); ?>
diff --git a/core/layout/main.php b/core/layout/main.php
index ad56c0b2..f1c2fbbc 100644
--- a/core/layout/main.php
+++ b/core/layout/main.php
@@ -13,6 +13,7 @@
+
getData(['page', $this->getUrl(0), 'moduleId']) === 'blog'
OR $this->getData(['page', $this->getUrl(0), 'moduleId']) === 'news' )
@@ -20,6 +21,7 @@
showStyle(); ?>
+
@@ -186,6 +188,10 @@
showCookies(); ?>
showScript();?>
-
+
+