Merge branch 'dev' into 12-dev
This commit is contained in:
commit
6a13590c9b
125
core/core.php
125
core/core.php
@ -180,19 +180,71 @@ class common {
|
||||
];
|
||||
|
||||
public static $fontsWebSafe = [
|
||||
'arial' => 'Arial, Helvetica, sans-serif;',
|
||||
'arial-black' => '"Arial Black", Gadget, sans-serif;',
|
||||
'courrier' => 'Courier, "Liberation Mono", monospace;',
|
||||
'courrier-new' => '"Courier New", Courier, monospace',
|
||||
'garamond' => 'Garamond, serif',
|
||||
'georgia' => 'Georgia, serif;',
|
||||
'impact' => 'Impact, Charcoal, sans-serif;',
|
||||
'lucida' => '"Lucida Sans Unicode", "Lucida Grande", sans-serif',
|
||||
'tahoma' => 'Tahoma, Geneva, sans-serif;',
|
||||
'times-new-roman' => '"Times New Roman", "Liberation Serif", serif;',
|
||||
'trebuchet' => '"Trebuchet MS", Arial, Helvetica, sans-serif;',
|
||||
'tahoma' => 'Tahoma, Geneva, sans-serif;',
|
||||
'verdana' => 'Verdana, Geneva, sans-serif;',
|
||||
'arial' => [
|
||||
'name' => 'Arial',
|
||||
'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',
|
||||
'resource' => 'websafe'
|
||||
],
|
||||
'courrier-new' => [
|
||||
'name' => 'Courier New',
|
||||
'font-family' => '\'Courier New\', Courier, monospace',
|
||||
'resource' => 'websafe'
|
||||
],
|
||||
'garamond' => [
|
||||
'name' => 'Garamond',
|
||||
'font-family' => 'Garamond, serif',
|
||||
'resource' => 'websafe'
|
||||
],
|
||||
'georgia' => [
|
||||
'name' => 'Geogia',
|
||||
'font-family' => 'Georgia, serif',
|
||||
'resource' => 'websafe'
|
||||
],
|
||||
'impact' => [
|
||||
'name' => 'Impact',
|
||||
'font-family' => 'Impact, Charcoal, sans-serif',
|
||||
'resource' => 'websafe'
|
||||
],
|
||||
'lucida' => [
|
||||
'name' => 'Lucida',
|
||||
'font-family' => '\'Lucida Sans Unicode\', \'Lucida Grande\', sans-serif',
|
||||
'resource' => 'websafe'
|
||||
],
|
||||
'tahoma' => [
|
||||
'name' => 'Tahoma',
|
||||
'font-family' => 'Tahoma, Geneva, sans-serif',
|
||||
'resource' => 'websafe'
|
||||
],
|
||||
'times-new-roman' => [
|
||||
'name' => 'Times New Roman',
|
||||
'font-family' => '\'Times New Roman\', \'Liberation Serif\', serif',
|
||||
'resource' => 'websafe'
|
||||
],
|
||||
'trebuchet' => [
|
||||
'name' => 'Trebuchet',
|
||||
'font-family' => '\'Trebuchet MS\', Arial, Helvetica, sans-serif',
|
||||
'resource' => 'websafe'
|
||||
],
|
||||
'tahoma' => [
|
||||
'name' => 'Tahoma',
|
||||
'font-family' => 'Tahoma, Geneva, sans-serif',
|
||||
'resource' => 'websafe'
|
||||
],
|
||||
'verdana' => [
|
||||
'name' => 'Verdana',
|
||||
'font-family' => 'Verdana, Geneva, sans-serif;',
|
||||
'resource' => 'websafe'
|
||||
]
|
||||
];
|
||||
|
||||
|
||||
@ -403,48 +455,6 @@ class common {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Construit la liste des fontes dans un tableau
|
||||
* @return array @fonts
|
||||
*
|
||||
*/
|
||||
public function getFonts() {
|
||||
|
||||
// Fusionne la liste des fontes avec les webSafe
|
||||
foreach (self::$fontsWebSafe as $fontId => $fontValue) {
|
||||
$fontName = explode (',', $fontValue);
|
||||
$f ['websafe'] [$fontId] = [
|
||||
'name' => str_replace('"', '', $fontName[0]),
|
||||
'font-family'=> $fontValue
|
||||
];
|
||||
}
|
||||
// Ajoute les polices importées
|
||||
$fontsImported = $this->getData(['fonts', 'imported']);
|
||||
if (is_array($fontsImported)
|
||||
) {
|
||||
foreach ($fontsImported as $fontId => $fontValue) {
|
||||
$f ['imported'] [$fontId] = [
|
||||
'name' => $fontValue ['name'],
|
||||
'font-family'=> $fontValue ['font-family'],
|
||||
'resource' => $fontValue ['resource']
|
||||
];
|
||||
}
|
||||
}
|
||||
// Ajoute les polices locales
|
||||
$fontsFiles = $this->getData(['fonts', 'files']);
|
||||
if (is_array($fontsFiles)
|
||||
) {
|
||||
foreach ($fontsFiles as $fontId => $fontValue) {
|
||||
$f ['files'] [$fontId] = [
|
||||
'name' => $fontValue ['name'],
|
||||
'font-family'=> $fontValue ['font-family'],
|
||||
'resource' => $fontValue ['resource']
|
||||
];
|
||||
}
|
||||
}
|
||||
return $f;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check du token CSRF (true = bo
|
||||
*/
|
||||
@ -2302,7 +2312,10 @@ class core extends common {
|
||||
*/
|
||||
|
||||
// Fonts disponibles
|
||||
$fontsAvailable = $this->getFonts();
|
||||
$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']),
|
||||
|
@ -896,37 +896,37 @@ if ($this->getData(['core', 'dataVersion']) < 11400) {
|
||||
],
|
||||
'dancing-script' => [
|
||||
'name' => 'Dancing Script',
|
||||
'font-family' => '"Dancing Script", sans-serif',
|
||||
'font-family' => '\'Dancing Script\', sans-serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/dancing-script'
|
||||
],
|
||||
'droid-sans-2'=> [
|
||||
'name' => 'Droid Sans',
|
||||
'font-family' => '"Droid Sans", sans-serif',
|
||||
'font-family' => '\'Droid Sans\', sans-serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/droid-sans-2'
|
||||
],
|
||||
'droid-serif-2'=> [
|
||||
'name' => 'Droid Serif',
|
||||
'font-family' => '"Droid Serif", serif',
|
||||
'font-family' => '\'Droid Serif\', serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/droid-serif-2'
|
||||
],
|
||||
'indie-flower'=> [
|
||||
'name' => 'Indie Flower',
|
||||
'font-family' => '"Indie Flower", sans-serif',
|
||||
'font-family' => '\'Indie Flower\', sans-serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/indie-flower'
|
||||
],
|
||||
'fira-sans' => [
|
||||
'name' => 'Fira Sans',
|
||||
'font-family' => '"Fira Sans", sans-serif',
|
||||
'font-family' => '\'Fira Sans\', sans-serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/fira'
|
||||
],
|
||||
'liberation-sans'=> [
|
||||
'name' => 'Liberation Sans',
|
||||
'font-family' => '"Liberation Sans", sans-serif',
|
||||
'font-family' => '\'Liberation Sans\', sans-serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/liberation-sans'
|
||||
],
|
||||
'liberation-serif'=> [
|
||||
'name' => 'Liberation Serif',
|
||||
'font-family' => '"Liberation Serif", serif',
|
||||
'font-family' => '\'Liberation Serif\', serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/liberation-serif'
|
||||
],
|
||||
'lobster-2'=> [
|
||||
@ -946,12 +946,12 @@ if ($this->getData(['core', 'dataVersion']) < 11400) {
|
||||
],
|
||||
'old-standard-tt-3'=> [
|
||||
'name' => 'Old Standard TT',
|
||||
'font-family' => '"Old Standard TT", serif',
|
||||
'font-family' => '\'Old Standard TT\', serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/old-standard-tt-3'
|
||||
],
|
||||
'open-sans' => [
|
||||
'name' => 'Open Sans',
|
||||
'font-family' => '"Open Sans", sans-serif',
|
||||
'font-family' => '\'Open Sans\', sans-serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/open-sans'
|
||||
],
|
||||
'oswald-4'=> [
|
||||
@ -961,12 +961,12 @@ if ($this->getData(['core', 'dataVersion']) < 11400) {
|
||||
],
|
||||
'pt-mono'=> [
|
||||
'name' => 'PT Mono',
|
||||
'font-family' => '"PT Mono", monospace',
|
||||
'font-family' => '\'PT Mono\', monospace',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/pt-mono'
|
||||
],
|
||||
'pt-serif'=> [
|
||||
'name' => "PR Serif",
|
||||
'font-family' => '"PT Serif", serif',
|
||||
'name' => 'PR Serif',
|
||||
'font-family' => '\'PT Serif\', serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/pt-serif'
|
||||
],
|
||||
'rancho'=> [
|
||||
|
@ -100,32 +100,32 @@ class init extends common {
|
||||
],
|
||||
'dancing-script' => [
|
||||
'name' => 'Dancing Script',
|
||||
'font-family' => '"Dancing Script", sans-serif',
|
||||
'font-family' => '\'Dancing Script\', sans-serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/dancing-script'
|
||||
],
|
||||
'droid-sans-2'=> [
|
||||
'name' => 'Droid Sans',
|
||||
'font-family' => '"Droid Sans", sans-serif',
|
||||
'font-family' => '\'Droid Sans\', sans-serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/droid-sans-2'
|
||||
],
|
||||
'droid-serif-2'=> [
|
||||
'name' => 'Droid Serif',
|
||||
'font-family' => '"Droid Serif", serif',
|
||||
'font-family' => '\'Droid Serif\', serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/droid-serif-2'
|
||||
],
|
||||
'indie-flower'=> [
|
||||
'name' => 'Indie Flower',
|
||||
'font-family' => '"Indie Flower", sans-serif',
|
||||
'font-family' => '\'Indie Flower\', sans-serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/indie-flower'
|
||||
],
|
||||
'liberation-sans'=> [
|
||||
'name' => 'Liberation Sans',
|
||||
'font-family' => '"Liberation Sans", sans-serif',
|
||||
'font-family' => '\'Liberation Sans\', sans-serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/liberation-sans'
|
||||
],
|
||||
'liberation-serif'=> [
|
||||
'name' => 'Liberation Serif',
|
||||
'font-family' => '"Liberation Serif", serif',
|
||||
'font-family' => '\'Liberation Serif\', serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/liberation-serif'
|
||||
],
|
||||
'lobster-2'=> [
|
||||
@ -145,12 +145,12 @@ class init extends common {
|
||||
],
|
||||
'old-standard-tt-3'=> [
|
||||
'name' => 'Old Standard TT',
|
||||
'font-family' => '"Old Standard TT", serif',
|
||||
'font-family' => '\'Old Standard TT\', serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/old-standard-tt-3'
|
||||
],
|
||||
'open-sans' => [
|
||||
'name' => 'Open Sans',
|
||||
'font-family' => '"Open Sans", sans-serif',
|
||||
'font-family' => '\'Open Sans\', sans-serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/open-sans'
|
||||
],
|
||||
'oswald-4'=> [
|
||||
@ -160,12 +160,12 @@ class init extends common {
|
||||
],
|
||||
'pt-mono'=> [
|
||||
'name' => 'PT Mono',
|
||||
'font-family' => '"PT Mono", monospace',
|
||||
'font-family' => '\'PT Mono\', monospace',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/pt-mono'
|
||||
],
|
||||
'pt-serif'=> [
|
||||
'name' => "PR Serif",
|
||||
'font-family' => '"PT Serif", serif',
|
||||
'name' => 'PR Serif',
|
||||
'font-family' => '\'PT Serif\', serif',
|
||||
'resource' => 'https://fonts.cdnfonts.com/css/pt-serif'
|
||||
],
|
||||
'rancho'=> [
|
||||
|
@ -265,6 +265,8 @@ class theme extends common {
|
||||
'state' => true
|
||||
]);
|
||||
}
|
||||
// Lire les fontes installées
|
||||
$this->enumFonts();
|
||||
// Valeurs en sortie
|
||||
$this->addOutput([
|
||||
'title' => 'Administration',
|
||||
@ -569,40 +571,44 @@ class theme extends common {
|
||||
];
|
||||
|
||||
// Récupérer le détail des fontes installées
|
||||
$f = $this->getFonts();
|
||||
//$f = $this->getFonts();
|
||||
$f ['files'] = $this->getData(['fonts', 'files']);
|
||||
$f ['imported'] = $this->getData(['fonts', 'imported']);
|
||||
$f ['websafe'] = self::$fontsWebSafe;
|
||||
|
||||
// Parcourir les fontes disponibles et construire le tableau pour le formulaire
|
||||
foreach ($f as $type => $typeValue) {
|
||||
|
||||
foreach ($typeValue as $fontId => $fontValue) {
|
||||
// Fontes utilisées par les thèmes
|
||||
$fontUsed[$fontId] = '';
|
||||
foreach ($used as $key => $value) {
|
||||
if ( $value === $fontId) {
|
||||
$fontUsed[$fontId] .= $key . '<br/>';
|
||||
if (is_array($typeValue)) {
|
||||
foreach ($typeValue as $fontId => $fontValue) {
|
||||
// Fontes utilisées par les thèmes
|
||||
$fontUsed[$fontId] = '';
|
||||
foreach ($used as $key => $value) {
|
||||
if ( $value === $fontId) {
|
||||
$fontUsed[$fontId] .= $key . '<br/>';
|
||||
}
|
||||
}
|
||||
self::$fontsDetail [] = [
|
||||
$fontId,
|
||||
'<span style="font-family:' . $f[$type][$fontId]['font-family'] . '">' . $f[$type][$fontId]['name'] . '</span>' ,
|
||||
$f[$type][$fontId]['font-family'],
|
||||
$fontUsed[$fontId],
|
||||
$type,
|
||||
$type !== 'websafe' ? template::button('themeFontEdit' . $fontId, [
|
||||
'class' => 'themeFontEdit',
|
||||
'href' => helper::baseUrl() . $this->getUrl(0) . '/fontEdit/' . $type . '/' . $fontId . '/' . $_SESSION['csrf'],
|
||||
'value' => template::ico('pencil'),
|
||||
'disabled' => !empty($fontUsed[$fontId])
|
||||
])
|
||||
: '',
|
||||
$type !== 'websafe' ? template::button('themeFontDelete' . $fontId, [
|
||||
'class' => 'themeFontDelete buttonRed',
|
||||
'href' => helper::baseUrl() . $this->getUrl(0) . '/fontDelete/' . $type . '/' . $fontId . '/' . $_SESSION['csrf'],
|
||||
'value' => template::ico('cancel'),
|
||||
'disabled' => !empty($fontUsed[$fontId])
|
||||
])
|
||||
: ''
|
||||
];
|
||||
}
|
||||
self::$fontsDetail [] = [
|
||||
$fontId,
|
||||
'<span style="font-family:' . $f[$type][$fontId]['font-family'] . '">' . $f[$type][$fontId]['name'] . '</span>' ,
|
||||
$f[$type][$fontId]['font-family'],
|
||||
$fontUsed[$fontId],
|
||||
$type,
|
||||
$type !== 'websafe' ? template::button('themeFontEdit' . $fontId, [
|
||||
'class' => 'themeFontEdit',
|
||||
'href' => helper::baseUrl() . $this->getUrl(0) . '/fontEdit/' . $type . '/' . $fontId . '/' . $_SESSION['csrf'],
|
||||
'value' => template::ico('pencil'),
|
||||
'disabled' => !empty($fontUsed[$fontId])
|
||||
])
|
||||
: '',
|
||||
$type !== 'websafe' ? template::button('themeFontDelete' . $fontId, [
|
||||
'class' => 'themeFontDelete buttonRed',
|
||||
'href' => helper::baseUrl() . $this->getUrl(0) . '/fontDelete/' . $type . '/' . $fontId . '/' . $_SESSION['csrf'],
|
||||
'value' => template::ico('cancel'),
|
||||
'disabled' => !empty($fontUsed[$fontId])
|
||||
])
|
||||
: ''
|
||||
];
|
||||
}
|
||||
}
|
||||
sort(self::$fontsDetail);
|
||||
@ -627,6 +633,9 @@ class theme extends common {
|
||||
$fontName = $this->getInput('fontAddFontName', null, true);
|
||||
$fontFamilyName = $this->getInput('fontAddFontFamilyName', null, true);
|
||||
|
||||
// Remplace les doubles quotes par des simples quotes
|
||||
$fontFamilyName = str_replace('"', '\'', $fontFamilyName);
|
||||
|
||||
// Supprime la fonte si elle existe dans le type inverse
|
||||
if (is_array($this->getData(['fonts', $typeFlip, $fontId])) ) {
|
||||
$this->deleteData(['fonts', $typeFlip, $fontId ]);
|
||||
@ -677,6 +686,9 @@ class theme extends common {
|
||||
$fontName = $this->getInput('fontEditFontName', null , true);
|
||||
$fontFamilyName = $this->getInput('fontEditFontFamilyName', null, true);
|
||||
|
||||
// Remplace les doubles quotes par des simples quotes
|
||||
$fontFamilyName = str_replace('"', '\'', $fontFamilyName);
|
||||
|
||||
// Supprime la fonte si elle existe dans le type inverse
|
||||
if (is_array($this->getData(['fonts', $typeFlip, $fontId])) ) {
|
||||
$this->deleteData(['fonts', $typeFlip, $fontId ]);
|
||||
@ -1115,7 +1127,9 @@ class theme extends common {
|
||||
// Cette fonction est utile aux sélecteurs de fonts dans les formulaires.
|
||||
public function enumFonts() {
|
||||
// Récupère la liste des fontes installées
|
||||
$f = $this->getFonts();
|
||||
$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(array_key_exists($type, $f)) {
|
||||
|
@ -128,7 +128,7 @@
|
||||
<h4>Mise en forme du texte</h4>
|
||||
<div class="row">
|
||||
<div class="col4">
|
||||
<?php echo template::select('adminFontText', self::$fonts, [
|
||||
<?php echo template::select('adminFontText', $module::$fontsList, [
|
||||
'label' => 'Police du texte',
|
||||
'selected' => $this->getData(['admin', 'fontText']),
|
||||
'fonts' => true
|
||||
@ -141,7 +141,7 @@
|
||||
]); ?>
|
||||
</div>
|
||||
<div class="col4">
|
||||
<?php echo template::select('adminFontTitle', self::$fonts, [
|
||||
<?php echo template::select('adminFontTitle', $module::$fontsList, [
|
||||
'label' => 'Police des titres',
|
||||
'selected' => $this->getData(['admin', 'fontTitle']),
|
||||
'fonts' => true
|
||||
|
@ -61,7 +61,7 @@
|
||||
<?php echo template::text('fontEditFontFamilyName', [
|
||||
'autocomplete' => 'off',
|
||||
'label' => 'Famille',
|
||||
'value' => $this->getData(['fonts', $this->getUrl(2), $this->getUrl(3), 'font-family'])
|
||||
'value' => stripslashes($this->getData(['fonts', $this->getUrl(2), $this->getUrl(3), 'font-family']))
|
||||
]); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user