From 5f5f0eb3f358d2ef20354d27b9ad42978f06624d Mon Sep 17 00:00:00 2001 From: NextGestion Date: Wed, 7 Apr 2021 12:21:59 +0100 Subject: [PATCH] Add menu entries into thirdparty menu or member menu & Allow extrafields --- htdocs/core/modules/modPartnership.class.php | 24 +++++++++------- htdocs/partnership/admin/setup.php | 30 +++++++++++++++----- htdocs/partnership/lib/partnership.lib.php | 4 +-- 3 files changed, 39 insertions(+), 19 deletions(-) diff --git a/htdocs/core/modules/modPartnership.class.php b/htdocs/core/modules/modPartnership.class.php index 39e05f40fc5..d58d3271bdf 100644 --- a/htdocs/core/modules/modPartnership.class.php +++ b/htdocs/core/modules/modPartnership.class.php @@ -179,10 +179,14 @@ class modPartnership extends DolibarrModules $tabtoadd = ($conf->global->PARTNERSHIP_IS_MANAGED_FOR == 'member') ? 'member' : 'thirdparty'; - if($tabtoadd == 'member') - $this->tabs[] = array('data'=>'member:+partnership:Partnership:partnership@partnership:$user->rights->partnership->read:/partnership/partnership_list.php?id=__ID__'); - else - $this->tabs[] = array('data'=>'thirdparty:+partnership:Partnership:partnership@partnership:$user->rights->partnership->read:/partnership/partnership_list.php?id=__ID__'); + if($tabtoadd == 'member'){ + $this->tabs[] = array('data'=>'member:+partnership:Partnership:partnership@partnership:$user->rights->partnership->read:/partnership/partnership.php?socid=__ID__'); + $fk_mainmenu = "members"; + } + else{ + $this->tabs[] = array('data'=>'thirdparty:+partnership:Partnership:partnership@partnership:$user->rights->partnership->read:/partnership/partnership.php?socid=__ID__'); + $fk_mainmenu = "companies"; + } // Example: // $this->tabs[] = array('data'=>'objecttype:+tabname1:Title1:mylangfile@partnership:$user->rights->partnership->read:/partnership/mynewtab1.php?id=__ID__'); // To add a new tab identified by code tabname1 @@ -303,11 +307,11 @@ class modPartnership extends DolibarrModules // 'user'=>2, // ); $this->menu[$r++] = array( - 'fk_menu'=>'fk_mainmenu=companies', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode + 'fk_menu'=>'fk_mainmenu='.$fk_mainmenu, // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode 'type'=>'left', // This is a Top menu entry 'titre'=>'Partnership', 'prefix' => img_picto('', $this->picto, 'class="paddingright pictofixedwidth"'), - 'mainmenu'=>'companies', + 'mainmenu'=>$fk_mainmenu, 'leftmenu'=>'partnership', 'url'=>'/partnership/partnership_list.php', 'langs'=>'partnership', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. @@ -318,10 +322,10 @@ class modPartnership extends DolibarrModules 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both ); $this->menu[$r++] = array( - 'fk_menu'=>'fk_mainmenu=companies,fk_leftmenu=partnership', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode + 'fk_menu'=>'fk_mainmenu='.$fk_mainmenu.',fk_leftmenu=partnership', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode 'type'=>'left', // This is a Left menu entry 'titre'=>'NewPartnership', - 'mainmenu'=>'companies', + 'mainmenu'=>$fk_mainmenu, 'leftmenu'=>'partnership_new', 'url'=>'/partnership/partnership_card.php?action=create', 'langs'=>'partnership', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. @@ -332,10 +336,10 @@ class modPartnership extends DolibarrModules 'user'=>2, // 0=Menu for internal users, 1=external users, 2=both ); $this->menu[$r++] = array( - 'fk_menu'=>'fk_mainmenu=companies,fk_leftmenu=partnership', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode + 'fk_menu'=>'fk_mainmenu='.$fk_mainmenu.',fk_leftmenu=partnership', // '' if this is a top menu. For left menu, use 'fk_mainmenu=xxx' or 'fk_mainmenu=xxx,fk_leftmenu=yyy' where xxx is mainmenucode and yyy is a leftmenucode 'type'=>'left', // This is a Left menu entry 'titre'=>'ListOfPartnerships', - 'mainmenu'=>'companies', + 'mainmenu'=>$fk_mainmenu, 'leftmenu'=>'partnership_list', 'url'=>'/partnership/partnership_list.php', 'langs'=>'partnership', // Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory. diff --git a/htdocs/partnership/admin/setup.php b/htdocs/partnership/admin/setup.php index 2b21ec97630..204201d51c2 100644 --- a/htdocs/partnership/admin/setup.php +++ b/htdocs/partnership/admin/setup.php @@ -84,20 +84,36 @@ if ($action == 'setting') { $partnership = new modPartnership($db); $value = GETPOST('managed_for', 'alpha'); - $res = dolibarr_set_const($db, "PARTNERSHIP_IS_MANAGED_FOR", $value, 'chaine', 0, '', $conf->entity); + + + $modulemenu = ($value == 'member') ? 'member' : 'thirdparty'; + $res = dolibarr_set_const($db, "PARTNERSHIP_IS_MANAGED_FOR", $modulemenu, 'chaine', 0, '', $conf->entity); $partnership->tabs = array(); - - $tabtoadd = ($value == 'member') ? 'member' : 'thirdparty'; + if($modulemenu == 'member'){ + $partnership->tabs[] = array('data'=>'member:+partnership:Partnership:partnership@partnership:$user->rights->partnership->read:/partnership/partnership.php?socid=__ID__'); + $fk_mainmenu = "members"; + } + else{ + $partnership->tabs[] = array('data'=>'thirdparty:+partnership:Partnership:partnership@partnership:$user->rights->partnership->read:/partnership/partnership.php?socid=__ID__'); + $fk_mainmenu = "companies"; + } - if($tabtoadd == 'member') - $partnership->tabs[] = array('data'=>'member:+partnership:Partnership:partnership@partnership:$user->rights->partnership->read:/partnership/partnership_list.php?id=__ID__'); - else - $partnership->tabs[] = array('data'=>'thirdparty:+partnership:Partnership:partnership@partnership:$user->rights->partnership->read:/partnership/partnership_list.php?id=__ID__'); + foreach ($partnership->menu as $key => $menu) { + $partnership->menu[$key]['mainmenu'] = $fk_mainmenu; + + if($menu['leftmenu'] == 'partnership') + $partnership->menu[$key]['fk_menu'] = 'fk_mainmenu='.$fk_mainmenu; + else + $partnership->menu[$key]['fk_menu'] = 'fk_mainmenu='.$fk_mainmenu.',fk_leftmenu=partnership'; + } $error += $partnership->delete_tabs(); $error += $partnership->insert_tabs(); + $error += $partnership->delete_menus(); + $error += $partnership->insert_menus(); + } if ($action) { diff --git a/htdocs/partnership/lib/partnership.lib.php b/htdocs/partnership/lib/partnership.lib.php index 74a4328a5ff..0cb4f1d0ea1 100644 --- a/htdocs/partnership/lib/partnership.lib.php +++ b/htdocs/partnership/lib/partnership.lib.php @@ -41,9 +41,9 @@ function partnershipAdminPrepareHead() $h++; - $head[$h][0] = dol_buildpath("/partnership/admin/myobject_extrafields.php", 1); + $head[$h][0] = dol_buildpath("/partnership/admin/partnership_extrafields.php", 1); $head[$h][1] = $langs->trans("ExtraFields"); - $head[$h][2] = 'myobject_extrafields'; + $head[$h][2] = 'partnership_extrafields'; $h++;