Merge pull request #8653 from ATM-Marc/NEW_commonObject_array

NEW: work on CommonObject 'array' field typeNew common object array
This commit is contained in:
Laurent Destailleur 2018-04-27 09:39:26 +02:00 committed by GitHub
commit 659fd46b76
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -5555,6 +5555,41 @@ abstract class CommonObject
// If prefix is 'search_', field is used as a filter, we use a common text field.
$out='<input type="'.($keyprefix=='search_'?'text':'password').'" class="flat '.$showsize.'" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'" value="'.$value.'" '.($moreparam?$moreparam:'').'>';
}
elseif ($type == 'array')
{
$newval = $val;
$newval['type'] = 'varchar(256)';
$out='';
$inputs = array();
if(! empty($value)) {
foreach($value as $option) {
$out.= '<span><a class="'.dol_escape_htmltag($keyprefix.$key.$keysuffix).'_del" href="javascript:;"><span class="fa fa-minus-circle valignmiddle"></span></a> ';
$out.= $this->showInputField($newval, $keyprefix.$key.$keysuffix.'[]', $option, $moreparam, '', '', $showsize).'<br></span>';
}
}
$out.= '<a id="'.dol_escape_htmltag($keyprefix.$key.$keysuffix).'_add" href="javascript:;"><span class="fa fa-plus-circle valignmiddle"></span></a>';
$newInput = '<span><a class="'.dol_escape_htmltag($keyprefix.$key.$keysuffix).'_del" href="javascript:;"><span class="fa fa-minus-circle valignmiddle"></span></a> ';
$newInput.= $this->showInputField($newval, $keyprefix.$key.$keysuffix.'[]', '', $moreparam, '', '', $showsize).'<br></span>';
if(! empty($conf->use_javascript_ajax)) {
$out.= '
<script type="text/javascript">
$(document).ready(function() {
$("a#'.dol_escape_js($keyprefix.$key.$keysuffix).'_add").click(function() {
$("'.dol_escape_js($newInput).'").insertBefore(this);
});
$(document).on("click", "a.'.dol_escape_js($keyprefix.$key.$keysuffix).'_del", function() {
$(this).parent().remove();
});
});
</script>';
}
}
if (!empty($hidden)) {
$out='<input type="hidden" value="'.$value.'" name="'.$keyprefix.$key.$keysuffix.'" id="'.$keyprefix.$key.$keysuffix.'"/>';
}
@ -5926,6 +5961,10 @@ abstract class CommonObject
{
$value=preg_replace('/./i','*',$value);
}
elseif ($type == 'array')
{
$value = implode('<br>', $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))
{