diff --git a/core/core.php b/core/core.php index 82985e9a..2d8b1d37 100644 --- a/core/core.php +++ b/core/core.php @@ -1675,137 +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) { - // 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 - $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']) @@ -1837,6 +1711,147 @@ 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