From 0102e733069872a5082b779ffbf1c86d65277f5c Mon Sep 17 00:00:00 2001 From: Christian Foellmann Date: Fri, 30 Jul 2021 13:15:01 +0200 Subject: [PATCH 1/3] add hook 'menu_LeftMenuArray' to filter the leftmenu items --- htdocs/core/class/hookmanager.class.php | 1 + htdocs/core/menus/standard/eldy.lib.php | 28 ++++++++++++++++++++++--- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/htdocs/core/class/hookmanager.class.php b/htdocs/core/class/hookmanager.class.php index 5e24ee03fa4..4750e0924dd 100644 --- a/htdocs/core/class/hookmanager.class.php +++ b/htdocs/core/class/hookmanager.class.php @@ -193,6 +193,7 @@ class HookManager 'getFormatedSupplierRef', 'getIdProfUrl', 'getInputIdProf', + 'menu_LeftMenuItems', 'moveUploadedFile', 'moreHtmlStatus', 'pdf_build_address', diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index c192d5e6ac6..a54d5a7a358 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -688,9 +688,9 @@ function print_end_menu_array() * @param int $type_user 0=Menu for backoffice, 1=Menu for front office * @return int Nb of menu entries */ -function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabMenu, &$menu, $noout = 0, $forcemainmenu = '', $forceleftmenu = '', $moredata = null, $type_user = 0) -{ - global $user, $conf, $langs, $dolibarr_main_db_name, $mysoc; +function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabMenu, &$menu, $noout = 0, $forcemainmenu = '', $forceleftmenu = '', $moredata = null, $type_user = 0) { + + global $user, $conf, $langs, $dolibarr_main_db_name, $mysoc, $hookmanager; //var_dump($tabMenu); @@ -1958,6 +1958,28 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM return 0; } + // Allow the $menu_array of the menu to be manipulated by modules + $parameters = array( + 'mainmenu' => $mainmenu, + ); + $hook_items = $menu_array; + $reshook = $hookmanager->executeHooks('menu_LeftMenuArray', $parameters, $hook_items); // Note that $action and $object may have been modified by some hooks + + if (is_numeric($reshook)) { + if ($reshook == 0 && !empty($hookmanager->results)) { + $menu_array[] = $hookmanager->results; // add + } elseif ($reshook == 1) { + $menu_array = $hookmanager->results; // replace + } + + // @todo Sort menu items by 'position' value +// $position = array(); +// foreach ($menu_array as $key => $row) { +// $position[$key] = $row['position']; +// } +// array_multisort($position, SORT_ASC, $menu_array); + } + // TODO Use the position property in menu_array to reorder the $menu_array //var_dump($menu_array); /*$new_menu_array = array(); From 3ceb451734a35aaa278a35e717241d4991817a18 Mon Sep 17 00:00:00 2001 From: stickler-ci Date: Fri, 30 Jul 2021 11:19:18 +0000 Subject: [PATCH 2/3] Fixing style errors. --- htdocs/core/menus/standard/eldy.lib.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index a54d5a7a358..8374b71ff96 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -688,7 +688,8 @@ function print_end_menu_array() * @param int $type_user 0=Menu for backoffice, 1=Menu for front office * @return int Nb of menu entries */ -function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabMenu, &$menu, $noout = 0, $forcemainmenu = '', $forceleftmenu = '', $moredata = null, $type_user = 0) { +function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabMenu, &$menu, $noout = 0, $forcemainmenu = '', $forceleftmenu = '', $moredata = null, $type_user = 0) +{ global $user, $conf, $langs, $dolibarr_main_db_name, $mysoc, $hookmanager; @@ -1973,11 +1974,11 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM } // @todo Sort menu items by 'position' value -// $position = array(); -// foreach ($menu_array as $key => $row) { -// $position[$key] = $row['position']; -// } -// array_multisort($position, SORT_ASC, $menu_array); + // $position = array(); + // foreach ($menu_array as $key => $row) { + // $position[$key] = $row['position']; + // } + // array_multisort($position, SORT_ASC, $menu_array); } // TODO Use the position property in menu_array to reorder the $menu_array From 055a5c4ab6570c30ec0d83efe617362ff68f6e31 Mon Sep 17 00:00:00 2001 From: Christian Foellmann Date: Fri, 30 Jul 2021 15:19:05 +0200 Subject: [PATCH 3/3] fix hook name --- htdocs/core/class/hookmanager.class.php | 2 +- htdocs/core/menus/standard/eldy.lib.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/hookmanager.class.php b/htdocs/core/class/hookmanager.class.php index 4750e0924dd..45643e26e4c 100644 --- a/htdocs/core/class/hookmanager.class.php +++ b/htdocs/core/class/hookmanager.class.php @@ -193,7 +193,7 @@ class HookManager 'getFormatedSupplierRef', 'getIdProfUrl', 'getInputIdProf', - 'menu_LeftMenuItems', + 'menuLeftMenuItems', 'moveUploadedFile', 'moreHtmlStatus', 'pdf_build_address', diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 8374b71ff96..160a56ac740 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -1964,7 +1964,7 @@ function print_left_eldy_menu($db, $menu_array_before, $menu_array_after, &$tabM 'mainmenu' => $mainmenu, ); $hook_items = $menu_array; - $reshook = $hookmanager->executeHooks('menu_LeftMenuArray', $parameters, $hook_items); // Note that $action and $object may have been modified by some hooks + $reshook = $hookmanager->executeHooks('menuLeftMenuItems', $parameters, $hook_items); // Note that $action and $object may have been modified by some hooks if (is_numeric($reshook)) { if ($reshook == 0 && !empty($hookmanager->results)) {