diff --git a/core/module/config/config.php b/core/module/config/config.php
index 3f56c2da..d54db0ce 100644
--- a/core/module/config/config.php
+++ b/core/module/config/config.php
@@ -181,6 +181,10 @@ class config extends common {
// Langue traduite courante
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
* 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
$this->addOutput([
'title' => 'Configuration',
diff --git a/core/module/config/view/index/index.php b/core/module/config/view/index/index.php
index e2ad2ab8..81af2ee2 100644
--- a/core/module/config/view/index/index.php
+++ b/core/module/config/view/index/index.php
@@ -84,39 +84,21 @@
- getData(['page']);
- foreach($pages as $page => $pageId) {
- if ($this->getData(['page',$page,'block']) === 'bar' ||
- $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.'
+ 'Accueil du site',
+ 'selected' =>$this->getData(['locale', 'homePageId']),
+ 'help' => 'La première page que vos visiteurs verront.'
]); ?>
- 'Page par défaut'],helper::arrayCollumn($orphans, 'title', 'SORT_ASC')), [
+ 'Page par défaut'],helper::arrayCollumn($module::$orphans, 'title', 'SORT_ASC')), [
'label' => 'Accès interdit, erreur 403',
'selected' =>$this->getData(['locale', 'page403']),
'help' => 'Cette page ne doit pas apparaître dans l\'arborescence du menu. Créez une page orpheline.'
]); ?>
- 'Page par défaut'],helper::arrayCollumn($orphans, 'title', 'SORT_ASC')), [
+ 'Page par défaut'],helper::arrayCollumn($module::$orphans, 'title', 'SORT_ASC')), [
'label' => 'Page inexistante, erreur 404',
'selected' =>$this->getData(['locale', 'page404']),
'help' => 'Cette page ne doit pas apparaître dans l\'arborescence du menu. Créez une page orpheline.'
@@ -125,14 +107,14 @@
- 'Aucune'] , helper::arrayCollumn($pages, 'title', 'SORT_ASC') ) , [
+ 'Aucune'] , helper::arrayCollumn($module::$pages, 'title', 'SORT_ASC') ) , [
'label' => 'Mentions légales',
'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.'
]); ?>
- 'Aucune'] , helper::arrayCollumn($pages, 'title', 'SORT_ASC') ) , [
+ 'Aucune'] , helper::arrayCollumn($module::$pages, 'title', 'SORT_ASC') ) , [
'label' => 'Recherche dans le site',
'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.'
@@ -140,7 +122,7 @@
'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',
'selected' =>$this->getData(['locale', 'page302']),
'help' => 'Cette page ne doit pas apparaître dans l\'arborescence du menu. Créez une page orpheline.'
diff --git a/core/module/theme/theme.php b/core/module/theme/theme.php
index eaff4ee5..dbd70248 100644
--- a/core/module/theme/theme.php
+++ b/core/module/theme/theme.php
@@ -240,9 +240,8 @@ class theme extends common {
'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 $orphans = [];
/**
* 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
$this->addOutput([
'title' => 'Personnalisation du pied de page',
diff --git a/core/module/theme/view/footer/footer.php b/core/module/theme/view/footer/footer.php
index 8988f45a..41753f43 100644
--- a/core/module/theme/view/footer/footer.php
+++ b/core/module/theme/view/footer/footer.php
@@ -80,15 +80,6 @@
Pages spéciales
- getData(['page']);
- foreach($pages as $page => $pageId) {
- if ($this->getData(['page',$page,'block']) === 'bar' ||
- $this->getData(['page',$page,'disable']) === true) {
- unset($pages[$page]);
- }
- }
- ?>
- 'Aucune'] , helper::arrayCollumn($pages, 'title', 'SORT_ASC') ) , [
+ 'Aucune'] , helper::arrayCollumn($module::$pages, 'title', 'SORT_ASC') ) , [
'label' => 'Page Mentions légales ' . template::flag('site', '20px'),
'selected' => $this->getData(['locale', 'legalPageId'])
]); ?>
@@ -111,7 +102,7 @@
]); ?>
- 'Aucune'] , helper::arrayCollumn($pages, 'title', 'SORT_ASC') ) , [
+ 'Aucune'] , helper::arrayCollumn($module::$pages, 'title', 'SORT_ASC') ) , [
'label' => 'Page Rechercher ' . template::flag('site', '20px'),
'selected' => $this->getData(['locale', 'searchPageId']),
'help' => 'Options identique à la configuration du site',