diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php
index 6b0b2573042..4b70f5d424c 100644
--- a/htdocs/core/class/commonobject.class.php
+++ b/htdocs/core/class/commonobject.class.php
@@ -5555,6 +5555,41 @@ abstract class CommonObject
// If prefix is 'search_', field is used as a filter, we use a common text field.
$out='';
}
+ elseif ($type == 'array')
+ {
+ $newval = $val;
+ $newval['type'] = 'varchar(256)';
+
+ $out='';
+
+ $inputs = array();
+ if(! empty($value)) {
+ foreach($value as $option) {
+ $out.= ' ';
+ $out.= $this->showInputField($newval, $keyprefix.$key.$keysuffix.'[]', $option, $moreparam, '', '', $showsize).'
';
+ }
+ }
+
+ $out.= '';
+
+ $newInput = ' ';
+ $newInput.= $this->showInputField($newval, $keyprefix.$key.$keysuffix.'[]', '', $moreparam, '', '', $showsize).'
';
+
+ if(! empty($conf->use_javascript_ajax)) {
+ $out.= '
+ ';
+ }
+ }
if (!empty($hidden)) {
$out='';
}
@@ -5926,6 +5961,10 @@ abstract class CommonObject
{
$value=preg_replace('/./i','*',$value);
}
+ elseif ($type == 'array')
+ {
+ $value = implode('
', $value);
+ }
//print $type.'-'.$size;
$out=$value;
@@ -6614,7 +6653,14 @@ abstract class CommonObject
}
else if($this->isArray($info))
{
- $queryarray[$field] = serialize($this->{$field});
+ if(! empty($this->{$field})) {
+ if(! is_array($this->{$field})) {
+ $this->{$field} = array($this->{$field});
+ }
+ $queryarray[$field] = serialize($this->{$field});
+ } else {
+ $queryarray[$field] = NULL;
+ }
}
else if($this->isInt($info))
{
@@ -6658,9 +6704,13 @@ abstract class CommonObject
}
elseif($this->isArray($info))
{
- $this->{$field} = @unserialize($obj->{$field});
- // Hack for data not in UTF8
- if($this->{$field } === false) @unserialize(utf8_decode($obj->{$field}));
+ if(! empty($obj->{$field})) {
+ $this->{$field} = @unserialize($obj->{$field});
+ // Hack for data not in UTF8
+ if($this->{$field } === false) @unserialize(utf8_decode($obj->{$field}));
+ } else {
+ $this->{$field} = array();
+ }
}
elseif($this->isInt($info))
{