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++;
}
}