diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php
index 1100e240015..da4ba612f01 100644
--- a/htdocs/core/class/extrafields.class.php
+++ b/htdocs/core/class/extrafields.class.php
@@ -701,7 +701,19 @@ class ExtraFields
$keyList.= ', '.$parentField;
}
- $sql = 'SELECT '.$keyList.', '.$InfoFieldList[1];
+ $fields_label = explode('|',$InfoFieldList[1]);
+ if(is_array($fields_label)) {
+ $keyList .=', ';
+ $keyList .= implode(', ', $fields_label);
+ }
+
+ $fields_label = explode('|',$InfoFieldList[1]);
+ if(is_array($fields_label)) {
+ $keyList .=', ';
+ $keyList .= implode(', ', $fields_label);
+ }
+
+ $sql = 'SELECT '.$keyList;
$sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0];
//$sql.= ' WHERE entity = '.$conf->entity;
@@ -717,24 +729,61 @@ class ExtraFields
{
while ($i < $num)
{
+ $labeltoshow='';
$obj = $this->db->fetch_object($resql);
- $translabel=$langs->trans($obj->$InfoFieldList[1]);
- if ($translabel!=$obj->$InfoFieldList[1]) {
- $labeltoshow=dol_trunc($translabel,18);
- }else {
- $labeltoshow=dol_trunc($obj->$InfoFieldList[1],18);
- }
-
- if(!empty($InfoFieldList[3])) {
- $parent = $parentName.':'.$obj->{$parentField};
- }
- $out.='';
-
- $i++;
+ // Several field into label (eq table:code|libelle:rowid)
+ $fields_label = explode('|',$InfoFieldList[1]);
+ if(is_array($fields_label))
+ {
+ foreach ($fields_label as $field_toshow)
+ {
+ $labeltoshow.= $obj->$field_toshow.' ';
+ }
+ }
+ else
+ {
+ $labeltoshow=$obj->$InfoFieldList[1];
+ }
+ $labeltoshow=dol_trunc($labeltoshow,45);
+
+ if ($value==$obj->rowid)
+ {
+ foreach ($fields_label as $field_toshow)
+ {
+ $translabel=$langs->trans($obj->$field_toshow);
+ if ($translabel!=$obj->$field_toshow) {
+ $labeltoshow=dol_trunc($translabel,18).' ';
+ }else {
+ $labeltoshow=dol_trunc($obj->$field_toshow,18).' ';
+ }
+ }
+ }
+ else
+ {
+ $translabel=$langs->trans($obj->$InfoFieldList[1]);
+ if ($translabel!=$obj->$InfoFieldList[1]) {
+ $labeltoshow=dol_trunc($translabel,18);
+ }else {
+ $labeltoshow=dol_trunc($obj->$InfoFieldList[1],18);
+ }
+
+ if ($value==$obj->rowid)
+ {
+ $out.='';
+ }
+
+ if(!empty($InfoFieldList[3])) {
+ $parent = $parentName.':'.$obj->{$parentField};
+ }
+
+ $out.='';
+
+ $i++;
+ }
}
}
$this->db->free();
@@ -846,26 +895,56 @@ class ExtraFields
{
$param_list=array_keys($params['options']);
$InfoFieldList = explode(":", $param_list[0]);
- $keyList='rowid';
- if (count($InfoFieldList)==3)
- $keyList=$InfoFieldList[2];
- $sql = 'SELECT '.$InfoFieldList[1];
+ $selectkey="rowid";
+ $keyList='rowid';
+
+ if (count($InfoFieldList)==3)
+ {
+ $selectkey = $InfoFieldList[2];
+ $keyList=$InfoFieldList[2].' as rowid';
+ }
+
+ $fields_label = explode('|',$InfoFieldList[1]);
+ if(is_array($fields_label)) {
+ $keyList .=', ';
+ $keyList .= implode(', ', $fields_label);
+ }
+
+ $sql = 'SELECT '.$keyList;
$sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0];
- $sql.= ' WHERE '.$keyList.'=\''.$this->db->escape($value).'\'';
+ $sql.= ' WHERE '.$selectkey.'=\''.$this->db->escape($value).'\'';
//$sql.= ' AND entity = '.$conf->entity;
dol_syslog(get_class($this).':showOutputField:$type=sellist sql='.$sql);
$resql = $this->db->query($sql);
if ($resql)
{
$obj = $this->db->fetch_object($resql);
- $translabel=$langs->trans($obj->$InfoFieldList[1]);
- if ($translabel!=$obj->$InfoFieldList[1]) {
- $value=dol_trunc($translabel,18);
- }else {
- $value=$obj->$InfoFieldList[1];
- }
+ // Several field into label (eq table:code|libelle:rowid)
+ $fields_label = explode('|',$InfoFieldList[1]);
+
+ if(is_array($fields_label))
+ {
+ foreach ($fields_label as $field_toshow)
+ {
+ $translabel=$langs->trans($obj->$InfoFieldList[1]);
+ if ($translabel!=$obj->$InfoFieldList[1]) {
+ $value=dol_trunc($translabel,18).' ';
+ }else {
+ $value=$obj->$InfoFieldList[1].' ';
+ }
+ }
+ }
+ else
+ {
+ $translabel=$langs->trans($obj->$InfoFieldList[1]);
+ if ($translabel!=$obj->$InfoFieldList[1]) {
+ $value=dol_trunc($translabel,18);
+ }else {
+ $value=$obj->$InfoFieldList[1];
+ }
+ }
}
}
elseif ($type == 'radio')
@@ -1001,5 +1080,4 @@ class ExtraFields
return 0;
}
}
-}
-?>
+}
\ No newline at end of file