diff --git a/CHANGES.md b/CHANGES.md index 6ac33309..819296f9 100755 --- a/CHANGES.md +++ b/CHANGES.md @@ -18,6 +18,7 @@ Corrections : - 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 ecf9950c..dba24540 100644 --- a/core/core.php +++ b/core/core.php @@ -1675,130 +1675,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']) @@ -1830,6 +1711,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 3f61aa13..832c7a26 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 65f245b3..abf02ab3 100644 --- a/core/module/page/view/edit/edit.php +++ b/core/module/page/view/edit/edit.php @@ -189,13 +189,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']) @@ -207,8 +207,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.' + ]); ?>
    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.' ]); ?>