From ae89206766b4b1364c20ff4c14b15e916b554ca2 Mon Sep 17 00:00:00 2001 From: fredtempez Date: Fri, 11 Feb 2022 16:07:11 +0100 Subject: [PATCH 1/3] readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index f2902060..c2d81a2d 100755 --- a/README.md +++ b/README.md @@ -78,6 +78,7 @@ Pour revenir à la version 8, renommez ce fichier "data.json". [F] local.json Données du site propres à la langue [R] content Dossier des contenus de page [F] accueil.html Exemple contenu de la page d'accueil + [F] fonts Dossier contenant les fontes installées [R] modules Personnalisation des modules ou données propres [F] admin.css Thème des pages d'administration [F] admin.json Données de thème des pages d'administration @@ -85,6 +86,7 @@ Pour revenir à la version 8, renommez ce fichier "data.json". [F] config.json Configuration du site [F] core.json Configuration du noyau [F] custom.css Feuille de style de la personnalisation avancée + [F] fonts.json Descripteur des fontes personnalisées [F] journal.log Journalisation des actions [F] theme.css Thème du site [F] theme.json Données du site From 04c597d0fe94780dd4ab31f3edc8650256a865fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Sat, 12 Feb 2022 15:54:15 +0100 Subject: [PATCH 2/3] cosmetique --- core/module/theme/view/fontAdd/fontAdd.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/module/theme/view/fontAdd/fontAdd.php b/core/module/theme/view/fontAdd/fontAdd.php index 8ee65489..23028e9f 100644 --- a/core/module/theme/view/fontAdd/fontAdd.php +++ b/core/module/theme/view/fontAdd/fontAdd.php @@ -21,13 +21,13 @@

Identité de la fonte

