X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/exercices/modifier.php?a=blobdiff_plain;f=includes%2FMessage%2FTextFormatter.php;h=783dd4302ebbcb5236d1ee4a832175190edc6241;hb=c875265effff3283a7a6078c8178be2c1fb6d6c9;hp=f5eeb16f247356fe254add7d9ef269a379a140dd;hpb=ce79d607c76029e7076672f23d713d1bc1e4fac5;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/Message/TextFormatter.php b/includes/Message/TextFormatter.php index f5eeb16f24..783dd4302e 100644 --- a/includes/Message/TextFormatter.php +++ b/includes/Message/TextFormatter.php @@ -45,18 +45,27 @@ class TextFormatter implements ITextFormatter { return $this->langCode; } - private static function convertParam( MessageParam $param ) { + private function convertParam( MessageParam $param ) { if ( $param instanceof ListParam ) { $convertedElements = []; foreach ( $param->getValue() as $element ) { - $convertedElements[] = self::convertParam( $element ); + $convertedElements[] = $this->convertParam( $element ); } return Message::listParam( $convertedElements, $param->getListType() ); } elseif ( $param instanceof MessageParam ) { + $value = $param->getValue(); + if ( $value instanceof MessageValue ) { + $mv = $value; + $value = $this->createMessage( $mv->getKey() ); + foreach ( $mv->getParams() as $mvParam ) { + $value->params( $this->convertParam( $mvParam ) ); + } + } + if ( $param->getType() === ParamType::TEXT ) { - return $param->getValue(); + return $value; } else { - return [ $param->getType() => $param->getValue() ]; + return [ $param->getType() => $value ]; } } else { throw new \InvalidArgumentException( 'Invalid message parameter type' ); @@ -66,7 +75,7 @@ class TextFormatter implements ITextFormatter { public function format( MessageValue $mv ) { $message = $this->createMessage( $mv->getKey() ); foreach ( $mv->getParams() as $param ) { - $message->params( self::convertParam( $param ) ); + $message->params( $this->convertParam( $param ) ); } $message->inLanguage( $this->langCode ); return $message->text();