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 .= '';
- } else {
- $itemsLeft .= $this->getData(['page', $parentPageId, 'shortTitle']);
- }
- break;
- case 'icontitle' :
- if ($this->getData(['page', $parentPageId, 'iconUrl']) != "") {
- $itemsLeft .= '';
- } 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 .= '';
- foreach($childrenPageIds as $childKey) {
- // Propriétés de l'item
- $active = ($childKey === $currentPageId) ? 'active ' : '';
- $targetBlank = $this->getData(['page', $childKey, 'targetBlank']) ? ' target="_blank"' : '';
- // Mise en page du sous-item
- $itemsLeft .= '- ';
- if ( ( $this->getData(['page',$childKey,'disable']) === true
- AND $this->getUser('password') !== $this->getInput('ZWII_USER_PASSWORD')
- ) OR (
- $this->getData(['page',$childKey,'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']) === $childKey) ? helper::baseUrl(false) : helper::baseUrl() . $childKey;
- $itemsLeft .= '';
- }
-
- switch ($this->getData(['page', $childKey, 'typeMenu'])) {
- case '' :
- $itemsLeft .= $this->getData(['page', $childKey, 'shortTitle']);
- break;
- case 'text' :
- $itemsLeft .= $this->getData(['page', $childKey, 'shortTitle']);
- break;
- case 'icon' :
- if ($this->getData(['page', $childKey, 'iconUrl']) != "") {
- $itemsLeft .= '';
- } else {
- $itemsLeft .= $this->getData(['page', $parentPageId, 'shortTitle']);
- }
- break;
- case 'icontitle' :
- if ($this->getData(['page', $childKey, 'iconUrl']) != "") {
- $itemsLeft .= '';
- } else {
- $itemsLeft .= $this->getData(['page', $childKey, 'shortTitle']);
- }
- break;
- case 'icontext' :
- if ($this->getData(['page', $childKey, 'iconUrl']) != "") {
- $itemsLeft .= '';
- $itemsLeft .= $this->getData(['page', $childKey, 'shortTitle']);
- } else {
- $itemsLeft .= $this->getData(['page', $childKey, 'shortTitle']);
- }
- break;
- }
- $itemsLeft .= '
';
- }
- $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 .= '';
+ } else {
+ $items .= $this->getData(['page', $parentPageId, 'shortTitle']);
+ }
+ break;
+ case 'icontitle' :
+ if ($this->getData(['page', $parentPageId, 'iconUrl']) != "") {
+ $items .= '';
+ } 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 .= '';
+ foreach($childrenPageIds as $childKey) {
+ // Propriétés de l'item
+ $active = ($childKey === $currentPageId) ? 'active ' : '';
+ $targetBlank = $this->getData(['page', $childKey, 'targetBlank']) ? ' target="_blank"' : '';
+ // Mise en page du sous-item
+ $items .= '- ';
+ if ( ( $this->getData(['page',$childKey,'disable']) === true
+ AND $this->getUser('password') !== $this->getInput('ZWII_USER_PASSWORD')
+ ) OR (
+ $this->getData(['page',$childKey,'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']) === $childKey) ? helper::baseUrl(false) : helper::baseUrl() . $childKey;
+ $items .= '';
+ }
+
+ switch ($this->getData(['page', $childKey, 'typeMenu'])) {
+ case '' :
+ $items .= $this->getData(['page', $childKey, 'shortTitle']);
+ break;
+ case 'text' :
+ $items .= $this->getData(['page', $childKey, 'shortTitle']);
+ break;
+ case 'icon' :
+ if ($this->getData(['page', $childKey, 'iconUrl']) != "") {
+ $items .= '';
+ } else {
+ $items .= $this->getData(['page', $parentPageId, 'shortTitle']);
+ }
+ break;
+ case 'icontitle' :
+ if ($this->getData(['page', $childKey, 'iconUrl']) != "") {
+ $items .= '';
+ } else {
+ $items .= $this->getData(['page', $childKey, 'shortTitle']);
+ }
+ break;
+ case 'icontext' :
+ if ($this->getData(['page', $childKey, 'iconUrl']) != "") {
+ $items .= '';
+ $items .= $this->getData(['page', $childKey, 'shortTitle']);
+ } else {
+ $items .= $this->getData(['page', $childKey, 'shortTitle']);
+ }
+ break;
+ }
+ $items .= '
';
+ }
+ $items .= '
';
+
+ }
+ return($items);
+ }
+
+
/**
* Générer un menu pour la barre latérale
* Uniquement texte