added json, xml and txt invoice renderer (#1576)
This commit is contained in:
@@ -71,6 +71,7 @@ class Extensions extends AbstractExtension
|
||||
new TwigFilter('language', [$this, 'language']),
|
||||
new TwigFilter('amount', [$this, 'amount']),
|
||||
new TwigFilter('docu_link', [$this, 'documentationLink']),
|
||||
new TwigFilter('multiline_indent', [$this, 'multilineIndent']),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -98,6 +99,24 @@ class Extensions extends AbstractExtension
|
||||
return get_class($object);
|
||||
}
|
||||
|
||||
public function multilineIndent(?string $string, string $indent): string
|
||||
{
|
||||
if (null === $string || '' === $string) {
|
||||
return '';
|
||||
}
|
||||
|
||||
$parts = explode("\r\n", $string);
|
||||
if (count($parts) === 1) {
|
||||
$parts = explode("\n", $string);
|
||||
}
|
||||
|
||||
$parts = array_map(function ($part) use ($indent) {
|
||||
return $indent . $part;
|
||||
}, $parts);
|
||||
|
||||
return implode("\n", $parts);
|
||||
}
|
||||
|
||||
/**
|
||||
* Transforms seconds into a duration string.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user