diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index fac9bdfd764..c1b75793220 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -2271,6 +2271,35 @@ abstract class CommonObject } $out .= "\n"; $out .= ' '; + $out .= ' + '; } return $out; } diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index dcff2aedf14..640075a06b1 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -673,8 +673,10 @@ class ExtraFields $out=''; @@ -688,11 +690,16 @@ class ExtraFields // 0 1 : tableName // 1 2 : label field name Nom du champ contenant le libelle // 2 3 : key fields name (if differ of rowid) + // 3 4 : key field parent (for dependent lists) $keyList='rowid'; - if (count($InfoFieldList)==3) + if (count($InfoFieldList)>=3) $keyList=$InfoFieldList[2].' as rowid'; + if (count($InfoFieldList)>=4) { + list($parentName, $parentField) = explode('|', $InfoFieldList[3]); + $keyList.= ', '.$parentField; + } $sql = 'SELECT '.$keyList.', '.$InfoFieldList[1]; $sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0]; @@ -717,15 +724,16 @@ class ExtraFields }else { $labeltoshow=dol_trunc($obj->$InfoFieldList[1],18); } + + if(!empty($InfoFieldList[3])) { + $parent = $parentName.':'.$obj->{$parentField}; + } - if ($value==$obj->rowid) - { - $out.=''; - } - else - { - $out.=''; - } + $out.=''; + $i++; } }