Fix bug on Extrafield list table type

This commit is contained in:
fhenry 2013-04-24 21:32:22 +02:00
parent 7b1616d0c5
commit 928a1afe18

View File

@ -689,8 +689,9 @@ class ExtraFields
{ {
$out='<select name="options_'.$key.'">'; $out='<select name="options_'.$key.'">';
$InfoFieldList = explode(":", $param); $InfoFieldList = explode(":", array_keys($param['options'])[0]);
var_export($param['options']);
// 0 1 : tableName // 0 1 : tableName
// 1 2 : label field name Nom du champ contenant le libelle // 1 2 : label field name Nom du champ contenant le libelle
// 2 3 : key fields name (if differ of rowid) // 2 3 : key fields name (if differ of rowid)
@ -703,6 +704,7 @@ class ExtraFields
$sql = 'SELECT '.$keyList.', '.$InfoFieldList[1]; $sql = 'SELECT '.$keyList.', '.$InfoFieldList[1];
$sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0]; $sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0];
dol_syslog(get_class($this).':showInputField:$type=sellist sql='.$sql);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ($resql) if ($resql)
@ -828,15 +830,16 @@ class ExtraFields
} }
elseif ($type == 'sellist') elseif ($type == 'sellist')
{ {
$InfoFieldList = explode(":", $params); $InfoFieldList = explode(":", array_keys($params['options'])[0]);
$keyList='rowid'; $keyList='rowid';
if (count($InfoFieldList)==3) if (count($InfoFieldList)==3)
$keyList=$InfoFieldList[2]; $keyList=$InfoFieldList[2];
$sql = 'SELECT '.$InfoFieldList[1]; $sql = 'SELECT '.$InfoFieldList[1];
$sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0]; $sql.= ' FROM '.MAIN_DB_PREFIX .$InfoFieldList[0];
$sql.= ' where '.$keyList.'="'.$value.'"'; $sql.= ' where '.$keyList.'="'.$this->db->escape($value).'"';
dol_syslog(get_class($this).':showOutputField:$type=sellist sql='.$sql);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ($resql) if ($resql)
{ {