forked from ZwiiCMS-Team/ZwiiCMS
Fontes chargées à la demande selon le scope
This commit is contained in:
parent
b5caba6e70
commit
bb0436f79f
@ -184,7 +184,7 @@ class common {
|
||||
];
|
||||
|
||||
public static $fontsWebSafe = [
|
||||
'arial' => [
|
||||
'arial' => [
|
||||
'name' => 'Arial',
|
||||
'font-family' => 'Arial, Helvetica, sans-serif',
|
||||
'resource' => 'websafe'
|
||||
@ -1377,9 +1377,6 @@ class common {
|
||||
*/
|
||||
echo '<div class="'. $content . '" id="contentSite">';
|
||||
$this->showContent();
|
||||
if (file_exists(self::DATA_DIR . 'body.inc.html')) {
|
||||
include(self::DATA_DIR . 'body.inc.html');
|
||||
}
|
||||
echo '</div>';
|
||||
/**
|
||||
* Barre droite
|
||||
@ -2162,6 +2159,14 @@ class common {
|
||||
}
|
||||
echo '<style type="text/css">' . helper::minifyCss($this->output['style']) . '</style>';
|
||||
}
|
||||
// Import des fontes en ligne
|
||||
if ( file_exists(self::DATA_DIR.'fonts/fonts.html') ){
|
||||
include_once(self::DATA_DIR . 'fonts/fonts.html');
|
||||
}
|
||||
// Import des fontes locales
|
||||
if (file_exists(self::DATA_DIR.'fonts/fonts.css')) {
|
||||
echo '<link rel="stylesheet" href="' . helper::baseUrl(false) . self::DATA_DIR . 'fonts/fonts.css?' . md5_file(helper::baseUrl(false) . self::DATA_DIR . 'fonts/fonts.css') . '">';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -13,17 +13,8 @@
|
||||
<link rel="stylesheet" href="<?php echo helper::baseUrl(false); ?>core/layout/common.css">
|
||||
<link rel="stylesheet" href="<?php echo helper::baseUrl(false); ?>core/layout/blank.css">
|
||||
<link rel="stylesheet" href="<?php echo helper::baseUrl(false) . self::DATA_DIR; ?>theme.css?<?php echo md5_file(self::DATA_DIR.'theme.css'); ?>">
|
||||
<link rel="stylesheet" href="<?php echo helper::baseUrl(false) . self::DATA_DIR; ?>custom.css?<?php echo md5_file(self::DATA_DIR.'custom.css'); ?>"></head>
|
||||
<!-- Import des fontes en ligne -->
|
||||
<?php
|
||||
if ( file_exists(self::DATA_DIR.'fonts/fonts.html') ){
|
||||
include_once(self::DATA_DIR . 'fonts/fonts.html');
|
||||
} ?>
|
||||
<!-- Import des fontes livrés dans des fichiers WOFF -->
|
||||
<?php
|
||||
if (file_exists(self::DATA_DIR.'fonts/fonts.css')): ?>
|
||||
<link rel="stylesheet" href="<?php echo helper::baseUrl(false) . self::DATA_DIR;?>fonts/fonts.css?<?php echo md5_file(helper::baseUrl(false) . self::DATA_DIR . 'fonts/fonts.css'); ?>">
|
||||
<?php endif; ?>
|
||||
<link rel="stylesheet" href="<?php echo helper::baseUrl(false) . self::DATA_DIR; ?>custom.css?<?php echo md5_file(self::DATA_DIR.'custom.css'); ?>">
|
||||
</head>
|
||||
<body>
|
||||
<?php $this->showContent(); ?>
|
||||
<?php $this->showScript(); ?>
|
||||
|
@ -14,16 +14,6 @@
|
||||
<link rel="stylesheet" href="<?php echo helper::baseUrl(false); ?>core/layout/light.css">
|
||||
<link rel="stylesheet" href="<?php echo helper::baseUrl(false) . self::DATA_DIR; ?>theme.css?<?php echo md5_file(self::DATA_DIR.'theme.css'); ?>">
|
||||
<link rel="stylesheet" href="<?php echo helper::baseUrl(false) . self::DATA_DIR; ?>custom.css?<?php echo md5_file(self::DATA_DIR.'custom.css'); ?>">
|
||||
<!-- Import des fontes en ligne -->
|
||||
<?php
|
||||
if ( file_exists(self::DATA_DIR.'fonts/fonts.html') ){
|
||||
include_once(self::DATA_DIR . 'fonts/fonts.html');
|
||||
} ?>
|
||||
<!-- Import des fontes livrés dans des fichiers WOFF -->
|
||||
<?php
|
||||
if (file_exists(self::DATA_DIR.'fonts/fonts.css')): ?>
|
||||
<link rel="stylesheet" href="<?php echo helper::baseUrl(false) . self::DATA_DIR;?>fonts/fonts.css?<?php echo md5_file(helper::baseUrl(false) . self::DATA_DIR . 'fonts/fonts.css'); ?>">
|
||||
<?php endif; ?>
|
||||
</head>
|
||||
<body>
|
||||
<?php $this->showNotification(); ?>
|
||||
|
@ -13,16 +13,7 @@
|
||||
<link rel="stylesheet" href="<?php echo helper::baseUrl(false); ?>core/layout/common.css?<?php echo md5_file('core/layout/common.css');?>">
|
||||
<link rel="stylesheet" href="<?php echo helper::baseUrl(false) . self::DATA_DIR; ?>theme.css?<?php echo md5_file(self::DATA_DIR.'theme.css'); ?>">
|
||||
<link rel="stylesheet" href="<?php echo helper::baseUrl(false) . self::DATA_DIR; ?>custom.css?<?php echo md5_file(self::DATA_DIR.'custom.css'); ?>">
|
||||
<!-- Import des fontes en ligne -->
|
||||
<?php
|
||||
if ( file_exists(self::DATA_DIR.'fonts/fonts.html') ){
|
||||
include_once(self::DATA_DIR . 'fonts/fonts.html');
|
||||
} ?>
|
||||
<!-- Import des fontes livrés dans des fichiers WOFF -->
|
||||
<?php
|
||||
if (file_exists(self::DATA_DIR.'fonts/fonts.css')): ?>
|
||||
<link rel="stylesheet" href="<?php echo helper::baseUrl(false) . self::DATA_DIR;?>fonts/fonts.css?<?php echo md5_file(helper::baseUrl(false) . self::DATA_DIR . 'fonts/fonts.css'); ?>">
|
||||
<?php endif; ?>
|
||||
|
||||
<!-- Détection RSS -->
|
||||
<?php if ( ( $this->getData(['page', $this->getUrl(0), 'moduleId']) === 'blog'
|
||||
OR $this->getData(['page', $this->getUrl(0), 'moduleId']) === 'news' )
|
||||
@ -30,6 +21,7 @@
|
||||
<link rel="alternate" type="application/rss+xml" href="'<?php echo helper::baseUrl(). $this->getUrl(0) . '/rss';?>" title="fLUX rss">
|
||||
<?php endif; ?>
|
||||
<?php $this->showStyle(); ?>
|
||||
<!-- Script perso dans le header -->
|
||||
<?php if (file_exists(self::DATA_DIR .'head.inc.html')) {
|
||||
include(self::DATA_DIR .'head.inc.html');
|
||||
}?>
|
||||
@ -196,6 +188,10 @@
|
||||
<?php $this->showCookies(); ?>
|
||||
<!-- Les scripts -->
|
||||
<?php $this->showScript();?>
|
||||
|
||||
<!-- Script perso dans body -->
|
||||
<?php if (file_exists(self::DATA_DIR . 'body.inc.html')) {
|
||||
include(self::DATA_DIR . 'body.inc.html');
|
||||
}
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -499,6 +499,9 @@ class theme extends common {
|
||||
* Accueil de la personnalisation
|
||||
*/
|
||||
public function index() {
|
||||
// Restaurer les fontes utilisateurs
|
||||
$this->setFonts('user');
|
||||
|
||||
// Valeurs en sortie
|
||||
$this->addOutput([
|
||||
'title' => 'Personnalisation des thèmes',
|
||||
@ -560,6 +563,9 @@ class theme extends common {
|
||||
*/
|
||||
public function fonts() {
|
||||
|
||||
// Toutes les fontes installées
|
||||
$this->setFonts('all');
|
||||
|
||||
// Polices liées au thème
|
||||
$used = [
|
||||
'Bannière' => $this->getData (['theme', 'header', 'font']),
|
||||
@ -657,8 +663,7 @@ class theme extends common {
|
||||
) {
|
||||
copy ( self::FILE_DIR . 'source/' . $ressource, self::DATA_DIR . 'fonts/' . $ressource );
|
||||
}
|
||||
// Met à jour les fichiers d'appel des fontes utilisés par les layouts
|
||||
$this->setFonts();
|
||||
|
||||
// Valeurs en sortie
|
||||
$this->addOutput([
|
||||
'notification' => 'La fonte a été créée',
|
||||
@ -710,9 +715,6 @@ class theme extends common {
|
||||
copy ( self::FILE_DIR . 'source/' . $ressource, self::DATA_DIR . 'fonts/' . $ressource );
|
||||
}
|
||||
|
||||
// Met à jour les fichiers d'appel des fontes utilisés par les layouts
|
||||
$this->setFonts();
|
||||
|
||||
// Valeurs en sortie
|
||||
$this->addOutput([
|
||||
'notification' => 'La fonte a été actualisée',
|
||||
@ -751,9 +753,6 @@ class theme extends common {
|
||||
unlink(self::DATA_DIR . $this->getUrl(2));
|
||||
}
|
||||
|
||||
// Met à jour les fichiers d'appel des fontes utilisés par les layouts
|
||||
$this->setFonts();
|
||||
|
||||
// Valeurs en sortie
|
||||
$this->addOutput([
|
||||
'redirect' => helper::baseUrl() . 'theme/fonts',
|
||||
@ -1158,8 +1157,22 @@ class theme extends common {
|
||||
|
||||
/**
|
||||
* Création d'un fichier de liens d'appel des fontes
|
||||
* @param string $scope vaut all pour toutes les fontes ; 'user' pour les fontes utilisateurs
|
||||
*/
|
||||
private function setFonts() {
|
||||
private function setFonts($scope = 'all') {
|
||||
|
||||
// Filtrage par fontes installées
|
||||
$fontsInstalled = [ $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']),
|
||||
$this->getData(['admin', 'fontText']),
|
||||
$this->getData(['admin', 'fontTitle']),
|
||||
];
|
||||
|
||||
// Compression
|
||||
$fontsInstalled = array_unique($fontsInstalled);
|
||||
|
||||
/**
|
||||
* Chargement des polices en ligne dans un fichier fonts.html inclus dans main.php
|
||||
@ -1167,16 +1180,21 @@ class theme extends common {
|
||||
$gf = false;
|
||||
$fileContent = '';
|
||||
foreach ($this->getData(['fonts', 'imported']) as $fontId => $fontValue) {
|
||||
$fileContent .= '<link href="' . $fontValue['resource'] .'" rel="stylesheet">';
|
||||
// Pré connect pour api.google
|
||||
$gf = strpos($fontValue['resource'], 'fonts.googleapis.com') === false ? $gf || false : $gf || true;
|
||||
if (
|
||||
( $scope === 'user' && array_key_exists($fontId, $fontsInstalled) )
|
||||
|| $scope === 'all'
|
||||
) {
|
||||
$fileContent .= '<link href="' . $fontValue['resource'] .'" rel="stylesheet">';
|
||||
// Pré connect pour api.google
|
||||
$gf = strpos($fontValue['resource'], 'fonts.googleapis.com') === false ? $gf || false : $gf || true;
|
||||
}
|
||||
}
|
||||
|
||||
// Ajoute le préconnect des fontes Googles.
|
||||
$fileContent = $gf ? '<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>' . $fileContent
|
||||
: $fileContent;
|
||||
|
||||
// Enregistre la personnalisation
|
||||
// Enregistre la personnalisation
|
||||
file_put_contents(self::DATA_DIR.'fonts/fonts.html', $fileContent);
|
||||
|
||||
/**
|
||||
@ -1184,12 +1202,17 @@ class theme extends common {
|
||||
*/
|
||||
$fileContent = '';
|
||||
foreach ($this->getData(['fonts', 'files']) as $fontId => $fontValue) {
|
||||
if (file_exists(self::DATA_DIR . 'fonts/' . $fontValue['resource']) ) {
|
||||
// Chargement de la police
|
||||
$fileContent .= '@font-face {' ;
|
||||
$fileContent .= 'font-family:"' . $fontValue['font-family'] . '";';
|
||||
$fileContent .= 'src: url("' . helper::baseUrl(false) . self::DATA_DIR . 'fonts/' . $fontValue['resource'] . '");';
|
||||
$fileContent .= '}' ;
|
||||
if (
|
||||
( $scope === 'user' && array_key_exists($fontId, $fontsInstalled) )
|
||||
|| $scope === 'all'
|
||||
) {
|
||||
if (file_exists(self::DATA_DIR . 'fonts/' . $fontValue['resource']) ) {
|
||||
// Chargement de la police
|
||||
$fileContent .= '@font-face {' ;
|
||||
$fileContent .= 'font-family:"' . $fontValue['font-family'] . '";';
|
||||
$fileContent .= 'src: url("' . helper::baseUrl(false) . self::DATA_DIR . 'fonts/' . $fontValue['resource'] . '");';
|
||||
$fileContent .= '}' ;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Enregistre la personnalisation
|
||||
|
Loading…
Reference in New Issue
Block a user