Fix campi personalizzati con valori multipli

This commit is contained in:
Beppe 2023-12-06 11:20:28 +01:00
parent d7316f73ee
commit 34c3b6242b
3 changed files with 15 additions and 3 deletions

View File

@ -496,6 +496,8 @@ if ($structure->permission == 'rw') {
foreach ($customs as $custom) {
if (post($custom['name']) !== null) {
$values[$custom['id']] = post($custom['name']);
}else{
$values[$custom['id']] = '';
}
}
@ -520,6 +522,7 @@ if ($structure->permission == 'rw') {
$customs_present = array_column($customs_present, 'id_field');
foreach ($values as $key => $value) {
$value = (!is_array($value) ? $value : json_encode($value));
if (in_array($key, $customs_present)) {
$dbo->update('zz_field_record', [
'value' => $value,

View File

@ -82,6 +82,12 @@ class FieldManager implements ManagerInterface
$field['value'] = isset($field['value']) ? $field['value'] : '';
//Gestione valori multipli
$values = json_decode((string)$field['value'],true);
if( is_array($values) ){
$field['value'] = implode(",",$values);
}
$replace = [
'value' => $field['value'],
'label' => $field['name'],
@ -103,8 +109,8 @@ class FieldManager implements ManagerInterface
}
// Forzatura inizializzazione componente
$component = \HTMLBuilder\HTMLBuilder::decode($field['content'], 'manager');
$result .= '<script>$(document).ready( function(){ input("#'.$component['name'].'").init(); });</script>';
$component = \HTMLBuilder\HTMLBuilder::decode(\Filter::sanitize($field['content']), 'manager');
$result .= '<script>$(document).ready( function(){ input("#'.(!empty($component['id']) ? $component['id'] : $component['name']).'").init(); });</script>';
}
if (($key + 1) % 3 != 0) {

View File

@ -95,4 +95,7 @@ ALTER TABLE `an_sedi` ADD `is_rappresentante_fiscale` BOOLEAN NULL DEFAULT FALSE
-- Aggiunte impostazioni per definire il numero di decimali in stampa
INSERT INTO `zz_settings` (`nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES ("Cifre decimali per importi in stampa", '2', 'list[0,1,2,3,4,5]', 1, 'Generali', '35', 'Definisce il numero di decimali per gli importi nei template di stampa');
INSERT INTO `zz_settings` (`nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES ("Cifre decimali per quantità in stampa", '0', 'list[0,1,2,3,4,5]', 1, 'Generali', '36', 'Definisce il numero di decimali per le quantità nei template di stampa');
INSERT INTO `zz_settings` (`nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES ("Cifre decimali per totali in stampa", '2', 'list[0,1,2]', 1, 'Generali', '37', 'Definisce il numero di decimali per i totali nei template di stampa');
INSERT INTO `zz_settings` (`nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES ("Cifre decimali per totali in stampa", '2', 'list[0,1,2]', 1, 'Generali', '37', 'Definisce il numero di decimali per i totali nei template di stampa');
-- Fix per vista modulo campi personalizzati
UPDATE `zz_modules` SET `options` = 'SELECT\r\n |select|\r\nFROM\r\n `zz_fields`\r\n LEFT JOIN `zz_modules` ON `zz_modules`.`id` = `zz_fields`.`id_module`\r\n LEFT JOIN `zz_plugins` ON `zz_plugins`.`id` = `zz_fields`.`id_plugin`\r\nWHERE\r\n 1=1\r\nHAVING\r\n 2=2' WHERE `zz_modules`.`name` = 'Campi personalizzati';