2
0
forked from Wavyzz/dolibarr

Merge branch '19.0' of git@github.com:Dolibarr/dolibarr.git into develop

This commit is contained in:
Laurent Destailleur
2024-05-10 12:03:33 +02:00
10 changed files with 49 additions and 36 deletions

View File

@@ -8216,6 +8216,8 @@ class Form
{
global $conf, $extrafields, $user;
//var_dump($objectdesc); debug_print_backtrace();
$objectdescorig = $objectdesc;
$objecttmp = null;
$InfoFieldList = array();
@@ -8226,29 +8228,32 @@ class Form
if ($objectfield) { // We must retrieve the objectdesc from the field or extrafield
// Example: $objectfield = 'product:options_package' or 'myobject@mymodule:options_myfield'
$tmparray = explode(':', $objectfield);
$objectdesc = '';
// Get instance of object from $element
$objectforfieldstmp = fetchObjectByElement(0, strtolower($tmparray[0]));
$reg = array();
if (preg_match('/^options_(.*)$/', $tmparray[1], $reg)) {
// For a property in extrafields
$key = $reg[1];
// fetch optionals attributes and labels
$extrafields->fetch_name_optionals_label($objectforfieldstmp->table_element);
if (is_object($objectforfieldstmp)) {
$objectdesc = '';
if (!empty($extrafields->attributes[$objectforfieldstmp->table_element]['type'][$key]) && $extrafields->attributes[$objectforfieldstmp->table_element]['type'][$key] == 'link') {
if (!empty($extrafields->attributes[$objectforfieldstmp->table_element]['param'][$key]['options'])) {
$tmpextrafields = array_keys($extrafields->attributes[$objectforfieldstmp->table_element]['param'][$key]['options']);
$objectdesc = $tmpextrafields[0];
$reg = array();
if (preg_match('/^options_(.*)$/', $tmparray[1], $reg)) {
// For a property in extrafields
$key = $reg[1];
// fetch optionals attributes and labels
$extrafields->fetch_name_optionals_label($objectforfieldstmp->table_element);
if (!empty($extrafields->attributes[$objectforfieldstmp->table_element]['type'][$key]) && $extrafields->attributes[$objectforfieldstmp->table_element]['type'][$key] == 'link') {
if (!empty($extrafields->attributes[$objectforfieldstmp->table_element]['param'][$key]['options'])) {
$tmpextrafields = array_keys($extrafields->attributes[$objectforfieldstmp->table_element]['param'][$key]['options']);
$objectdesc = $tmpextrafields[0];
}
}
} else {
// For a property in ->fields
if (array_key_exists($tmparray[1], $objectforfieldstmp->fields)) {
$objectdesc = $objectforfieldstmp->fields[$tmparray[1]]['type'];
$objectdesc = preg_replace('/^integer[^:]*:/', '', $objectdesc);
}
}
} else {
// For a property in ->fields
if (array_key_exists($tmparray[1], $objectforfieldstmp->fields)) {
$objectdesc = $objectforfieldstmp->fields[$tmparray[1]]['type']; // should be integer:ObjectClass...
$objectdesc = preg_replace('/^integer[^:]*:/', '', $objectdesc);
}
}
}
@@ -8267,7 +8272,7 @@ class Form
$InfoFieldList[3] = preg_replace('/:\w*$/', '', $vartmp); // take the filter field
$classname = $InfoFieldList[0];
$classpath = $InfoFieldList[1];
$classpath = empty($InfoFieldList[1]) ? '' : $InfoFieldList[1];
//$addcreatebuttonornot = empty($InfoFieldList[2]) ? 0 : $InfoFieldList[2];
$filter = empty($InfoFieldList[3]) ? '' : $InfoFieldList[3];
$sortfield = empty($InfoFieldList[4]) ? '' : $InfoFieldList[4];