11.1.00 Liste des pages dans footer et config : déplacement du code hors de la vue

This commit is contained in:
Fred Tempez 2021-10-06 18:00:59 +02:00
parent 46c40ec7a3
commit d47f6e291c
4 changed files with 44 additions and 40 deletions

View File

@ -181,6 +181,10 @@ class config extends common {
// Langue traduite courante // Langue traduite courante
public static $i18nSite = 'fr'; public static $i18nSite = 'fr';
// Variable pour construire la liste des pages du site
public static $pages = [];
public static $orphans = [];
/** /**
* Génére les fichiers pour les crawlers * Génére les fichiers pour les crawlers
* Sitemap compressé et non compressé * Sitemap compressé et non compressé
@ -423,6 +427,24 @@ class config extends common {
]); ]);
} }
// Liste des pages
self::$pages = $this->getData(['page']);
foreach(self::$pages as $page => $pageId) {
if ($this->getData(['page',$page,'block']) === 'bar' ||
$this->getData(['page',$page,'disable']) === true) {
unset(self::$pages[$page]);
}
}
self::$orphans = $this->getData(['page']);
foreach(self::$orphans as $page => $pageId) {
if ($this->getData(['page',$page,'block']) === 'bar' ||
$this->getData(['page',$page,'disable']) === true ||
$this->getdata(['page',$page, 'position']) !== 0) {
unset(self::$orphans[$page]);
}
}
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'title' => 'Configuration', 'title' => 'Configuration',

View File

@ -84,39 +84,21 @@
<h4>Pages spéciales</h4> <h4>Pages spéciales</h4>
<div class="row"> <div class="row">
<div class="col4"> <div class="col4">
<?php <?php echo template::select('configHomePageId', helper::arrayCollumn($module::$pages, 'title', 'SORT_ASC'), [
$pages = $this->getData(['page']); 'label' => 'Accueil du site',
foreach($pages as $page => $pageId) { 'selected' =>$this->getData(['locale', 'homePageId']),
if ($this->getData(['page',$page,'block']) === 'bar' || 'help' => 'La première page que vos visiteurs verront.'
$this->getData(['page',$page,'disable']) === true) {
unset($pages[$page]);
}
}
$orphans = $this->getData(['page']);
foreach($orphans as $page => $pageId) {
if ($this->getData(['page',$page,'block']) === 'bar' ||
$this->getData(['page',$page,'disable']) === true ||
$this->getdata(['page',$page, 'position']) !== 0) {
unset($orphans[$page]);
}
}
echo template::select('configHomePageId', helper::arrayCollumn($pages, 'title', 'SORT_ASC'), [
'label' => 'Accueil du site',
'selected' =>$this->getData(['locale', 'homePageId']),
'help' => 'La première page que vos visiteurs verront.'
]); ?> ]); ?>
</div> </div>
<div class="col4"> <div class="col4">
<?php <?php echo template::select('configPage403', array_merge(['none' => 'Page par défaut'],helper::arrayCollumn($module::$orphans, 'title', 'SORT_ASC')), [
echo template::select('configPage403', array_merge(['none' => 'Page par défaut'],helper::arrayCollumn($orphans, 'title', 'SORT_ASC')), [
'label' => 'Accès interdit, erreur 403', 'label' => 'Accès interdit, erreur 403',
'selected' =>$this->getData(['locale', 'page403']), 'selected' =>$this->getData(['locale', 'page403']),
'help' => 'Cette page ne doit pas apparaître dans l\'arborescence du menu. Créez une page orpheline.' 'help' => 'Cette page ne doit pas apparaître dans l\'arborescence du menu. Créez une page orpheline.'
]); ?> ]); ?>
</div> </div>
<div class="col4"> <div class="col4">
<?php <?php echo template::select('configPage404', array_merge(['none' => 'Page par défaut'],helper::arrayCollumn($module::$orphans, 'title', 'SORT_ASC')), [
echo template::select('configPage404', array_merge(['none' => 'Page par défaut'],helper::arrayCollumn($orphans, 'title', 'SORT_ASC')), [
'label' => 'Page inexistante, erreur 404', 'label' => 'Page inexistante, erreur 404',
'selected' =>$this->getData(['locale', 'page404']), 'selected' =>$this->getData(['locale', 'page404']),
'help' => 'Cette page ne doit pas apparaître dans l\'arborescence du menu. Créez une page orpheline.' 'help' => 'Cette page ne doit pas apparaître dans l\'arborescence du menu. Créez une page orpheline.'
@ -125,14 +107,14 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col4"> <div class="col4">
<?php echo template::select('configLegalPageId', array_merge(['none' => 'Aucune'] , helper::arrayCollumn($pages, 'title', 'SORT_ASC') ) , [ <?php echo template::select('configLegalPageId', array_merge(['none' => 'Aucune'] , helper::arrayCollumn($module::$pages, 'title', 'SORT_ASC') ) , [
'label' => 'Mentions légales', 'label' => 'Mentions légales',
'selected' => $this->getData(['locale', 'legalPageId']), 'selected' => $this->getData(['locale', 'legalPageId']),
'help' => 'Les mentions légales sont obligatoires en France. Une option du pied de page ajoute un lien discret vers cette page.' 'help' => 'Les mentions légales sont obligatoires en France. Une option du pied de page ajoute un lien discret vers cette page.'
]); ?> ]); ?>
</div> </div>
<div class="col4"> <div class="col4">
<?php echo template::select('configSearchPageId', array_merge(['none' => 'Aucune'] , helper::arrayCollumn($pages, 'title', 'SORT_ASC') ) , [ <?php echo template::select('configSearchPageId', array_merge(['none' => 'Aucune'] , helper::arrayCollumn($module::$pages, 'title', 'SORT_ASC') ) , [
'label' => 'Recherche dans le site', 'label' => 'Recherche dans le site',
'selected' => $this->getData(['locale', 'searchPageId']), 'selected' => $this->getData(['locale', 'searchPageId']),
'help' => 'Sélectionnez une page contenant le module \'Recherche\'. Une option du pied de page ajoute un lien discret vers cette page.' 'help' => 'Sélectionnez une page contenant le module \'Recherche\'. Une option du pied de page ajoute un lien discret vers cette page.'
@ -140,7 +122,7 @@
</div> </div>
<div class="col4"> <div class="col4">
<?php <?php
echo template::select('configPage302', array_merge(['none' => 'Page par défaut'],helper::arrayCollumn($orphans, 'title', 'SORT_ASC')), [ echo template::select('configPage302', array_merge(['none' => 'Page par défaut'],helper::arrayCollumn($module::$orphans, 'title', 'SORT_ASC')), [
'label' => 'Site en maintenance', 'label' => 'Site en maintenance',
'selected' =>$this->getData(['locale', 'page302']), 'selected' =>$this->getData(['locale', 'page302']),
'help' => 'Cette page ne doit pas apparaître dans l\'arborescence du menu. Créez une page orpheline.' 'help' => 'Cette page ne doit pas apparaître dans l\'arborescence du menu. Créez une page orpheline.'

View File

@ -240,9 +240,8 @@ class theme extends common {
'4' => 'Trois lignes superposées' '4' => 'Trois lignes superposées'
]; ];
// Variables pour construire la liste des pages du site // Variable pour construire la liste des pages du site
public static $pages = []; public static $pages = [];
public static $orphans = [];
/** /**
* Thème des écrans d'administration * Thème des écrans d'administration
@ -397,6 +396,16 @@ class theme extends common {
]); ]);
} }
} }
// Liste des pages
self::$pages = $this->getData(['page']);
foreach(self::$pages as $page => $pageId) {
if ($this->getData(['page',$page,'block']) === 'bar' ||
$this->getData(['page',$page,'disable']) === true) {
unset(self::$pages[$page]);
}
}
// Valeurs en sortie // Valeurs en sortie
$this->addOutput([ $this->addOutput([
'title' => 'Personnalisation du pied de page', 'title' => 'Personnalisation du pied de page',

View File

@ -80,15 +80,6 @@
<div class="col12"> <div class="col12">
<div class="block"> <div class="block">
<h4>Pages spéciales</h4> <h4>Pages spéciales</h4>
<?php
$pages = $this->getData(['page']);
foreach($pages as $page => $pageId) {
if ($this->getData(['page',$page,'block']) === 'bar' ||
$this->getData(['page',$page,'disable']) === true) {
unset($pages[$page]);
}
}
?>
<div class="row"> <div class="row">
<div class="col3 textAlignRight"> <div class="col3 textAlignRight">
<?php echo template::checkbox('themeFooterDisplayLegal', true, 'Mentions légales', [ <?php echo template::checkbox('themeFooterDisplayLegal', true, 'Mentions légales', [
@ -98,7 +89,7 @@
]); ?> ]); ?>
</div> </div>
<div class="col3"> <div class="col3">
<?php echo template::select('configLegalPageId', array_merge(['none' => 'Aucune'] , helper::arrayCollumn($pages, 'title', 'SORT_ASC') ) , [ <?php echo template::select('configLegalPageId', array_merge(['none' => 'Aucune'] , helper::arrayCollumn($module::$pages, 'title', 'SORT_ASC') ) , [
'label' => 'Page Mentions légales ' . template::flag('site', '20px'), 'label' => 'Page Mentions légales ' . template::flag('site', '20px'),
'selected' => $this->getData(['locale', 'legalPageId']) 'selected' => $this->getData(['locale', 'legalPageId'])
]); ?> ]); ?>
@ -111,7 +102,7 @@
]); ?> ]); ?>
</div> </div>
<div class="col3"> <div class="col3">
<?php echo template::select('configSearchPageId', array_merge(['none' => 'Aucune'] , helper::arrayCollumn($pages, 'title', 'SORT_ASC') ) , [ <?php echo template::select('configSearchPageId', array_merge(['none' => 'Aucune'] , helper::arrayCollumn($module::$pages, 'title', 'SORT_ASC') ) , [
'label' => 'Page Rechercher ' . template::flag('site', '20px'), 'label' => 'Page Rechercher ' . template::flag('site', '20px'),
'selected' => $this->getData(['locale', 'searchPageId']), 'selected' => $this->getData(['locale', 'searchPageId']),
'help' => 'Options identique à la configuration du site', 'help' => 'Options identique à la configuration du site',