- cdnFonts', [ 'help' => 'Police utilisée en ligne, se connecter sur cdnFonts pour récupérer les informations nécessaires.' ]); ?>
'
Sélectionnez un fichier de fonte au format WOFF.' + 'help' => 'Sélectionnez un fichier de fonte au format WOFF.' ]); ?>
From 333bc1f9cba6c5c2e66db309dd83a5774d1ec90e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Tempez?= Date: Sat, 12 Feb 2022 16:55:41 +0100 Subject: [PATCH 3/3] Pages dans le menu accessoire --- CHANGES.md | 1 + core/core.php | 265 ++++++++++-------- core/module/install/ressource/defaultdata.php | 51 ++-- core/module/page/page.php | 7 +- core/module/page/view/edit/edit.js.php | 11 +- core/module/page/view/edit/edit.php | 26 +- 6 files changed, 209 insertions(+), 152 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index d24180ef..ce1eda4e 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -12,6 +12,7 @@ - Les polices pourront désormais être téléchargées à partir du site et non du CD grâce à une nouvelle fonctionnalité du thème permet de gérer l'installation des fontes, soit à partir du CDN, soit à partir d'un fichier téléchargé. - Thème / Bannière : ergonomie de l'information sur l'image sélectionnée. - Identifications des éléments du menu, les pages parents prennent comme id CSS leur id, les pages enfants également et pour classe Id de la page parente. + - Pages dans le menu accessoire. Ce menu à affiché à droite de la barre de menu, il est traditionnellement utilisé pour y placer les drapeaux de traduction, le bouton de connexion et de gestion du compte des membres. Il sera désormais possible d'y placer des pages sous la forme d'icônes de préférence. ## Version 11.2.05 - Corrections : diff --git a/core/core.php b/core/core.php index a044462c..b96cde06 100644 --- a/core/core.php +++ b/core/core.php @@ -1651,130 +1651,11 @@ class common { */ public function showMenu() { // Met en forme les items du menu - $itemsLeft = ''; - $currentPageId = $this->getData(['page', $this->getUrl(0)]) ? $this->getUrl(0) : $this->getUrl(2); - foreach($this->getHierarchy() as $parentPageId => $childrenPageIds) { - // Passer les entrées masquées - // Propriétés de l'item - $active = ($parentPageId === $currentPageId OR in_array($currentPageId, $childrenPageIds)) ? 'active ' : ''; - $targetBlank = $this->getData(['page', $parentPageId, 'targetBlank']) ? ' target="_blank"' : ''; - // Mise en page de l'item - $itemsLeft .= '
  • '; + $itemsLeft = $this->formatMenu(false); - if ( ( $this->getData(['page',$parentPageId,'disable']) === true - AND $this->getUser('password') !== $this->getInput('ZWII_USER_PASSWORD') - ) OR ( - $this->getData(['page',$parentPageId,'disable']) === true - AND $this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD') - AND $this->getUser('group') < self::GROUP_MODERATOR - ) - ){ - $pageUrl = ($this->getData(['locale', 'homePageId']) === $this->getUrl(0)) ? helper::baseUrl(false) : helper::baseUrl() . $this->getUrl(0); - $itemsLeft .= ''; - } else { - $pageUrl = ($this->getData(['locale', 'homePageId']) === $parentPageId) ? helper::baseUrl(false) : helper::baseUrl() . $parentPageId; - $itemsLeft .= ''; - } - - switch ($this->getData(['page', $parentPageId, 'typeMenu'])) { - case '' : - $itemsLeft .= $this->getData(['page', $parentPageId, 'shortTitle']); - break; - case 'text' : - $itemsLeft .= $this->getData(['page', $parentPageId, 'shortTitle']); - break; - case 'icon' : - if ($this->getData(['page', $parentPageId, 'iconUrl']) != "") { - $itemsLeft .= ''.$this->getData(['page', $parentPageId, 'shortTitle']).''; - } else { - $itemsLeft .= $this->getData(['page', $parentPageId, 'shortTitle']); - } - break; - case 'icontitle' : - if ($this->getData(['page', $parentPageId, 'iconUrl']) != "") { - $itemsLeft .= ''.$this->getData(['page', $parentPageId, 'titlshortTitlee']).''; - } else { - $itemsLeft .= $this->getData(['page', $parentPageId, 'shortTitle']); - } - break; - } - // Cas où les pages enfants enfant sont toutes masquées dans le menu - // ne pas afficher de symbole lorsqu'il n'y a rien à afficher - $totalChild = 0; - $disableChild = 0; - foreach($childrenPageIds as $childKey) { - $totalChild += 1; - } - if($childrenPageIds && $disableChild !== $totalChild && - $this->getdata(['page',$parentPageId,'hideMenuChildren']) === false) { - $itemsLeft .= template::ico('down', 'left'); - } - // ------------------------------------------------ - $itemsLeft .= ''; - if ($this->getdata(['page',$parentPageId,'hideMenuChildren']) === true || - empty($childrenPageIds)) { - continue; - } - $itemsLeft .= ''; - } + // Menu extra + $itemsRight = $this->formatMenu(true); // Lien de connexion - $itemsRight = ''; if( ( $this->getData(['theme', 'menu', 'loginLink']) @@ -1806,6 +1687,146 @@ class common { echo ''; } + /** + * Cette fonction est appelée par showMenu + * Elle permet de générer le menu selon qu'il s'agisse du menu principal ou du petit menu + * @param $menu bool false pour le menu principal, true pour le petit menu + */ + private function formatMenu($extra = false) { + $items = ''; + $currentPageId = $this->getData(['page', $this->getUrl(0)]) ? $this->getUrl(0) : $this->getUrl(2); + foreach($this->getHierarchy() as $parentPageId => $childrenPageIds) { + // Menu extra ou standard + + if ( + // Absence de la position extra, la page est toujours affichée à gauche. + ($this->getData(['page',$parentPageId,'extraPosition']) !== NULL || $extra === true) + && + $this->getData(['page',$parentPageId,'extraPosition']) !== $extra ) { + continue; + } + // Propriétés de l'item + $active = ($parentPageId === $currentPageId OR in_array($currentPageId, $childrenPageIds)) ? 'active ' : ''; + $targetBlank = $this->getData(['page', $parentPageId, 'targetBlank']) ? ' target="_blank"' : ''; + // Mise en page de l'item + $items .= '
  • '; + + if ( ( $this->getData(['page',$parentPageId,'disable']) === true + AND $this->getUser('password') !== $this->getInput('ZWII_USER_PASSWORD') + ) OR ( + $this->getData(['page',$parentPageId,'disable']) === true + AND $this->getUser('password') === $this->getInput('ZWII_USER_PASSWORD') + AND $this->getUser('group') < self::GROUP_MODERATOR + ) + ){ + $pageUrl = ($this->getData(['locale', 'homePageId']) === $this->getUrl(0)) ? helper::baseUrl(false) : helper::baseUrl() . $this->getUrl(0); + $items .= ''; + } else { + $pageUrl = ($this->getData(['locale', 'homePageId']) === $parentPageId) ? helper::baseUrl(false) : helper::baseUrl() . $parentPageId; + $items .= ''; + } + + switch ($this->getData(['page', $parentPageId, 'typeMenu'])) { + case '' : + $items .= $this->getData(['page', $parentPageId, 'shortTitle']); + break; + case 'text' : + $items .= $this->getData(['page', $parentPageId, 'shortTitle']); + break; + case 'icon' : + if ($this->getData(['page', $parentPageId, 'iconUrl']) != "") { + $items .= ''.$this->getData(['page', $parentPageId, 'shortTitle']).''; + } else { + $items .= $this->getData(['page', $parentPageId, 'shortTitle']); + } + break; + case 'icontitle' : + if ($this->getData(['page', $parentPageId, 'iconUrl']) != "") { + $items .= ''.$this->getData(['page', $parentPageId, 'titlshortTitlee']).''; + } else { + $items .= $this->getData(['page', $parentPageId, 'shortTitle']); + } + break; + } + // Cas où les pages enfants enfant sont toutes masquées dans le menu + // ne pas afficher de symbole lorsqu'il n'y a rien à afficher + $totalChild = 0; + $disableChild = 0; + foreach($childrenPageIds as $childKey) { + $totalChild += 1; + } + if($childrenPageIds && $disableChild !== $totalChild && + $this->getdata(['page',$parentPageId,'hideMenuChildren']) === false) { + $items .= template::ico('down', 'left'); + } + // ------------------------------------------------ + $items .= ''; + if ($this->getdata(['page',$parentPageId,'hideMenuChildren']) === true || + empty($childrenPageIds)) { + continue; + } + $items .= ''; + + } + return($items); + } + /** * Générer un menu pour la barre latérale * Uniquement texte diff --git a/core/module/install/ressource/defaultdata.php b/core/module/install/ressource/defaultdata.php index f6238171..197d69b5 100644 --- a/core/module/install/ressource/defaultdata.php +++ b/core/module/install/ressource/defaultdata.php @@ -113,7 +113,8 @@ class init extends common { 'barRight' => '', 'displayMenu' => 'none', 'hideMenuSide' => false, - 'hideMenuChildren' =>false + 'hideMenuChildren' =>false, + 'extraPosition' => false ] ], 'module' => [], @@ -272,7 +273,8 @@ class init extends common { 'barRight' => '', 'displayMenu' => 'none', 'hideMenuSide' => false, - 'hideMenuChildren' =>false + 'hideMenuChildren' =>false, + 'extraPosition' => false ], 'enfant' => [ 'typeMenu' => 'text', @@ -296,7 +298,8 @@ class init extends common { 'barRight' => '', 'displayMenu' => 'none', 'hideMenuSide' => false, - 'hideMenuChildren' =>false + 'hideMenuChildren' =>false, + 'extraPosition' => false ], 'privee' => [ 'typeMenu' => 'text', @@ -320,7 +323,8 @@ class init extends common { 'barRight' => '', 'displayMenu' => 'none', 'hideMenuSide' => false, - 'hideMenuChildren' =>false + 'hideMenuChildren' =>false, + 'extraPosition' => false ], 'mise-en-page' => [ 'typeMenu' => 'text', @@ -344,7 +348,8 @@ class init extends common { 'barRight' => '', 'displayMenu' => 'none', 'hideMenuSide' => false, - 'hideMenuChildren' =>false + 'hideMenuChildren' =>false, + 'extraPosition' => false ], 'menu-lateral' => [ 'typeMenu' => 'text', @@ -368,7 +373,8 @@ class init extends common { 'barRight' => 'barrelateraleavecmenu', 'displayMenu' => 'none', 'hideMenuSide' => false, - 'hideMenuChildren' =>false + 'hideMenuChildren' =>false, + 'extraPosition' => false ], 'blog' => [ 'typeMenu' => 'text', @@ -392,7 +398,8 @@ class init extends common { 'barRight' => '', 'displayMenu' => 'none', 'hideMenuSide' => false, - 'hideMenuChildren' =>false + 'hideMenuChildren' =>false, + 'extraPosition' => false ], 'galeries' => [ 'typeMenu' => 'text', @@ -416,7 +423,8 @@ class init extends common { 'barRight' => '', 'displayMenu' => 'none', 'hideMenuSide' => false, - 'hideMenuChildren' =>false + 'hideMenuChildren' =>false, + 'extraPosition' => false ], 'site-de-zwii' => [ 'typeMenu' => 'text', @@ -441,7 +449,8 @@ class init extends common { 'barRight' => '', 'displayMenu' => 'none', 'hideMenuSide' => false, - 'hideMenuChildren' =>false + 'hideMenuChildren' =>false, + 'extraPosition' => false ], 'contact' => [ 'typeMenu' => 'text', @@ -465,7 +474,8 @@ class init extends common { 'barRight' => '', 'displayMenu' => 'none', 'hideMenuSide' => false, - 'hideMenuChildren' =>false + 'hideMenuChildren' =>false, + 'extraPosition' => false ], 'barre' => [ 'typeMenu' => 'text', @@ -489,7 +499,8 @@ class init extends common { 'barRight' => '', 'displayMenu' => 'none', 'hideMenuSide' => false, - 'hideMenuChildren' =>false + 'hideMenuChildren' =>false, + 'extraPosition' => false ], 'barrelateraleavecmenu' => [ 'typeMenu' => 'text', @@ -513,7 +524,8 @@ class init extends common { 'barRight' => '', 'displayMenu' => 'parents', 'hideMenuSide' => false, - 'hideMenuChildren' =>false + 'hideMenuChildren' =>false, + 'extraPosition' => false ], 'mentions-legales' => [ 'typeMenu' => 'text', @@ -538,7 +550,8 @@ class init extends common { 'displayMenu' => 'none', 'hideMenuSide' => false, 'hideMenuHead' => false, - 'hideMenuChildren' => false + 'hideMenuChildren' => false, + 'extraPosition' => false ], 'erreur302' => [ 'typeMenu' => 'text', @@ -563,7 +576,8 @@ class init extends common { 'displayMenu' => 'none', 'hideMenuSide' => true, 'hideMenuHead' => true, - 'hideMenuChildren' => true + 'hideMenuChildren' => true, + 'extraPosition' => false ], 'erreur403' => [ 'typeMenu' => 'text', @@ -587,7 +601,8 @@ class init extends common { 'barRight' => '', 'displayMenu' => 'none', 'hideMenuSide' => false, - 'hideMenuChildren' => false + 'hideMenuChildren' => false, + 'extraPosition' => false ], 'erreur404' => [ 'typeMenu' => 'text', @@ -611,7 +626,8 @@ class init extends common { 'barRight' => '', 'displayMenu' => 'none', 'hideMenuSide' => false, - 'hideMenuChildren' =>false + 'hideMenuChildren' =>false, + 'extraPosition' => false ], 'recherche' => [ 'typeMenu' => 'icon', @@ -635,7 +651,8 @@ class init extends common { 'barRight' => '', 'displayMenu' => 'none', 'hideMenuSide' => false, - 'hideMenuChildren' => false + 'hideMenuChildren' => false, + 'extraPosition' => true ], ], 'module' => [ diff --git a/core/module/page/page.php b/core/module/page/page.php index 8f4eb067..17cbb7d3 100644 --- a/core/module/page/page.php +++ b/core/module/page/page.php @@ -53,10 +53,14 @@ class page extends common { 'bar' => 'Barre latérale' ]; public static $displayMenu = [ - 'none' => 'Aucun', + 'none' => 'Aucun', 'parents' => 'Le menu', 'children' => 'Le sous-menu de la page parente' ]; + public static $extraPosition = [ + false => 'Menu standard', + true => 'Menu accessoire' + ]; /** @@ -472,6 +476,7 @@ class page extends common { 'hideMenuSide' => $this->getinput('pageEditHideMenuSide', helper::FILTER_BOOLEAN), 'hideMenuHead' => $this->getinput('pageEditHideMenuHead', helper::FILTER_BOOLEAN), 'hideMenuChildren' => $this->getinput('pageEditHideMenuChildren', helper::FILTER_BOOLEAN), + 'extraPosition' => $this->getinput('pageEditExtraPosition', helper::FILTER_BOOLEAN) ] ]); diff --git a/core/module/page/view/edit/edit.js.php b/core/module/page/view/edit/edit.js.php index 7ea3dbbe..469aace3 100644 --- a/core/module/page/view/edit/edit.js.php +++ b/core/module/page/view/edit/edit.js.php @@ -423,6 +423,8 @@ pageEditBlockDOM.on("change", function() { if ($("#pageEditParentPageId").val() !== "") { $("#pageEditbreadCrumbWrapper").addClass("disabled"); $("#pageEditbreadCrumbWrapper").slideDown(); + $("#pageEditExtraPositionWrapper").slideDown(); + } else { } if ($("#pageEditModuleId").val() === "") { $("#pageEditModuleConfig").addClass("disabled"); @@ -467,18 +469,23 @@ pageEditParentPageIdDOM.on("change", function() { !$('input[name=pageEditHideTitle]').is(':checked') ) { $("#pageEditbreadCrumbWrapper").removeClass("disabled"); $("#pageEditbreadCrumbWrapper").slideUp(); + $("#pageEditExtraPositionWrapper").slideUp(); } else { $("#pageEditbreadCrumbWrapper").addClass("disabled"); $("#pageEditbreadCrumbWrapper").slideDown(); + $("#pageEditExtraPositionWrapper").slideDown(); } if ($(this).val() !== "") { $("#pageEditHideMenuChildrenWrapper").removeClass("disabled"); $("#pageEditHideMenuChildrenWrapper").slideUp(); - } else { + $("#pageEditExtraPositionWrapper").slideUp(); + } else { $("#pageEditHideMenuChildrenWrapper").addClass("disabled"); $("#pageEditHideMenuChildrenWrapper").slideDown(); - } + $("#pageEditExtraPositionWrapper").slideDown(); + } + }); diff --git a/core/module/page/view/edit/edit.php b/core/module/page/view/edit/edit.php index ce91fb07..e6a1fa82 100644 --- a/core/module/page/view/edit/edit.php +++ b/core/module/page/view/edit/edit.php @@ -190,13 +190,13 @@
    -
    +
    'Position', 'help' => '\'Ne pas afficher\' crée une page orpheline non accessible par le biais des menus.' ]); ?>
    -
    +
    getHierarchy($this->getUrl(2), false)): ?> $this->getData(['page', $this->getUrl(2), 'parentPageId']) @@ -208,8 +208,14 @@ ]); ?>
    +
    + 'Emplacement :', + 'selected' => $this->getData(['page', $this->getUrl(2), 'extraPosition']), + 'help' => 'Le petit accessoire est aligné à droite de la barre de menu, c\'est un emplacement réservé aux drapeaux et au bouton de connexion.' + ]); ?> +
    -
    - $this->getData(['page', $this->getUrl(2), 'hideMenuChildren']) - ]); ?> + $this->getData(['page', $this->getUrl(2), 'hideMenuChildren']) + ]); ?>
    - $this->getData(['page', $this->getUrl(2), 'hideMenuSide']), - 'help' => 'La page est affichée dans un menu horizontal mais pas dans le menu vertical d\'une barre latérale.' - ]); ?> + $this->getData(['page', $this->getUrl(2), 'hideMenuSide']), + 'help' => 'La page est affichée dans un menu horizontal mais pas dans le menu vertical d\'une barre latérale.' + ]); ?>