diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php index 14bbcb8e854e857d529340ae52e838d8774a33ad..1819925e7234fffb4cc846cc675a59135b5e3cb6 100644 --- a/htdocs/adherents/type.php +++ b/htdocs/adherents/type.php @@ -678,7 +678,16 @@ if ($rowid > 0) print '<br><br><table class="border" width="100%">'; foreach($extrafields->attribute_label as $key=>$label) { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:(isset($adht->array_options['options_'.$key])?$adht->array_options['options_'.$key]:'')); + if (isset($_POST["options_" . $key])) { + if (is_array($_POST["options_" . $key])) { + // $_POST["options"] is an array but following code expects a comma separated string + $value = implode(",", $_POST["options_" . $key]); + } else { + $value = $_POST["options_" . $key]; + } + } else { + $value = $adht->array_options["options_" . $key]; + } print '<tr><td width="30%">'.$label.'</td><td>'; print $extrafields->showInputField($key,$value); print "</td></tr>\n"; diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index 2e35b8004f06ff547f623302b520aab5a9191cf1..c011717c0cc5c440c1d348495055603cfc0c4216 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -1202,7 +1202,16 @@ if ($id > 0) print '<br><br><table class="border" width="100%">'; foreach($extrafields->attribute_label as $key=>$label) { - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:(isset($object->array_options['options_'.$key])?$object->array_options['options_'.$key]:'')); + if (isset($_POST["options_" . $key])) { + if (is_array($_POST["options_" . $key])) { + // $_POST["options"] is an array but following code expects a comma separated string + $value = implode(",", $_POST["options_" . $key]); + } else { + $value = $_POST["options_" . $key]; + } + } else { + $value = $object->array_options["options_" . $key]; + } print '<tr><td width="30%">'.$label.'</td><td>'; print $extrafields->showOutputField($key,$value); print "</td></tr>\n"; diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index f9eeffbb0184f032d97d08f21da5c29a2bc15680..99e497046e09847f8075f3500d2a392ae3b768ac 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -3564,16 +3564,16 @@ abstract class CommonObject else return 0; } - /** - * Function to show lines of extrafields with output datas - * - * @param object $extrafields Extrafield Object - * @param string $mode Show output (view) or input (edit) for extrafield - * @param array $params Optionnal parameters - * @param string $keyprefix Prefix string to add into name and id of field (can be used to avoid duplicate names) - * - * @return string - */ + /** + * Function to show lines of extrafields with output datas + * + * @param Extrafields $extrafields Extrafield Object + * @param string $mode Show output (view) or input (edit) for extrafield + * @param array $params Optional parameters + * @param string $keyprefix Prefix string to add into name and id of field (can be used to avoid duplicate names) + * + * @return string + */ function showOptionals($extrafields, $mode='view', $params=0, $keyprefix='') { global $_POST, $conf; @@ -3601,7 +3601,16 @@ abstract class CommonObject $value=$this->array_options["options_".$key]; break; case "edit": - $value=(isset($_POST["options_".$key])?$_POST["options_".$key]:$this->array_options["options_".$key]); + if (isset($_POST["options_" . $key])) { + if (is_array($_POST["options_" . $key])) { + // $_POST["options"] is an array but following code expects a comma separated string + $value = implode(",", $_POST["options_" . $key]); + } else { + $value = $_POST["options_" . $key]; + } + } else { + $value = $this->array_options["options_" . $key]; + } break; } if ($extrafields->attribute_type[$key] == 'separate') diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 99ec23c6a73beabb96ca19542de3c3b8a9179f2b..40ba0e666ae6191c0397efea072e2526cee6162d 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -1155,7 +1155,7 @@ class ExtraFields else if (in_array($key_type,array('checkbox'))) { $value_arr=GETPOST("options_".$key.$keyprefix); - $value_key=implode($value_arr,','); + $value_key=implode(',', $value_arr); } else if (in_array($key_type,array('price','double'))) {