From eae3fe78f140e1b7e0f30c1112c6d75867686b36 Mon Sep 17 00:00:00 2001 From: BB2A Anthony Berton Date: Tue, 8 Mar 2022 18:06:26 +0100 Subject: [PATCH 1/6] init --- htdocs/core/lib/functions.lib.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index af5671437ae..5e56ff5b36c 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -8750,7 +8750,7 @@ function getLanguageCodeFromCountryCode($countrycode) */ function complete_head_from_modules($conf, $langs, $object, &$head, &$h, $type, $mode = 'add') { - global $hookmanager; + global $hookmanager, $db; if (isset($conf->modules_parts['tabs'][$type]) && is_array($conf->modules_parts['tabs'][$type])) { foreach ($conf->modules_parts['tabs'][$type] as $value) { @@ -8771,7 +8771,18 @@ function complete_head_from_modules($conf, $langs, $object, &$head, &$h, $type, complete_substitutions_array($substitutionarray, $langs, $object, array('needforkey'=>$values[2])); $label = make_substitutions($reg[1], $substitutionarray); } else { - $label = $langs->trans($values[2]); + $labeltemp = explode(',', $values[2]); + if (is_array($labeltemp)) { + $label = $langs->trans($labeltemp[0]); + if (!empty($labeltemp[1]) && is_object($object) && !empty($object->id)) { + dol_include_once($labeltemp[2]); + $obj = new $labeltemp[1]($db); + $function = $labeltemp[3]; + $label .= $obj->$function($object->id, $obj); + } + } else { + $label = $langs->trans($values[2]); + } } $head[$h][0] = dol_buildpath(preg_replace('/__ID__/i', ((is_object($object) && !empty($object->id)) ? $object->id : ''), $values[5]), 1); From cef9cf8670842955fca199edaaad25eb799057c9 Mon Sep 17 00:00:00 2001 From: BB2A Anthony Berton Date: Tue, 8 Mar 2022 18:34:56 +0100 Subject: [PATCH 2/6] int --- htdocs/core/lib/functions.lib.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 5e56ff5b36c..109f0fa3f13 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -8778,7 +8778,8 @@ function complete_head_from_modules($conf, $langs, $object, &$head, &$h, $type, dol_include_once($labeltemp[2]); $obj = new $labeltemp[1]($db); $function = $labeltemp[3]; - $label .= $obj->$function($object->id, $obj); + $nbrec = $obj->$function($object->id, $obj); + $label .= ''.$nbrec.''; } } else { $label = $langs->trans($values[2]); From 006dc787c19b5c2fbca8e6c4b2d825b0c002e7a1 Mon Sep 17 00:00:00 2001 From: BB2A Anthony Berton Date: Fri, 18 Mar 2022 16:34:44 +0100 Subject: [PATCH 3/6] method_exists skip fatal error --- htdocs/core/lib/functions.lib.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 109f0fa3f13..b37eff45df6 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -8778,8 +8778,10 @@ function complete_head_from_modules($conf, $langs, $object, &$head, &$h, $type, dol_include_once($labeltemp[2]); $obj = new $labeltemp[1]($db); $function = $labeltemp[3]; - $nbrec = $obj->$function($object->id, $obj); - $label .= ''.$nbrec.''; + if (method_exists($obj, $function)) { + $nbrec = $obj->$function($object->id, $obj); + $label .= ''.$nbrec.''; + } } } else { $label = $langs->trans($values[2]); From f0e3c33dc306aeed046ade52519ab2a5a0fb4235 Mon Sep 17 00:00:00 2001 From: BB2A Anthony Berton Date: Fri, 18 Mar 2022 16:55:53 +0100 Subject: [PATCH 4/6] $labeltemp is alwase true --- htdocs/core/lib/functions.lib.php | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index b37eff45df6..517d09ba453 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -8772,19 +8772,15 @@ function complete_head_from_modules($conf, $langs, $object, &$head, &$h, $type, $label = make_substitutions($reg[1], $substitutionarray); } else { $labeltemp = explode(',', $values[2]); - if (is_array($labeltemp)) { - $label = $langs->trans($labeltemp[0]); - if (!empty($labeltemp[1]) && is_object($object) && !empty($object->id)) { - dol_include_once($labeltemp[2]); - $obj = new $labeltemp[1]($db); - $function = $labeltemp[3]; - if (method_exists($obj, $function)) { - $nbrec = $obj->$function($object->id, $obj); - $label .= ''.$nbrec.''; - } + $label = $langs->trans($labeltemp[0]); + if (!empty($labeltemp[1]) && is_object($object) && !empty($object->id)) { + dol_include_once($labeltemp[2]); + $obj = new $labeltemp[1]($db); + $function = $labeltemp[3]; + if (method_exists($obj, $function)) { + $nbrec = $obj->$function($object->id, $obj); + $label .= ''.$nbrec.''; } - } else { - $label = $langs->trans($values[2]); } } From eac3a6cf86ac872f7cb868468fd715a44d08f634 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 23 Mar 2022 16:38:57 +0100 Subject: [PATCH 5/6] Update functions.lib.php --- htdocs/core/lib/functions.lib.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 517d09ba453..89ba7147694 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -8771,15 +8771,18 @@ function complete_head_from_modules($conf, $langs, $object, &$head, &$h, $type, complete_substitutions_array($substitutionarray, $langs, $object, array('needforkey'=>$values[2])); $label = make_substitutions($reg[1], $substitutionarray); } else { - $labeltemp = explode(',', $values[2]); + $labeltemp = explode(':', $values[2]); $label = $langs->trans($labeltemp[0]); if (!empty($labeltemp[1]) && is_object($object) && !empty($object->id)) { dol_include_once($labeltemp[2]); - $obj = new $labeltemp[1]($db); - $function = $labeltemp[3]; - if (method_exists($obj, $function)) { - $nbrec = $obj->$function($object->id, $obj); - $label .= ''.$nbrec.''; + $classtoload = $labeltemp[1]; + if (class_exists($classtoload)) { + $obj = new $classtoload($db); + $function = $labeltemp[3]; + if (method_exists($obj, $function)) { + $nbrec = $obj->$function($object->id, $obj); + $label .= ''.$nbrec.''; + } } } } From d82aae1871989014ca26d049e3540ba199e1ce04 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 23 Mar 2022 16:39:55 +0100 Subject: [PATCH 6/6] Update functions.lib.php --- htdocs/core/lib/functions.lib.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 89ba7147694..4dd675f9a28 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -8779,7 +8779,7 @@ function complete_head_from_modules($conf, $langs, $object, &$head, &$h, $type, if (class_exists($classtoload)) { $obj = new $classtoload($db); $function = $labeltemp[3]; - if (method_exists($obj, $function)) { + if ($obj && $function && method_exists($obj, $function)) { $nbrec = $obj->$function($object->id, $obj); $label .= ''.$nbrec.''; }