1408 bloque la suppression d'une fonte mise en oeuvre dans le theme d'un autre espace.

Optimise le code
This commit is contained in:
Fred Tempez 2024-01-17 18:14:30 +01:00
parent 995a4364f6
commit 280962b852
4 changed files with 37 additions and 28 deletions

View File

@ -1,4 +1,4 @@
# ZwiiCampus 1.4.07
# ZwiiCampus 1.4.08
ZwiiCampus (Learning Management System) est logiciel auteur destiné à mettre en ligne des tutoriels. Il dispose de plusieurs modalités d'ouverture et d'accès des contenus. Basé sur la version 13 du CMS Zwii, la structure logicielle est solide, le framework de Zwii est éprouvé.

View File

@ -50,7 +50,7 @@ class common
const ACCESS_TIMER = 1800;
// Numéro de version
const ZWII_VERSION = '1.4.07';
const ZWII_VERSION = '1.4.08';
// URL autoupdate
const ZWII_UPDATE_URL = 'https://forge.chapril.org/ZwiiCMS-Team/campus-update/raw/branch/master/';

View File

@ -629,15 +629,18 @@ class theme extends common
$this->setFonts('all');
// Polices liées au thème
$used = [
'Bannière' => $this->getData(['theme', 'header', 'font']),
'Menu' => $this->getData(['theme', 'menu', 'font']),
'Titre ' => $this->getData(['theme', 'title', 'font']),
'Texte' => $this->getData(['theme', 'text', 'font']),
'Pied de page' => $this->getData(['theme', 'footer', 'font']),
'Titre (admin)' => $this->getData(['admin', 'fontTitle']),
'Admin (texte)' => $this->getData(['admin', 'fontText'])
];
$admin = json_decode(file_get_contents(self::DATA_DIR . 'admin.json'), true);
$fonts['Admin Titre (admin)'] = $admin['admin']['fontTitle'];
$fonts['Admin Texte (admin)'] = $admin['admin']['fontText'];
// Polices liées aux thèmes des espaces
foreach ($this->getData(['course']) as $courseId => $courseValue) {
$theme = json_decode(file_get_contents(self::DATA_DIR . $courseId . '/theme.json'), true);
$fonts['Bannière ('. $courseId .')'] = $theme['theme']['header']['font'];
$fonts['Menu ('. $courseId .')'] = $theme['theme']['menu']['font'];
$fonts['Titre ('. $courseId .')'] = $theme['theme']['title']['font'];
$fonts['Texte ('. $courseId .')'] = $theme['theme']['text']['font'];
$fonts['Pied de page ('. $courseId .')'] = $theme['theme']['footer']['font'];
}
// Récupérer le détail des fontes installées
//$f = $this->getFonts();
@ -645,22 +648,24 @@ class theme extends common
$f['imported'] = $this->getData(['font', 'imported']);
$f['websafe'] = self::$fontsWebSafe;
// Listes des espaces à parcourir pour bloquer la suppression d'une fonte utilisée
$courses = array_merge(['admin'], array_keys($this->getData(['course'])));
// Parcourir les fontes disponibles et construire le tableau pour le formulaire
foreach ($f as $type => $typeValue) {
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/>';
}
}
// Recherche les correrspondances
$result = array_filter($fonts, function($value) use ($fontId) {
return $value == $fontId;
});
$keyResults = array_keys($result);
self::$fontsDetail[] = [
$fontId,
'<span style="font-family:' . $f[$type][$fontId]['font-family'] . '">' . $f[$type][$fontId]['name'] . '</span>',
$f[$type][$fontId]['font-family'],
$fontUsed[$fontId],
empty($keyResults) ? '' : '<span class="fontsList">' . implode('<br />', $keyResults) . '</span>',
$type,
$type !== 'websafe' ? template::button('themeFontEdit' . $fontId, [
'class' => 'themeFontEdit',
@ -1068,8 +1073,8 @@ class theme extends common
// Substitution des fontes Google
if ($modele = 'theme') {
// Déplacement des deux fichiers de theme dans le siteContent
copy (self::DATA_DIR . 'theme.css', self::DATA_DIR . self::$siteContent . '/theme.css');
copy (self::DATA_DIR . 'theme.json', self::DATA_DIR . self::$siteContent . '/theme.json');
copy(self::DATA_DIR . 'theme.css', self::DATA_DIR . self::$siteContent . '/theme.css');
copy(self::DATA_DIR . 'theme.json', self::DATA_DIR . self::$siteContent . '/theme.json');
unlink(self::DATA_DIR . 'theme.css');
unlink(self::DATA_DIR . 'theme.json');
$c = $this->subFont(self::DATA_DIR . self::$siteContent . '/theme.json');

View File

@ -16,3 +16,7 @@
/** NE PAS EFFACER
* admin.css
*/
.fontsList{
font-size: 0.7rem;
}