diff --git a/doc/conf/LSobject/ioFormat.docbook b/doc/conf/LSobject/ioFormat.docbook index 1bc6129a..65674cb5 100644 --- a/doc/conf/LSobject/ioFormat.docbook +++ b/doc/conf/LSobject/ioFormat.docbook @@ -38,7 +38,7 @@ création du type d'&LSobject;. En conséquence : ), 'generated_fields' => array ( '[attribute 3]' => '[LSformat]', - '[attribute 4]' => '[LSformat]', + '[attribute 4]' => array('[LSformat1]', '[LSformat2]', ...) [...] ) ), @@ -87,8 +87,8 @@ création du type d'&LSobject;. En conséquence : Tableau associatif permettant de définir des &LSformats; pour générer des valeurs d'attributs automatiquement. Ce tableau contient en clé, le nom de l'attribut à généré, - et en valeur associée, le &LSformat; à utilisé. Ce &LSformat; est composé à l'aide des - valeurs des autres attributs de l'objet. + et en valeur associée, un ou plusieurs &LSformat; à utiliser pour générer ses valeurs. Ces + &LSformat; sont composés à l'aide des valeurs des autres attributs de l'objet. diff --git a/src/includes/class/class.LSioFormatDriver.php b/src/includes/class/class.LSioFormatDriver.php index a5df2bcb..9e2af106 100644 --- a/src/includes/class/class.LSioFormatDriver.php +++ b/src/includes/class/class.LSioFormatDriver.php @@ -127,11 +127,16 @@ class LSioFormatDriver extends LSlog_staticLoggerClass { if (!isset($retone[$attr])) $retone[$attr] = array(); $retone[$attr][] = $one[$key]; } - foreach ($generated_fields as $attr => $format) { - $value = getFData($format, $retone); - if (!empty($value)) { - $retone[$attr] = array($value); + foreach ($generated_fields as $attr => $formats) { + $retone[$attr] = array(); + foreach (ensureIsArray($formats) as $format) { + $value = getFData($format, $retone); + if (!is_empty($value)) { + $retone[$attr][] = $value; + } } + if (empty($retone[$attr])) + unset($retone[$attr]); } $retall[] = $retone; }