diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php
index f7e0d451506..0fe540cb3ac 100644
--- a/htdocs/core/class/commonobject.class.php
+++ b/htdocs/core/class/commonobject.class.php
@@ -5555,6 +5555,39 @@ 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).'
';
+
+ $out.= '
+';
+ }
if (!empty($hidden)) {
$out='';
}
@@ -5926,6 +5959,10 @@ abstract class CommonObject
{
$value=preg_replace('/./i','*',$value);
}
+ elseif ($type == 'array')
+ {
+ $value = implode('
', $value);
+ }
//print $type.'-'.$size;
$out=$value;
@@ -6614,7 +6651,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 +6702,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))
{